WEB2 - OAuth 2.0 : 1.수업소개
OAuth
- 사용자가 Kakao의 기능을 다른 애플리케이션에서 사용할 수 있게 인가해주는 프로토콜(접근 권한을 부여)
- 우리가 만들고자 하는 서비스에서 인터넷 서비스의 기능을 사용하기 위해 AccessToken을 발급받아 인증받는다.
OAuth 구성 요소
| 구분 |
설명 |
| Resource Owner |
우리가 만들고자 하는 서비스를 이용하려는 사용자 - Kakao의 기능에 대한 계정을 가지고 있다. |
| Client |
접근 권한을 받아 Kakao의 기능을 사용하려고 하는 우리들의 서비스 |
| Resource Server |
Resource Owner에 대한 데이터를 가지고 있는 서버 - Kakao |
| Authorization Server |
인증과 관련된 처리를 전담하는 서버 |
OAuth 인증 과정
Resource Server에 Client 등록
- Client ID : 우리가 만들고 있는 애플리케이션의 식별자
- Client Secret : Client ID에 대한 비밀번호로 절대 노출되면 안된다.
- Redirect URI : Resource Server는 권한을 부여해주기 위해 Authorization Code를 전달해주는데 이때 전달받을 주소이다. 해당 주소가 아니면 Resource Server는 요청을 무시한다.
Resource Owner의 허용
- Client는 Resource Owner에게 Client ID, 사용할 기능, Redirect URL이 담긴 링크를 제공(카카오 로그인 버튼)
- Resource Server는 등록되어 있는 정보와 비교하여 같으면 Resource Owner에게 권한을 허용할 것인지 확인
- 동의한다면 Resource Owner가 허용했음을 저장해놓는다.
Resource Server의 허용
- Resource Server는 Authorization Code를 발급하여 등록되어 있는 Redirect URI로 전송
- Client는 Authorization Code, Redirect URI, Client Id, Client Secret 등의 정보를 포함하여 Resource Server에 접속
Access Token 발급
- Resource Sever는 자신이 가진 정보와 비교한 후 같으면 AccessToken을 발급하여 Client에게 제공
- 이후 Client는 AccessToken을 통해 Resource Server에 접근한다.
Refresh Token
- 일정 기간 동안 다시 인증 절차를 거치지 않고도 액세스 토큰 발급을 받을 수 있게 한다.
