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) 같은 탭을 조정하면 돼요.