InfraPlatform

keycloak 을 설치하고 신규 Realm 생성

IT오이시이 2025. 1. 5. 22:43
728x90

keycloak 을 설치하고 신규 Realm 생성

 

Keycloak은 

Keycloak은 오픈 소스 Identity and Access Management(IAM) 솔루션입니다. 이를 통해 애플리케이션과 서비스를 위한 인증, 권한 부여, 사용자 관리 등을 다음과 같은 기능을 구성합니다.

  • Single Sign-On(SSO): 한 번의 로그인으로 여러 애플리케이션과 서비스에 접근 가능.
  • Identity Brokering 및 Social Login: Google, Facebook 등의 외부 아이덴티티 제공자와 연동 가능.
  • User Federation: LDAP나 Active Directory와 같은 외부 사용자 데이터베이스와의 연동 가능.
  • Fine-Grained Authorization: 사용자의 권한을 세밀하게 제어 가능.

 

Keycloak의 Realm은

Keycloak의 Realm은 사용자 인증 및 권한 부여의 범위를 의미합니다. Realm은 사용자의 자격증명, 역할, 그룹 등을 관리하는 개념으로, 여러 서비스나 애플리케이션에 대한 사용자 인증 및 권한을 중앙에서 관리할 수 있습니다.

예를 들어, 회사 A라는 Realm 하위에 서비스 A 전용 클라이언트, 서비스 B 전용 클라이언트 등을 생성할 수 있습니다. 이렇게 하면, 한 번의 로그인으로 여러 서비스를 사용할 수 있는 Single Sign-On (SSO) 기능을 제공합니다.
 

1. 관리자 콘솔에서 Create Realm을 시작

 

2. Realm 생성

     Realm name : test-oauth 를 생성 하는 과정을 정리 합니다.

 

3.  Resource File에 아래 내용을 추가 합니다.

{
	"realm": "test-oauth",
	"enabled": true,
	"id": "test-oauth-realm",
	"displayName": "test-oauth Realm",
	"displayNameHtml": "<b>test-oauth Realm</b>",
	"sslRequired": "external",
	"loginWithEmailAllowed": true,
	"duplicateEmailsAllowed": false,
	"resetPasswordAllowed": true,
	"editUsernameAllowed": false,
	"registrationAllowed": true,
	"rememberMe": true,
	"loginTheme": "keycloak",
	"accountTheme": "keycloak",
	"adminTheme": "keycloak",
	"emailTheme": "keycloak",
	"eventsEnabled": true,
	"eventsListeners": [
		"event-admin"
	],
	"adminEventsEnabled": true,
	"adminEventsDetailsEnabled": true
}

 
 

3. Realm의 속성 설정

 
각 속성은 Realm의 특정 설정을 정의합니다. 

  1. realm: Realm의 이름입니다. 여기서는 "test-oauth"으로 설정되어 있습니다.
  2. enabled: Realm이 활성화되었는지 여부를 나타냅니다. true로 설정되어 있어 Realm이 활성화된 상태입니다.
  3. id: Realm의 ID입니다. 여기서는 "test-oauth-realm"입니다.
  4. displayName: Realm의 표시 이름입니다. 여기서는 "test-oauth Realm"입니다.
  5. displayNameHtml: HTML 형식으로 된 표시 이름입니다. <b>test-oauth Realm</b>은 굵은 글씨로 표시됩니다.
  6. sslRequired: SSL(보안 소켓 계층)이 필요한지 여부를 나타냅니다. external로 설정되어 있어 외부 요청에 대해 SSL이 필요합니다.
  7. loginWithEmailAllowed: 이메일을 사용하여 로그인할 수 있는지 여부입니다. true로 설정되어 있어 사용자가 이메일을 사용하여 로그인할 수 있습니다.
  8. duplicateEmailsAllowed: 중복 이메일을 허용할지 여부입니다. false로 설정되어 있어 중복 이메일이 허용되지 않습니다.
  9. resetPasswordAllowed: 사용자가 비밀번호를 재설정할 수 있는지 여부입니다. true로 설정되어 있습니다.
  10. editUsernameAllowed: 사용자가 사용자 이름을 수정할 수 있는지 여부입니다. false로 설정되어 있어 사용자 이름 수정이 허용되지 않습니다.
  11. registrationAllowed: 사용자가 자체 등록할 수 있는지 여부입니다. true로 설정되어 있어 자체 등록이 허용됩니다.
  12. rememberMe: 사용자가 로그인할 때 "기억하기" 옵션을 사용할 수 있는지 여부입니다. true로 설정되어 있습니다.
  13. loginTheme: 로그인 화면의 테마입니다. "keycloak" 테마가 사용됩니다.
  14. accountTheme: 사용자 계정 관리 화면의 테마입니다. "keycloak" 테마가 사용됩니다.
  15. adminTheme: 관리 콘솔의 테마입니다. "keycloak" 테마가 사용됩니다.
  16. emailTheme: 이메일 템플릿의 테마입니다. "keycloak" 테마가 사용됩니다.
  17. eventsEnabled: 이벤트가 활성화되었는지 여부입니다. true로 설정되어 있어 이벤트가 활성화된 상태입니다.
  18. eventsListeners: 이벤트 리스너 목록입니다. 여기서는 ["event-admin"]가 설정되어 있습니다.
  19. adminEventsEnabled: 관리 이벤트가 활성화되었는지 여부입니다. true로 설정되어 있습니다.
  20. adminEventsDetailsEnabled: 관리 이벤트의 세부 정보를 활성화할지 여부입니다. true로 설정되어 있어 세부 정보가 활성화됩니다.

 


4. Realm의  등록 정보 확인

 
http://127.0.0.1:8080/admin/master/console/#/test-oauth/realm-settings/general

 
 
[참고]
[DevOps] - keycloak 설치 - 오픈 소스 Identity and Access Management

728x90
반응형