keycloack userinfo 403 forbidden error
3797
2 asked
해당 페이지에 있는 해결 방법 그대로
consent required를 킨 후에
access token을 받아오는 것 까지는 잘 되는데,
마찬가지로 userinfo 요청시
http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo
에 Authorization에 Bearer Token타입 체크 후
Token값도 받아온 access_token값으로 잘 넣어줬는데도
403 forbidden 에러가 뜨네요
무엇이 잘못된걸까요
keycloack버전은 20.0.2입니다
Answer 3
17
아래 해당 url 참고하여 해결 가능합니다.
https://keycloak.discourse.group/t/issue-on-userinfo-endpoint-at-keycloak-20/18461/7
https://github.com/keycloak/keycloak/pull/14237MR 을 보시면 알수있듯이 keycloak 버전이 올라가면서 openid scope 를 누락시킨 경우 403 이 노출됩니다.
keycloak > 왼쪽 탭 > Client scopes > Create client scope > 'openid' 이름으로 default type 생성
keycloak > 왼쪽 탭 > Client > oauth2-client-app > Client scopes > Add client scope > 2번에서 생성한 openid default 값으로 추가
code 발급부터 다시해보시면 됩니다.
2
덕분에 해결할 수 있었습니다!! 저는 왜 이거 하나 못 찾아서 헤매고 있었을까요..
https://www.keycloak.org/docs/latest/upgrading/index.html#userinfo-endpoint-changes
스택오버플로우나 다른 곳에서 질문이 등록되어 있었지만 잘못된 답변도 많아서 일단 keycloak 공식 문서를 찾아보자 ! 했습니다.
It is now required for access tokens to have the
openidscope, which is stipulated by UserInfo being a feature specific to OpenID Connect and not OAuth 2.0. If theopenidscope is missing from the token, the request will be denied with a403 Forbidden(see above).UserInfo now checks the user status, and returns the
invalid_tokenresponse if the user is disabled.
이 글을 보고 openid 라는 걸 scope 에 추가를 해줘야 하는구나. 근데 scope 는 어디서 어떻게 추가를 해줘야하는거지..? 여기서 일단 정지.. 진짜 전 멍청한가 봅니다 ㅜ.ㅜ
Client scopes 에서 생성 후 default 로 추가하면 scope 에 매번 적을 필요없이 적용되는 것 같고,
postman 에서 scope = profile emaill openid 여기에 적어도 잘 작동하는 것 같습니다.
0
감사합니다.
강사님과 다르게 최신 버전으로 다운 받겠다고 Keycloak 21.1.2 버전을 다운받고 사용하다보니 발생한 에러 였네요.
강사님과 동일하게 Keycloak 19.0.1 버전을 다운 받으실 분들은 아래의 주소로 들어가서 다운 받으시면 됩니다.
4
저도 Keycloak 20버전을 사용했었는대
19 버전까진 괜찬았던거 같지만 20+버전부터 발생하는 이유 같습니다.
저는 code를 발급 받을때 스코프에 openid를 추가해서 해결했습니다.
ex:&scope=profile email openid
0
음...
userinfo 를 가지고 오는 것은 token 을 담아서 보내는 것 외에는 특별한 설정이 없는데요..
keycloak 버전을 19로 해서 한번 해서 해보시고 혹시 강의에서 설정한 것과 동일한지 체크 해 보십시오
그리고도 동일한 결과가 나온다면 테스트 한 정보를 공유해 주시면 제가 해 보도록 하겠습니다.
authorization-server 라이브러리 질문이 있습니다.
0
72
1
loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생
0
72
2
JWT 조회 에 대한 질문
0
68
1
password grant 방식 에러 응답
0
84
3
FormLoginConfigure에서 생성하는 필터
0
72
2
현업에서 springboot를 3.5.5 를 사용해서 공부중인데...
0
280
2
Jdbc 관련 강의 및 깃헙 문의
0
73
1
OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문
0
207
1
UserInfo 엔드포인트 요청 실습
0
71
1
RFC 문서에서의 AccessToken 발급 방식 궁금한점
0
147
1
강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요
0
134
2
OIDC SSO 관련 질문 입니다.
0
128
1
AuthenticationEntryPoint 강의 누락 문의
0
118
1
cors설정방법
0
113
1
jwt decoder 토큰 검증 시 질문
0
217
1
클라이언트에서 userinfo 엔드포인트 호출 시 질문
0
183
2
JOSE 구성요소의 api에 관한 질문
0
137
2
스프링 부트 3버전으로 따라가시는 분들 참고하세요
1
523
1
CustomOAuth2AuthenticationFilter 구현 중 질문
0
141
2
AuthenticationManager 생성시점
0
114
1
FormLogin과 Oauth2Client 둘 중 사용하는 시점
0
122
1
postman userinfo 엔드포인트 질문
0
128
2
강의 수강신청하고 듣기 전입니다 질문있습니다.
0
110
1
인증 코드를 통해 발급 받은 토큰의 관리
0
197
1

