Keycloak 용어 정리
12 Jun 2022
Reading time ~1 minute
Keycloak 용어 정리
회사에서 SSO 연동작업을 하며 사용한 Keycloak에 대한 기본 용어 정리
Realm
- SSO를 사용하는 Client(앱, 서비스)들을 포함하는 관리 단위
Clients(서비스)
- Realm 안에 포함된 개별적인 앱들(frontend, backend, …)
- 인증은 각 클라이언트에서 keycloak 서버로 인증요청을 해서 수행
- keycloak 서버가 로그인 페이지를 제공
Roles(권한)
- Realm Roles
- 렐름 레벨(전역) Role
- Client Roles
- 클라이언트 레벨 Role, 각 클라이언트별로 다른 Role을 가짐
- Composite Roles
- 렐름 또는 클라이언트 Role을 합친 Role
Users(계정)
- Role Mapping으로 계정에 권한(Role) 설정
Client Scope(클라이언트에서 사용하는 스코프)
- 미리 정의해두고 여러 클라이언트에서 사용가능
- Client Scope를 추가하면 JWT 토큰안에 커스텀 키에 데이터를 담을 수 있음
- Client Scope를 만들고 Mapper를 만듦
- Mapper 생성 시
Token Claim Name
이 JWT에 포함될 키값
- Mapper 생성 시
- Client Scope를 만들고 Mapper를 만듦
- Client 메뉴, Client Scopes 탭에서 이미 생성한 Client Scope를 포함 설정이 가능
Audience
- SSO를 위해 사용하는 JWT 토큰으로 접근 가능한 Client들의 목록
- 일반적으로 Client Role이 할당되면 자동적으로 Audience 목록에 추가됨
- Realm Role을 쓰는 경우, 자동으로 Audience에 추가되지 않기 때문에 Client Mappers 탭에서 Audience Mapper를 추가해서 등록