해결된 질문
작성
·
351
0
안녕하세요 선생님 강의 잘 듣고 있습니다 Authorization Code 요청하기
강의를 듣고 궁금한점이 생겨서 질문 올립니다
이번 강의의 핵심은 임시코드 발급하기 였습니다
클라이언트가 keyCloak 와 연동해서 어떻게 redirect uri 를 만들고 어떻게 요청을 하고
인증이 완료 되는것도 같이 해보았습니다
다만 저는 좀 궁금한게
선생님이 총 2개의 로그인 방식을 보여주셨다고 생각합니다
이 링크를 클릭했을때의 방식
다른 방식은 세션을 완전히 제거한 이 화면에서 로그인 하는 방식을 보여주셨습니다
여기선 궁금한건 이번강의 주제는 임시코드를 발급받는 Filter 에 대해서 공부중인데
첫번째 스크린샷에서는 선생님이 말씀하신 대로
OAuth2AuthorizationRequestRedirectFilter 에서 잘 요청이 들어옵니다
requset 가 "/oauth2/authorization"; 들어오기 떄문인데
두번쨰 스크린샷에서는 전혀 이 필터를 태우지 않습니다 저는 임시코드 발급이라고 하길래
지금 할려는 스크린샷 1 , 2 두 행동 모두가 임시코드를 발급받기 위한 행동으로 알고 있습니다
그런데 첫번째 스크린샷은 OAuth2AuthorizationRequestRedirectFilter 필터를 태우고
두번째 스크린샷은 OAuth2LoginAuthenticationFilter 이 필터를 태우고 있습니다
이 앞의 configure 강의에서도
요청 순서 말씀하시면서
OAuth2AuthorizationRequestRedirectFilter 가 먼저 요청을 받아서 임시코드를 받아오고 그 다음 OAuth2LoginAuthenticationFilter 가 진행된다 라고 하셔서 제가 지금 혼동이 오는거 같습니다.
앞의 부분에서 제가 놓친 부분이 있을까요 선생님?
답변 1
0
네
임시코드를 받아오기 위한 처리를 하는 필터는 OAuth2AuthorizationRequestRedirectFilter 가 맞습니다.
위 화면의 첫번째 스크린샷에서 클릭하게 되면 OAuth2AuthorizationRequestRedirectFilter 가 임시코드를 요청하는 역할을 하게 됩니다.
그리고 요청을 처리하는 과정에서 두번째 스크린샷이 나오게 되는데 이 화면은 인가서버에서 사용자로 하여금 인증을 하도록 제공하는 페이지입니다. 즉 스프링 시큐리티에서 제공하는 화면이 아닙니다.
그렇기 때문에 OAuth2AuthorizationRequestRedirectFilter 에서 아무런 반응이 없는 것입니다.
그리고 사용자의 인증이 완료가 되면 인가서버가 임시코드를 발급해서 다시 클라이언트 즉 스프링 시큐리티 클라이언트 쪽으로 리다이렉트하게 되는데 이 때는 OAuth2AuthorizationRequestRedirectFilter 가 요청을 처리하지 않고 OAuth2LoginAuthenticationFilter 가 리다이렉트 요청을 처리하게 됩니다.
그리고 임시코드를 가지고 토큰을 교환하도록 처리가 이루어집니다.
요약하면 두번째 스크린샷은 시큐리티 쪽에서 이루어지는 것이 아닌 인가서버, 여기에서는 키클록 인가서버에서 제공하는 인증페이지임을 기억하시기 바랍니다.