Keycloak 렐름(Realm) — 사용자와 애플리케이션을 격리하는 관리 공간

Keycloak 렐름(Realm) — 사용자와 애플리케이션을 격리하는 관리 공간

렐름(Realm)은 사용자, 애플리케이션, 역할, 그룹 같은 객체를 관리하는 하나의 공간이에요. 사용자는 어떤 렐름에 속해서 그 렐름으로 로그인합니다. Keycloak 한 대의 배포도 데이터베이스 공간이 허락하는 만큼 여러 렐름을 만들고, 저장하고, 관리할 수 있어요. 이 장에서는 Admin Console에서 렐름을 만들고 격리하는 방법을 다뤄요.

출처: Keycloak Server Administration Guide — "Configuring realms" — 공식문서

본문

도입 단계를 마치고 관리자 계정을 얻었다면 관리 콘솔에서 렐름을 설정할 수 있어요. 렐름을 만들면 사용자를 만들고 그들에게 애플리케이션을 쓸 권한을 부여할 수 있는 관리 공간이 생깁니다.

Admin Console 사용하기

렐름을 구성하고 대부분의 관리 작업은 Keycloak Admin Console에서 합니다. Admin Console을 쓰려면 관리자 계정이 필요해요.

  • http://localhost:8080/admin/ 같은 Admin Console URL로 이동합니다.
  • 로그인 페이지에서 만든 관리자 계정으로 로그인하면 Admin Console이 열려요.
  • Current realm 을 클릭하면 관리할 수 있는 다른 렐름이 있는지 확인할 수 있고, Create realm 을 클릭하면 관리할 새 렐름을 만들 수 있어요.
  • 메뉴의 Realm settings 를 클릭하면 이 렐름의 필드와 옵션을 볼 수 있어요.

Admin Console에서 내보낸 파일은 백업이나 서버 간 데이터 이동에 적합하지 않아요. 백업이나 데이터 전송에는 부팅 시점(boot-time) export만 쓸 수 있습니다.

master 렐름

Admin Console에는 두 종류의 렐름이 있어요.

  • Master realm — Keycloak을 처음 시작했을 때 만들어지는 렐름으로, 첫 로그인에서 만든 관리자 계정을 담고 있어요. 시스템에서 다른 렐름을 만들고 관리하는 용도로만 쓰세요.
  • Other realms — 관리자가 master 렐름에서 만드는 렐름이에요. 조직의 사용자와 그들이 필요한 애플리케이션을 관리합니다.

렐름들은 서로 격리되어 있고, 자기들이 통제하는 사용자만 관리·인증할 수 있어요. 이런 보안 모델은 실수로 생기는 변경을 막고, 사용자 계정이 현재 작업을 완수하는 데 필요한 권한에만 접근할 수 있게 하는 전통을 따릅니다.

렐름 만들기

렐름을 만들 때 어떤 격리를 원하는지 생각해 보세요. 예를 들어 회사 직원용 렐름과 고객용 렐름을 따로 만들 수 있어요. 직원은 직원 렐름으로 로그인해서 내부 애플리케이션만 접근하고, 고객은 고객 렐름으로 로그인해서 고객용 앱만 쓸 수 있게 만드는 것이죠.

Admin Console에서 Current realm 옆의 Create Realm 을 클릭하고 렐름 이름을 입력하면 새 렐름이 만들어집니다. 렐름의 기본 설정을 바꾸려면 Realm settings 메뉴에서 일반(General), 로그인(Login), 이메일(Email), 테마(Themes), 키(Keys), 토큰(Tokens) 같은 탭을 조정하면 돼요.

더 알아보기