inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

무한리디렉션 궁금증

1116

김동연

작성한 질문수 11

0

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

 

오늘 처음으로 spring 시큐리티와 keycloak 와 사용해서 간단한 RestController 을 만들어서 keycloak 로 로그인하는 강의를 들었는데

 

궁금점이 생겼습니다

 

applition.yml redirect 구성하실때

http://localhost:8081/login/oauth2/code/keycloak

이 주소가 시큐리티 ouath2 로그인 고유 주소인가요?

 

제가 테스트한다고 oauth2 에 다른 문자열을 넣고 돌리면 리디렉션이 너무 많다고 크롬 , 엣지에서 오류가 발생합니다

ex1) clientId - OAuth2-client-app

redirectUri=http://localhost:8081/login/oauth2/code/keycloak

ex2)clientId - OAuth2-client-app

redirectUri=http://localhost:8081/login/OAuth2-client-app/code/keycloak

 

이렇게 비교를 해보았는데

1번은 로그인이 잘되고 2번은 계속 무한 리디렉션이 나옵니다

 

그래서 ex1) 번을 크롬 개발자 도구로 쫒아 가보니

1) http://localhost:8081/oauth2/authorization/keycloak

status :302

Location: http://localhost:8080/realms/spring-security-OAuth2/protocol/openid-connect/auth?response_type=code&client_id=OAuth2-client-app&scope=openid%20email%20profile&state=wNz-VZFRvu_Nr8KUFYjRshELNLOFbUZVO9vWdcEQrs4%3D&redirect_uri=http://localhost:8081/login/oauth2/code/keycloak&nonce=ehS4VAjQJBrDf7APtHtUbWuzwdOnCJAOd8BhRhSohoU

 

2) http://localhost:8080/realms/spring-security-OAuth2/protocol/openid-connect/auth?response_type=code&client_id=OAuth2-client-app&scope=openid%20email%20profile&state=wNz-VZFRvu_Nr8KUFYjRshELNLOFbUZVO9vWdcEQrs4%3D&redirect_uri=http://localhost:8081/login/oauth2/code/keycloak&nonce=ehS4VAjQJBrDf7APtHtUbWuzwdOnCJAOd8BhRhSohoU

status : 302

Location: http://localhost:8081/login/oauth2/code/keycloak?state=wNz-VZFRvu_Nr8KUFYjRshELNLOFbUZVO9vWdcEQrs4%3D&session_state=0e8d5564-fa24-4521-9bd9-bd931d42beb7&code=58d084f3-272e-4e31-ad4d-edc808fde122.0e8d5564-fa24-4521-9bd9-bd931d42beb7.e3344d0f-ca0d-44fd-8993-08b7b90ca190

 

3) http://localhost:8081/login/oauth2/code/keycloak?state=wNz-VZFRvu_Nr8KUFYjRshELNLOFbUZVO9vWdcEQrs4%3D&session_state=0e8d5564-fa24-4521-9bd9-bd931d42beb7&code=58d084f3-272e-4e31-ad4d-edc808fde122.0e8d5564-fa24-4521-9bd9-bd931d42beb7.e3344d0f-ca0d-44fd-8993-08b7b90ca190

status : 302

Location: http://localhost:8081/

 

스프링 시큐리티 안에서 oauth2 가 가지는

고유의 엔드포인트 라고 생각을 해야 하는게 맞는거겠죠?

 

무한리디렉션이 생기는 이유는 솔직히 모르겠습니다 아마 로그인 권한은 획득했는데..

그 이후는 잘 모르겠습니다.

 

spring java oauth spring-boot

답변 1

0

정수원

http://localhost:8081/login/oauth2/code/keycloak 에서

login/oauth2/code/* 가 기본적으로 설정되어 있는 리다이렉트 uri 입니다.

물론 이 값은 별도의 설정을 통해 변경이 가능합니다.

만약 위의 값을 설정 없이 임의로 변경하게 되면 리다이렉트 기능이 제대로 동작하지 않고 변경된 주소에 대해 접속 권한이 주어 지지 않았을 경우 계속해서 클라이언트와 인가서버간 무한 요청과 리다이렉트가 반복이 될 수 있습니다.

login/oauth2/code/* 를 변경하는 방법은 강의 챕터 중

섹션 7. OAuth 2.0 Client - oauth2Login()

> API 커스텀 구현 -Authorization BaseUrl & Redirection BaseUrl

에서 설명하고 있으니 참고 해 주시기 바랍니다

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