Spring/Oauth2

Oauth2 매개 변수 용어

hwanguu 2025. 1. 12. 20:19

1. client_id

  • 인가서버에 등록된 클라이언트에 대해 생성된 고유 키

 

2. client_secret

  • 인가서버에 등록된 특정 클라이언트의 client_id 에 대해 생성된 비밀 값

 

3. response_type

  • 애플리케이션이 권한 부여 코드 흐름을 시작하고 있음을 인증 서버에 알려준다
  • code, password, client_credentials, refresh_token, token, id_token 이 있으며 token, id_token 은 implicit 권한부여유형에서 지원해야 한다
  • 서버가 쿼리 문자열에 인증 코드(code), 토큰(token, id_token) 등을 반환
권한 부여 타입 Response Type 비고
Authorization Code Grant
PKCE-enhanced Authorization Grant
code  
implicit Grant token  
password Credentials Grant password  
Client Credentials Grant client_credentials  
Refresh Token Grant refresh_token  
password Credentials Grant(OIDC) password scope 에 openid 를 포함
implicit Grant(OIDC) id_token(code_token) scope 에 openid 를 포함

 

4. redirect_uri

  • 사용자가 응용 프로그램을 성공적으로 승인하면 권한 부여 서버가 사용자를 다시 응용 프로그램으로 리디렉션한다.
  • redirect_uri 가 초기 권한 부여 요청에 포함된 경우 서비스는 토큰 요청에서도 이를 요구해야 한다.
  • 토큰 요청의 redirect_url 는 인증 코드를 생성할 때 사용된 redirect_url 와 정확히 일치해야 한다.
    그렇지 않으면 서비스는 요청을 거부해야 한다.

Authorization Code Grant, PKCE-enhanced Authorization Grant, implicit Grant 의 경우 인가서버의 로그인 플로우를 타기 때문에 인가서버에서 로그인이 성공, 실패했을때 결과를 보내줘야할 redirectUri가 반드시 필요하다. 그리고 인가서버에 설정되어있는 redirectUrl와 요청시 파라미터로 보낸 redirectUri/가 반드시 일치해야한다.

만일 /auth 로 인증을 시작 하였다면 /token 을 요청하였을때도 같은 redirect_url을 보내야한다.

/auth 요청
/token 요청

 

인가서버 redirectUrl 설정

 

 

5. scope

  • 어플리케이션이 사용자 데이터에 접근하는 것을 제한하기 위해 사용된다 : email profile read write..
  • 사용자에 의해 특정 스코프로 제한된 권한 인가권을 발행함으로써 데이터 접근을 제한한다

 

6. state

  • 응용 프로그램은 임의의 문자열을 생성하고 요청에 포함하고 사용자가 앱을 승인한 후 서버로부터 동일한 값이 반환되는지 확인해야 한다.
  • 이것은 CSRF 공격 을 방지하는 데 사용된다

 

References 및 사진 출처

정수원 스프링 시큐리티 OAuth2

'Spring > Oauth2' 카테고리의 다른 글

Oauth2 Password Grant  (0) 2025.01.12
Oauth2 Implicit Grant  (0) 2025.01.12
Oauth2 Keycloak Docker compose, 기본세팅  (0) 2025.01.12
Oauth2 Authorization Code Grant  (0) 2025.01.12
Oauth2 Grant Type 권한부여 유형  (0) 2025.01.12