할머니의 콤퓨타 도전기
OAuth 2.0 본문
Oauth
-
Resource Owner
- Client(서비스)를 이용하는 자, Resource Server에 가입이 되어있는 정보의 주인
-
Client
- Resource Owner의 정보를 Resource Server로 부터 요청하는 Client
- Resource Owner에게 서비스를 제공하는 자
-
Resource Server
- Resource Owner의 정보를 보관하고 있는 자로 Resource Owner로 부터 인증을 받아 client에게 Resource Owner의 정보를 제공하는 정보 보관소
- 아이디와 비밀번호 이용 안함
- 먼저 Client가 Resource Owner (User)에게 서비스를 제공하기 위해 Resource Server에게 필요한 정보 요청
- Resource Server가 Resource Owner에게 인증 요청
- Resource Server가 인증 허가
- Resource Server가 필요로하는 정보에만 접근할 수 있는 Access Token을 Client에게 발급
- Client가 AccessToken을 가지고 Resource Server에 있는 Resource Owner의 정보를 얻어와 가공하여 Resource Owner에게 서비스 제공
-
장점
- 사용자의 아이디와 비밀번호 이용 안함
- Access Token을 통해 Client는 필요로 하는 정보에만 접근 가능
-
인증 과정
- User가 Client에 접속
- User가 사용하려는 Client의 기능이 Resource Server에 존재하는 데이터를 필요로 함
- Client에서 User에게 Resource Server에 로그인 하라고 링크를 띄어줌. 링크의 파라미터에는 client_id, redirect_url, scope가 포함 (Resource Server에서 User 자신이 정보의 주인이 맞음을 확인하기 위해 로그인 요청
- User가 위의 링크를 클릭하고 Resource Server에서 User가 로그인 되어있지 않다면 로그인하라는 화면 띄움
- User가 로그인하면, Resource Server에서는 url 파라미터에 담긴 client_id, redirect_url과 사전에 등록된 정보 비교 (User가 사용하는 Client가 사전에 Resource Server에 등록된 Client임을 확인함으로써, 가짜 App에서의 요청 방지)
- client_id와 redirect_uri가 일치하면 url 파라미터에 담긴 scope를 Client에게 제공하는 것을 허용하는지 확인하기 위해 User에게 화면을 띄움
- User가 허용하면 Autorization_code를 파라미터에 담아서 사전에 Client가 등록한 redirect_url로 이동하도록 리다이렉션 시킴
- User가 Client로 리다이렉트 되면서, Client가 Authorization_code를 알게됨
- Client는 client_id, client_secret, Authorization_code를 Resource Server에게 전송
- Resource Server는 이 정보가 모두 일치하는지 확인하고 Access Token을 Client에게 발급
'Web Front-end' 카테고리의 다른 글
Deploying to Github Pages (0) | 2021.04.29 |
---|---|
AJAX (Asynchronous Javascript And XML) (0) | 2021.01.16 |
API (Application Programming Interface) (0) | 2021.01.16 |
Comments