티스토리 뷰

반응형

 

 

OAuth 2.0 에서 access token를 얻는 4가지 인증방식중 하나인 Authorization Code Grant 인증방식에 대해 알아보자.

 

 

 

Authorization Code Grant 특징

  • OAuth2.0에서 가장 많이 사용되는 인증방식으로, Access token을 얻기 위해 사용되는 인증방식이다.
  • S2S 방식이기 때문에 백엔드 서버가 있는 서비스에 적용하기 적합한 방식이다.
  • 따라서 클라이언트는 써드파티 서비스의 백엔드 서버이다.
  • client-secret, Access-token과 같은 민감정보가 외부에 노출되지 않아 보안상 안전하다.

 

 

 

Authorization Code Grant Flow

인증과정은 어떻게 이루어질까 ?

인증과정을 그림으로 나타내면 다음과 같다. 공식문서를 참고했다.

<noMenu/>

     +----------+
     | Resource |
     |   Owner  |
     |          |
     +----------+
          ^
          |
         (B)
     +----|-----+          Client Identifier      +---------------+
     |         -+----(A)-- & Redirection URI ---->|               |
     |  User-   |                                 | Authorization |
     |  Agent  -+----(B)-- User authenticates --->|     Server    |
     |          |                                 |               |
     |         -+----(C)-- Authorization Code ---<|               |
     +-|----|---+                                 +---------------+
       |    |                                         ^      v
      (A)  (C)                                        |      |
       |    |                                         |      |
       ^    v                                         |      |
     +---------+                                      |      |
     |         |>---(D)-- Authorization Code ---------'      |
     |  Client |          & Redirection URI                  |
     |         |                                             |
     |         |<---(E)----- Access Token -------------------'
     +---------+       (w/ Optional Refresh Token)

(Client, Resource Owner, Authorization Server, User-Agent와 같은 구성요소에 대한 설명은 이전 글을 참고하자.)

 

위 그림에서 (A)~(E) 과정에 대한 설명은 다음과 같다.

 

 

Flow (A) and (B)

Client(애플리케이션)은 User-Agent(브라우저)를 통해  Resource Owner(사용자) 그리고 Authorization Server(인증 서버)와 통신한다. 클라이언트가 사용자를 인증서버로 리다이렉션시켜서 리소스에 대한 접근을 승인받을 수 있도록 하는 것이다.

 

Flow (C)

사용자가 리다이렉션 URI를 통해 접근 권한을 승인하면 인증서버는 이전의 리다이렉션 URI를 사용하여 User-Agent를 클라이언트로 다시 리다이렉션한다. 이때, 클라이언트는 인증코드를 얻을 수 있다.

 

Flow (D)

클라이언트는 이전 단계에서 받은 인증코드와 이전에 사용된 리다이렉션 URI의 정보를 포함하여 인증 서버에 Access Token을 요청한다 (이때는 브라우저를 거치지 않고 인증서버에 바로 요청).

 

Flow (E)

인증서버는 인증코드를 검증하고 리다이렉션 URI가 (C) 단계에서 클라이언트를 리디렉션하는데 사용된 URI와 일치하는지 확인한다. 유효한 경우 인증서버는 사용자에 대한 Access Token을 발급해 주며, 필요시 Refresh Token을 발급해 준다.

 

 

 

 

 

더 자세한 내용들은 공식문서를 참고해 보자.

 

 

 

 

 

 

 

반응형

'개발 공부 > Spring Security' 카테고리의 다른 글

OAuth 2.0 이란 ?  (0) 2022.07.04
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함