728x90
흐름 및 특징
- 사용자가 애플리케이션을 승인하면 인가서버는 Redirect URI로 임시 코드 담아서 애플리케이션으로 다시 리다이렉션 한다
- 애플리케이션은 해당 임시 코드를 인가서버로 전달하고 액세스 토큰으로 교환한다
- 애플리케이션이 액세스 토큰을 요청할 때 해당 요청을 클라이언트 암호로 인증할 수 있으므로 공격자가 인증 코드를 가로채서 스스로 사용할 위험이 줄어듬
- 액세스 토큰이 사용자 또는 브라우저에 표시되지 않고 애플리케이션에 다시 전달하는 가장 안전한 방법이므로 토큰이 다른 사람에게 누출될 위험이 줄어듦
권한부여코드 요청 시 매개변수(Code 받는 API 호출)
- response_type=code (필수)
- client_id (필수)
- redirect_uri (선택사항) -> 선택사항이지만, 보통 필수적으로 넣어준다(검증용으로도 사용할 수도 있으므로)
- scope (선택사항)
- state (선택사항)
액세스토큰 교환 요청 시 매개변수
- grant_type=authorization_code (필수)
- code (필수)
- redirect_uri (필수 : 리다이렉션 URL이 초기 승인 요청에 포함된 경우)
- client_id (필수)
- client_secret (필수)
흐름
1) authorization code 요청 : 인가서버에게 code를 요청한다

2) 사용자 인증 & 동의하기 : 사용자의 승인 및 동의하에 인가서버가 클라이언트에게 코드를 발급한다

3) Redirect 및 Access Token 교환 요청 : 클라이언트의 권한 부여가 승인되고 그 결과로 토큰을 획득한다

과정 정리

728x90
'스프링 시큐리티 OAuth2 > OAuth 2.0 권한부여 유형' 카테고리의 다른 글
| Refresh Token Grant (0) | 2023.01.09 |
|---|---|
| Client Credentials Grant Type - 클라이언트 자격증명 승인 방식 (0) | 2023.01.09 |
| Resource Owner Password Credentials Grant Type - 패스워드 자격증명 승인 방식 (0) | 2023.01.09 |
| Implicit Grant Type - 암묵적 승인 방식 (0) | 2023.01.08 |
| OAuth 2.0 Grant Type 개요 (0) | 2023.01.08 |