inflearn logo
강의

Course

Instructor

Spring Security OAuth2

Understanding OAuth 2.0 Roles

profile email 권한페이지가 나오지 않습니다.

850

dohyunlim

67 asked

1

  1. authorization_code 를 얻어오는 요청 보냄

  2. login 페이지가 떠서 로그인함

  3. email ,profile 등 이걸 허락하겠는가? (저는 이게 안뜹니다.)

  4. 8081이 안떠있으니 에러페이지

  5. code를 복붙해서 access token 요청 -> accestoken 잘받아옴

  6. 해당 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 버전을 사용하였습니다.

java spring spring-boot oauth

Answer 1

2

dohyunlim

자문자답)
clients Settings에서 Login Settings 에서 Consent required 를 켜면 user 가 로그인후 consent 하는 화면도 나오고 scope에 openid 없이해도 정상적으로 access token 을 받아오게 됩니다.

1

leaven

네 맞습니다.

consent 화면은 clientSettings 에서 사용유무를 설정해야 나오게 됩니다.

기본은 false 이기 때문에 나오지 않은 것 같습니다.

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

0

72

1

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

0

72

2

JWT 조회 에 대한 질문

0

68

1

password grant 방식 에러 응답

0

83

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

133

2

OIDC SSO 관련 질문 입니다.

0

128

1

AuthenticationEntryPoint 강의 누락 문의

0

118

1

cors설정방법

0

113

1

jwt decoder 토큰 검증 시 질문

0

217

1

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

0

182

2

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

0

137

2

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

1

522

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

140

2

AuthenticationManager 생성시점

0

111

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

120

1

postman userinfo 엔드포인트 질문

0

123

2

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

0

108

1

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

0

195

1