• Home
  • About
    • Young's Github Pages photo

      一日不作一日不食

    • About
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

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에 포함될 키값
  • Client 메뉴, Client Scopes 탭에서 이미 생성한 Client Scope를 포함 설정이 가능

Audience

  • SSO를 위해 사용하는 JWT 토큰으로 접근 가능한 Client들의 목록
    • 일반적으로 Client Role이 할당되면 자동적으로 Audience 목록에 추가됨
    • Realm Role을 쓰는 경우, 자동으로 Audience에 추가되지 않기 때문에 Client Mappers 탭에서 Audience Mapper를 추가해서 등록

참고

  • Secure Frontend (React.js) and Backend (Node.js/Express Rest API) with Keycloak
  • Keycloak Document - Audience Support


TILKeycloak