본문 바로가기
관리자

Programming-[Backend]/Keycloak

keycloak user info endpoint 설정

728x90
반응형

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 옵션을 꺼두었기 때문이다.

728x90
반응형