작성
·
705
1
authorization_code 를 얻어오는 요청 보냄
login 페이지가 떠서 로그인함
email ,profile 등 이걸 허락하겠는가? (저는 이게 안뜹니다.)
8081이 안떠있으니 에러페이지
code를 복붙해서 access token 요청 -> accestoken 잘받아옴
해당 access token 으로 userinfo 요청시 403 forbidden
놓친 설정이 있나 확인을 여러번 하였는데 첫번째 강의에서는 Clients 설정에서 Authentication flow 에 implicit flow를 체크하셨는데 2번째 강의에는 해제 되어있길레 해제 해봤지만 결과는 동일합니다.
무엇이 문제인지 알 수 있을까요..?
jwt.io에서 토큰 정보를 확인했을떄 다음과 같습니다. 제가 안되길레 여러 RoleMapping을 추가해본것입니다.
{
"exp": 1668576888,
"iat": 1668576588,
"auth_time": 1668576573,
"jti": "6775c84b-9f26-4d8c-ab58-a09c136eb782",
"iss": "http://localhost:8080/realms/oauth2",
"aud": [
"realm-management",
"account"
],
"sub": "f35e128a-f3a9-48df-a784-5675ade34468",
"typ": "Bearer",
"azp": "oauth2-client-app",
"session_state": "4b46d62b-0dbe-41ba-9901-a2465eed5f41",
"acr": "1",
"realm_access": {
"roles": [
"offline_access",
"uma_authorization",
"default-roles-oauth2"
]
},
"resource_access": {
"realm-management": {
"roles": [
"manage-users",
"view-users",
"query-groups",
"query-users"
]
},
"account": {
"roles": [
"manage-account",
"manage-account-links",
"view-profile"
]
}
},
"scope": "profile email",
"sid": "4b46d62b-0dbe-41ba-9901-a2465eed5f41",
"email_verified": false,
"name": "kakarot lim",
"preferred_username": "user",
"given_name": "kakarot",
"family_name": "lim",
"email": "user@keycloak.com"
}
구글링 해서 알아본 결과 authorization_code를 요청할때 헤더에 scope=openid 로 하니 잘되었습니다.
이건 버전 차이라고 보면 될까요? 저는 도커로 20 버전을 사용하였습니다.
답변 1
2
자문자답)
clients Settings에서 Login Settings 에서 Consent required 를 켜면 user 가 로그인후 consent 하는 화면도 나오고 scope에 openid 없이해도 정상적으로 access token 을 받아오게 됩니다.
네 맞습니다.
consent 화면은 clientSettings 에서 사용유무를 설정해야 나오게 됩니다.
기본은 false 이기 때문에 나오지 않은 것 같습니다.