J219. Spring Boot OAuth2 Google, Naver Login
💡 OAuth 2.0을 이용한 인증
OAuth
- 외부 서비스의 인증 및 권한 부여를 관리하는 범용적인 프로토콜
OAuth 2.0
- 모바일에서도 사용 용이
- 반드시 HTTPS를 사용하므로 보안이 강화됨
- Access Token의 만료 기간이 생김
→ OAuth 2.0의 인증 방식은 4가지 있음 → 가장 범용적으로 쓰이는 것은 Authorization Code Grant
인증 순서
- Resource Owner : 일반 사용자
- Client : 우리가 만든 웹 어플리케이션
- Authorization Server : 권한 관리 및 Access Token, Refresh Token을 발급해주는 서버
- Resource Server : OAuth 2.0을 관리하는 서버의 자원을 관리하는 곳
- Resource Owner가 Client에게 인증 요청
- Client는 Authorization Request를 통해 Resource Owner에게 인증할 수단(Facebook, Google 로그인 url)을 보냄
- → Resource Owner는 해당 Request를 통해 인증을 진행
- 인증을 완료했다는 신호로 Authorization Grant를 url에 실어 Client에게 보냄
- Client는 해당 권한 증서를 Authorization Server에 보냄
- Authorization Server는 권한 증서를 확인 후, 유저가 맞다면 Client에게 Access Token, Refresh Token, 그리고 유저의 정보를 발급
- Client는 해당 Access Token을 DB에 저장하거나 Resource Owner에게 넘김
- Resource Owner가 Resource Server에 자원이 필요하면, Client는 Access Token을 담아 Resource Server에 요청
- Resource Server는 Access Token이 유효한 지 확인 후, Client에게 자원을 보냄→ 그 후 다시 Resource Server에 자원을 요청
- → 만일 Refresh token도 만료되었을 경우, Resource Owner는 새로운 Authorization Grant를 Client에게 넘겨야 함
- → 만일 Access Token이 만료됐거나 위조되었다면, Client는 Authorization Server에 Refresh Token을 보내 Access Token을 재발급 받음
'Web & Android > Spring Security' 카테고리의 다른 글
[Spring Security] Annotation (0) | 2023.10.19 |
---|---|
[Spring Security] SNS 로그인 (0) | 2023.10.19 |
[Spring Security] 카카오 로그인 실습 - Web (0) | 2023.10.19 |
[Spring Security] Access Token+ Refresh Token을 이용한 인증 (1) | 2023.10.19 |
[Spring Security] Access Token을 이용한 인증 (0) | 2023.10.19 |