스프링 시큐리티 OAuth2/OAuth 2.0 권한부여 유형

Authorization Code Grant Type - 권한 부여 코드 승인 방식

webmaster 2023. 1. 8. 15:31
728x90

흐름 및 특징

  1. 사용자가 애플리케이션을 승인하면 인가서버는 Redirect URI로 임시 코드 담아서 애플리케이션으로 다시 리다이렉션 한다
  2. 애플리케이션은 해당 임시 코드를 인가서버로 전달하고 액세스 토큰으로 교환한다
  3. 애플리케이션이 액세스 토큰을 요청할 때 해당 요청을 클라이언트 암호로 인증할 수 있으므로 공격자가 인증 코드를 가로채서 스스로 사용할 위험이 줄어듬
  4. 액세스 토큰이 사용자 또는 브라우저에 표시되지 않고 애플리케이션에 다시 전달하는 가장 안전한 방법이므로 토큰이 다른 사람에게 누출될 위험이 줄어듦

권한부여코드 요청 시 매개변수(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를 요청한다

인가서버에게 code를  요청

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

사용자의 승인 및  동의하에  인가서버가 클라이언트에게 코드를 발급

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

클라이언트의 권한 부여가 승인되고 그 결과로 토큰을 획득

과정 정리

과정 정리

728x90