❯ OAuth 2
사용자가 특정 서비스를 이용하기 위해서 신뢰할만한 벤더에게 인증 처리를 위임하는 것을 말한다.
주변에서 쉽게 찾아볼 수 있으며, 구글 로그인 / 네이버 로그인 등이 여기에 해당한다.
OAuth2 에서 Componet의 종류와 역할
- Resource Owner: 사용하고자하는 리소스의 실제 소유자를 의미한다. 예를들어 A라는 애플리케이션에 B라는 사람이 구글로그인을 통해 서비스를 이용하고자한다면, B가 구글로그인 서비스의 Resource Owner가 된다.
- Client: Resource Owner를 대신해 Resource에 액세스하는 애플리케이션을 의미한다. 위의 경우에서 A에 해당한다.
- Authorization Server: Client가 Resource Server에 접근할 수 있는 권한을 부여하는 서버이다.
Resource Owner 가 인증에 성공하면 Access Token*형태로 접근 권한을 부여하게된다.
* Access Token: Client가 Resource에 접근하기 위해 사용하는 자격증명 토큰을 의미한다.
* Scope: 주어진 Access Token 으로 접근할 수 있는 리소스 범위를 지정한다. - Resource Server: Client의 요청을 수락하고 Resource를 제공하는 서버를 의미한다.
Authorization Grant(권한 부여)
Client 애플리케이션이 Access Token을 얻기 위한 Resource Owner의 권한을 표현하는 Credential을 의미한다.
총 네가지 타입으로 구분된다.
- Authorization Code Grant: 권한 부여 승인코드 방식
- Implicit Grant: 암묵적 승인 방식
- Resource Owner Password Credential Grant: 자원 소유자 자격 증명 승인 방식
- Client Credentials Grant: 클라이언트 자격 증명 승인방식
카카오톡, 구글, 트위터 등을 통해 OAuth2를 구현하는 방법은 공식 문서를 확인하는것이 좋다.
https://developers.kakao.com/docs/latest/ko/kakaologin/common
https://developers.google.com/identity/protocols/oauth2?hl=ko
https://developer.twitter.com/en/docs/authentication/oauth-2-0
'부트캠프 개발일기 > Spring Security' 카테고리의 다른 글
68일차: OAuth2 구현(Google) (0) | 2023.05.19 |
---|---|
66일차: Spring Security에 JWT 적용 (0) | 2023.05.17 |
65일차: 자격 증명 / JWT 인증 (0) | 2023.05.16 |
64일차: 인증(Authentication), 인가(Authorization) (0) | 2023.05.15 |
63일차: Spring Security (2) 웹요청 처리흐름, Filter Chain (0) | 2023.05.15 |