inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

Authorization Code 궁금증이 있습니다.

해결된 질문

410

김동연

작성한 질문수 11

0

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

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

 

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

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

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

 

다만 저는 좀 궁금한게

 

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

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

 

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

 

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

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

 

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

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

 

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

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

 

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

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

 

이 앞의 configure 강의에서도

 

요청 순서 말씀하시면서

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

 

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

 

java spring spring-boot oauth

답변 1

0

정수원

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

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

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

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

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

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

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

authorization-server 라이브러리 질문이 있습니다.

0

78

1

loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생

0

79

2

JWT 조회 에 대한 질문

0

75

1

password grant 방식 에러 응답

0

91

3

FormLoginConfigure에서 생성하는 필터

0

79

2

현업에서 springboot를 3.5.5 를 사용해서 공부중인데...

0

287

2

Jdbc 관련 강의 및 깃헙 문의

0

78

1

OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문

0

209

1

UserInfo 엔드포인트 요청 실습

0

75

1

RFC 문서에서의 AccessToken 발급 방식 궁금한점

0

151

1

강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요

0

140

2

OIDC SSO 관련 질문 입니다.

0

131

1

AuthenticationEntryPoint 강의 누락 문의

0

123

1

cors설정방법

0

116

1

jwt decoder 토큰 검증 시 질문

0

222

1

클라이언트에서 userinfo 엔드포인트 호출 시 질문

0

187

2

JOSE 구성요소의 api에 관한 질문

0

141

2

스프링 부트 3버전으로 따라가시는 분들 참고하세요

1

532

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

146

2

AuthenticationManager 생성시점

0

118

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

128

1

postman userinfo 엔드포인트 질문

0

136

2

강의 수강신청하고 듣기 전입니다 질문있습니다.

0

115

1

인증 코드를 통해 발급 받은 토큰의 관리

0

200

1