진짜 개발자
본문 바로가기

IT Knowledge

IT Knowledge - Oauth2 - 3 (인증 과정)

728x90

Oauth2 - 1 (개념)


Oauth2 - 2 (App 등록)


Oauth2 - 3 (인증 과정)




Oauth 인증 과정


*과정 

1. User(Resource Owner 이하, User)가 Client(App)에 접속합니다.


2. User가 사용하려는 Client(App 이하, Client)의 기능이 Resource Server에 존재하는 데이터를 필요로 합니다. (ex : 사용자의 구글 캘린더 정보)


3. Client에서 User에게 아래 그림처럼, Resource Server에 로그인을 하라고 링크를 띄워줍니다. 링크의 파라미터에는 client_id와 redirect_url, 그리고 Scope가 포함되어 있습니다.

(Resource Server에서 User 자신이, 정보의 주인이 맞음을 확인하기 위해, 로그인을 요청함)



4. User가 위의 링크를 클릭하면, Resource Server에서 User가 로그인이 되어있지 않다면 로그인을 하라는 화면을 띄워줍니다.


5. User가 로그인을 했다면, Resource Server에서는 url 파라미터에 담긴 client_id, redirect_url과 사전에 등록된 정보를 비교합니다.

(User가 사용하는 Client가 사전에 Resource Server에 등록된 Client임을 확인함으로써, 가짜 App에서의 요청을 방지함)


6. Client_id와 redirect_uri가 일치한다면, 아래 그림과 같이 Url 파라미터에 담긴 scope를 Client에게 제공하는것을 허용하는지 확인해달라고 User에게 화면을 띄웁니다.


7. User가 허용을 했다면, 아래 그림과 같이 Authorization_code를 파라미터에 담아서, 사전에 Client가 등록한 redirect_url로 이동하도록 리다이렉션 시킵니다.



8. UserClient로 리다이렉트 되면서, Client가 Authorization_Code를 알게됩니다.


9. Client는 client_id, client_secret, AUthorization_code를 Resource Server에게 전송합니다. 


10. Resource Server는 이 정보가 모두 일치하는지를 확인하고, AccessToken을 Client에게 발급합니다.