작성
·
37
0
Scope 에 openid 가 포함되어 있으면 OidcAuthorizationCodeAuthenticationProvider 를 호출하고 아니면 OAuth2AuthorizationCodeAuthenticationProvider 를 호출하도록 제어된다고 돼있는데, 최신버전의 keycloak에선 scope에 openid가 없으면 에러가 발생하도록 돼있어서 반드시 openid를 포함시켜줘야 하는데, 그러면 인가서버로 keycloak 쓸때는 OidcAuthorizationCodeAuthenticationProvider 가 호출된다고 보면 되겠네요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
에욱님께서 궁금해하신 부분에 대한 답변을 제공드리겠습니다.
Keycloak과 같은 현대의 인증 서버에서 OpenID Connect(OIDC) 기반의 인증을 지원하면서, 인증 요청 시 scope에 openid
를 포함하는 것이 요구됩니다. 이는 사용자가 OpenID Connect를 통해 인증 정보를 포함한 ID 토큰을 받아볼 수 있도록 하기 위함입니다.
따라서, scope에 openid
가 포함된 경우 OidcAuthorizationCodeAuthenticationProvider
가 호출되며, 이는 인증 서버로부터 ID 토큰을 수신할 수 있는 flow를 따르게 됩니다. 반면에, scope에 openid
가 포함되지 않을 경우, 일반적인 OAuth 2.0의 인가 코드 흐름이 적용되어 OAuth2AuthorizationCodeAuthenticationProvider
가 사용됩니다.
관련 설명 및 질문들:
OpenId Provider와 인가서버의 차이에 대해 질문드립니다.
oidcLogoutHandler 작성할 때의 질문입니다!
이를 바탕으로, Keycloak을 인가 서버로 사용하는 경우 scope에 openid
를 추가하여 OpenID Connect flow로 처리되고, OidcAuthorizationCodeAuthenticationProvider
가 호출되는 것이 맞습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.