인프런 커뮤니티 질문&답변

김동연님의 프로필 이미지
김동연

작성한 질문수

스프링 시큐리티 OAuth2

Authorization Code 궁금증이 있습니다.

해결된 질문

작성

·

351

0

안녕하세요 선생님 강의 잘 듣고 있습니다 Authorization Code 요청하기

강의를 듣고 궁금한점이 생겨서 질문 올립니다

 

이번 강의의 핵심은 임시코드 발급하기 였습니다

클라이언트가 keyCloak 와 연동해서 어떻게 redirect uri 를 만들고 어떻게 요청을 하고

인증이 완료 되는것도 같이 해보았습니다

 

다만 저는 좀 궁금한게

 

선생님이 총 2개의 로그인 방식을 보여주셨다고 생각합니다

1.png이 링크를 클릭했을때의 방식

 

1.png다른 방식은 세션을 완전히 제거한 이 화면에서 로그인 하는 방식을 보여주셨습니다

 

여기선 궁금한건 이번강의 주제는 임시코드를 발급받는 Filter 에 대해서 공부중인데

첫번째 스크린샷에서는 선생님이 말씀하신 대로

 

OAuth2AuthorizationRequestRedirectFilter 에서 잘 요청이 들어옵니다

requset 가 "/oauth2/authorization"; 들어오기 떄문인데

 

두번쨰 스크린샷에서는 전혀 이 필터를 태우지 않습니다 저는 임시코드 발급이라고 하길래

지금 할려는 스크린샷 1 , 2 두 행동 모두가 임시코드를 발급받기 위한 행동으로 알고 있습니다

 

그런데 첫번째 스크린샷은 OAuth2AuthorizationRequestRedirectFilter 필터를 태우고

두번째 스크린샷은 OAuth2LoginAuthenticationFilter 이 필터를 태우고 있습니다

 

이 앞의 configure 강의에서도

 

요청 순서 말씀하시면서

OAuth2AuthorizationRequestRedirectFilter 가 먼저 요청을 받아서 임시코드를 받아오고 그 다음 OAuth2LoginAuthenticationFilter 가 진행된다 라고 하셔서 제가 지금 혼동이 오는거 같습니다.

 

앞의 부분에서 제가 놓친 부분이 있을까요 선생님?

 

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

임시코드를 받아오기 위한 처리를 하는 필터는 OAuth2AuthorizationRequestRedirectFilter 가 맞습니다.

위 화면의 첫번째 스크린샷에서 클릭하게 되면 OAuth2AuthorizationRequestRedirectFilter 가 임시코드를 요청하는 역할을 하게 됩니다.

그리고 요청을 처리하는 과정에서 두번째 스크린샷이 나오게 되는데 이 화면은 인가서버에서 사용자로 하여금 인증을 하도록 제공하는 페이지입니다. 즉 스프링 시큐리티에서 제공하는 화면이 아닙니다.

그렇기 때문에 OAuth2AuthorizationRequestRedirectFilter 에서 아무런 반응이 없는 것입니다.

그리고 사용자의 인증이 완료가 되면 인가서버가 임시코드를 발급해서 다시 클라이언트 즉 스프링 시큐리티 클라이언트 쪽으로 리다이렉트하게 되는데 이 때는 OAuth2AuthorizationRequestRedirectFilter 가 요청을 처리하지 않고 OAuth2LoginAuthenticationFilter 가 리다이렉트 요청을 처리하게 됩니다.

그리고 임시코드를 가지고 토큰을 교환하도록 처리가 이루어집니다.

요약하면 두번째 스크린샷은 시큐리티 쪽에서 이루어지는 것이 아닌 인가서버, 여기에서는 키클록 인가서버에서 제공하는 인증페이지임을 기억하시기 바랍니다.

김동연님의 프로필 이미지
김동연

작성한 질문수

질문하기