inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bảo mật mùa xuân OAuth2

Hiểu vai trò OAuth 2.0

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

851

dohyunlim

67 câu hỏi đã được viết

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

Câu trả lời 1

2

dohyunlim

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

1

leaven

네 맞습니다.

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

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

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

199

1