인증을 위한 개방형 표준 프로토콜
OAuth 2.0은 1.0에서 알려진 보안 문제 등을 개선한 버전
이름 | 설명 |
---|---|
Resource Owner | 리소스(개인정보) 소유자. 웹 서비스를 이용하려는 유저. |
Client | Resource Owner의 리소스를 사용하고자 접근을 요청하는 애플리케이션. |
Resource Server | Resource Owner의 정보가 저장돼있는 애플리케이션 회사 서버. |
Authorization Serve | 권한서버. 인증을 해주는 서버. 클라이언트의 접근 자격을 확인하고 AccessToken을 발급하여 권한을 부여. |
이름 | 설명 |
---|---|
Access Token | 리소스 서버에게서 리소스 소유자의 정보를 획득할 때 사용되는 만료 기간이 있는 Token. |
Refresh Token | Access Token 만료 시 재발급 받기 위한 용도로 사용하는 Token |
Authentication | 인증. 접근 자격이 있는지 검증하는 단계 |
Authorization | 인가. 리소스에 접근할 권한을 부여하고 리소스 접근 권한이 담긴 Access Token을 제공. |
✔ 권한 부여 승인 코드 방식
✔ 권한 부여 승인을 위해 자체 생성한 Authorization Code를 전달하는 방식
✔ 많이 쓰이고 기본이 되는 방식
1) 권한 부여 승인 요청 시 response_type을 code로 지정하여 요청
2) 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력
3) 로그인이 완료되면 권한 서버는 권한 부여 승인 코드 요청 시 전달받은 redirect_url로 Authorization Code를 전달
4) Authorization Code는 권한 서버에서 제공하는 API를 통해 Access Token으로 교환
✔ 암묵적 승인 방식
✔ 자격증명을 안전하게 저장하기 힘든 클라이언트에게 최적화된 방식
1) 권한 부여 승인 요청 시 response_type을 token으로 설정하여 요청
2) 클라이언트는 권한 서버에서 제공하는 로그인 페이지를 브라우저를 띄워 출력
3) 로그인이 완료되면 권한 서버는 Authorization Code가 아닌 Access Token를 redirect_url로 바로 전달
✔ 자원 소유자 자격증명 승인 방식
✔ 간단하게 username, password로 Access Token을 받는 방식
✔ 클라이언트 자격증명 승인 방식
✔ 클라이언트의 자격증명만으로 Access Token을 획득하는 방식
💛 참고 :
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-OAuth-20-%EA%B0%9C%EB%85%90-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC
https://charming-kyu.tistory.com/36