OZ

[OAuth2.0] 개념

iun 2025. 2. 9. 02:26

OAuth?

사용자의 정보를 이미 가지고 있는 서비스에서 정보를 가져와 접근할 수 있게 해주는 인증 프로토콜이다

예로 구글, 네이버, 카카오... 등 간편로그인으로 많이 접해본 것들이다

 

 

 

구성 요소

 

  • 클라이언트: 사용자가 접근하려는 앱이나 웹사이트 (예: 다른 앱에서 Google 계정으로 로그인)
  • 리소스 서버: 데이터를 저장하는 서버 (예: Google 이메일, 사진)
  • 인증 서버: 사용자 인증을 처리하고, 클라이언트에게 접근 권한을 주는 서버
  • 사용자: 데이터를 소유한 사람 (예: Google 계정 소유자)

 

 

 

흐름 과정

 

  1. 사용자 요청 (Authorization Request) 
    • 사용자가 애플리케이션(클라이언트)에서 "Google로 로그인"과 같은 버튼을 클릭합니다.
    • 클라이언트 애플리케이션은 인증 서버(예: Google의 인증 서버)로 리디렉션하여, 사용자가 로그인하고 권한을 부여할 수 있는 페이지를 보여줍니다.
  2. 사용자 인증 (Authorization) 
    • 사용자가 인증 서버에서 로그인하고, 애플리케이션에 어떤 데이터를 공유할지 선택합니다. 예를 들어, Google 계정에 접근할 수 있는 권한을 부여합니다.
    • 사용자가 권한을 부여하면, 인증 서버는 **권한 부여 코드(Authorization Code)**를 클라이언트 애플리케이션에 전달합니다.
  3. 권한 부여 코드 교환 (Authorization Code Exchange) 
    • 클라이언트 애플리케이션은 이 권한 부여 코드인증 서버에 제출합니다.
    • 인증 서버는 이 코드를 검증하고, **액세스 토큰(Access Token)**을 클라이언트에게 반환합니다. 액세스 토큰은 클라이언트가 리소스 서버에 접근할 수 있는 자격을 부여합니다.
  4. 액세스 토큰을 사용한 리소스 요청 (Access Token Usage) 
    • 클라이언트 애플리케이션은 받은 액세스 토큰을 사용해 리소스 서버(예: Google API)로 요청을 보냅니다.
    • 예를 들어, 클라이언트가 액세스 토큰을 사용하여 사용자의 Google 이메일이나 캘린더에 접근할 수 있습니다.
  5. 리소스 서버 응답 (Resource Server Response) 
    • 리소스 서버는 액세스 토큰을 검증한 후, 요청한 데이터를 클라이언트 애플리케이션에 반환합니다.
    • 이제 클라이언트는 사용자가 요청한 데이터를 활용할 수 있게 됩니다.

 

 

 

인가코드

Authorization Code 

인증 과정에서 중요한 역할을 하는 짧은 유효 기간을 가진 코드

이 코드는 사용자 인증권한 부여가 끝난 후, 액세스 토큰을 발급받기 위해 필요한 중간 단계의 코드이다

인가 코드의 역할:

  1. 사용자 인증 후 생성: 사용자가 애플리케이션에서 "Google로 로그인"을 클릭하고 로그인 및 권한을 부여하면, 인증 서버(예: Google 인증 서버)는 애플리케이션에 인가 코드를 전달합니다.
  2. 액세스 토큰으로 교환: 이 인가 코드는 애플리케이션이 인증 서버에 액세스 토큰을 요청하는 데 사용됩니다. 즉, 클라이언트 애플리케이션은 이 코드를 인증 서버에 보내면, 인증 서버가 이를 검증한 후 액세스 토큰을 발급합니다.

사용자가 Google 계정을 통해 애플리케이션에 로그인하면, Google 인증 서버는 애플리케이션에 인가 코드를 보내고, 애플리케이션은 이 코드를 사용해 액세스 토큰을 발급받아 사용자의 Google 데이터에 접근할 수 있습니다.

'OZ' 카테고리의 다른 글

[AWS] S3 배포하기  (0) 2025.02.12
[OAuth2.0] 카카오 / 네이버 로그인  (1) 2025.02.10
[Node.js] 네트워크와 HTTP / HTTPS  (0) 2025.02.04
[React] 번들링과 코드스플리팅  (0) 2025.01.12
[React] 최적화  (0) 2025.01.12