user info endpoint
keycloak에서 사용자의 정보가 변경되었을 때, 클라이언트가 해당 사용자 정보를 조회해서 최신 정보를 확인해야하는 경우가 있을 수 있다. 이를 위해 Keycloak은 user info endpoint를 제공한다. 이는 OIDC 표준 endpoint이기도 하다.
사용을 위해서는 특정 User가 특정 Client에 로그인하고 Access Token을 발급받은 상태여야한다. 그리고 User Info endpoint의 Authorization header에 이 토큰을 전달해줘야한다.
Access Token을 발급받기 위해 client을 생성한다. 그리고 해당 client에 user info 요청이 들어왔을 때 정보를 전달해주도록 mapper 설정을 해줘야한다.
Clients -> 특정 Client Detail -> Client Scopes -> {client_name}_dedicated -> Scope 탭에 가서 Full scope allowed를 해제한다. 이 설정은 해당 client가 본인에 대한 정보만 노출하고, 다른 client에 대한 정보는 노출하지 않도록 설정해주는 것이다.
그런다음 Mapper 탭 -> Add mapper -> client roles -> Add to userinfo 토글을 ON 처리해준다.
이후 만들어둔 client로 로그인한다. 아래처럼 로그인하면 된다.
받아온 access_token을 Authorization Header에 넣고, userinfo endpoint로 GET 요청을 보내면 아래와 같은 응답을 얻을 수 있다.
로그인 했던 "test" 라는 이름의 client에 대한 role 정보만 보이는 것을 확인할 수 있다. 이는 앞서 설명한대로 full scope allowed 옵션을 꺼두었기 때문이다.
'Programming-[Backend] > Keycloak' 카테고리의 다른 글
[TIL] Keycloak - Google IDP Social Login시 prompt 설정 (0) | 2025.03.17 |
---|---|
keycloak haproxy compose 내용 (0) | 2025.03.14 |
keycloak User 정보 마스킹 처리 (0) | 2025.03.08 |
keycloak 비밀번호 알고리즘 argon2, pbkdf2-sha256, 마이그레이션 필요 여부 (0) | 2025.02.27 |
keycloak k8s 배포 (0) | 2025.02.11 |