11.6. 사용자 정의 리소스 생성
Operator를 사용하여 사용자 정의 리소스에서 정의한 대로 Red Hat Single Sign-On에서 사용자를 생성할 수 있습니다. YAML 파일에서 사용자 사용자 정의 리소스의 속성을 정의합니다.
YAML 파일에서 속성을 업데이트할 수 있으며 변경 사항은 Red Hat Single Sign-On 관리자 콘솔에 표시되지만 관리자 콘솔에 대한 변경 사항은 사용자 정의 리소스를 업데이트하지 않습니다.
자격 증명에 동일하게 적용됩니다. credentials
필드가 정의되면 사용자 인증 정보가 CR에 설정된 값과 항상 일치합니다. 즉, 사용자가 계정 콘솔을 통해 암호를 변경하면 Operator가 CR에 설정된 값과 일치하도록 재설정됩니다.
사용자 사용자 정의 리소스의 YAML 파일의 예
apiVersion: keycloak.org/v1alpha1 kind: KeycloakUser metadata: name: example-user spec: user: username: "realm_user" firstName: "John" lastName: "Doe" email: "user@example.com" enabled: True emailVerified: False credentials: - type: "password" value: "12345" realmRoles: - "offline_access" clientRoles: account: - "manage-account" realm-management: - "manage-users" realmSelector: matchLabels: app: sso
apiVersion: keycloak.org/v1alpha1
kind: KeycloakUser
metadata:
name: example-user
spec:
user:
username: "realm_user"
firstName: "John"
lastName: "Doe"
email: "user@example.com"
enabled: True
emailVerified: False
credentials:
- type: "password"
value: "12345"
realmRoles:
- "offline_access"
clientRoles:
account:
- "manage-account"
realm-management:
- "manage-users"
realmSelector:
matchLabels:
app: sso
사전 요구 사항
- 이 사용자 정의 리소스에 대한 YAML 파일이 있습니다.
-
realmSelector
는 기존 영역 사용자 정의 리소스의 레이블과 일치합니다. - cluster-admin 권한 또는 관리자가 부여한 동등한 수준의 권한이 있어야 합니다.
절차
생성한 YAML 파일에서 이 명령을 사용합니다.
oc create -f <user_cr>.yaml
. 예를 들면 다음과 같습니다.oc create -f initial_user.yaml
$ oc create -f initial_user.yaml keycloak.keycloak.org/example-user created
Copy to Clipboard Copied! - Red Hat Single Sign-On의 관련 인스턴스에 대해 관리 콘솔에 로그인합니다.
- 사용자를 클릭합니다.
YAML 파일에 정의한 사용자를 검색합니다.
사용자를 찾으려면 다른 영역으로 전환해야 할 수 있습니다.
결과
사용자가 생성되면 Operator는 사용자 이름이 포함된 credentials
-< realm name>-<username>-<namespace> , 다음 이름 지정 패턴을 사용하여 시크릿을 생성합니다. 사용자 이름 및 CR 인증 정보
속성에 지정된 경우 암호입니다.
예를 들면 다음과 같습니다.
KeycloakUser
시크릿
kind: Secret apiVersion: v1 data: password: <base64 encoded password> username: <base64 encoded username> type: Opaque
kind: Secret
apiVersion: v1
data:
password: <base64 encoded password>
username: <base64 encoded username>
type: Opaque
Operator가 사용자 정의 리소스를 처리한 후 다음 명령으로 상태를 봅니다.
oc describe keycloak <CR-name>
$ oc describe keycloak <CR-name>
사용자 정의 리소스 상태
Name: example-realm-user Namespace: keycloak Labels: app=sso API Version: keycloak.org/v1alpha1 Kind: KeycloakUser Spec: Realm Selector: Match Labels: App: sso User: Email: realm_user@redhat.com Credentials: Type: password Value: <user password> Email Verified: false Enabled: true First Name: John Last Name: Doe Username: realm_user Status: Message: Phase: reconciled Events: <none>
Name: example-realm-user
Namespace: keycloak
Labels: app=sso
API Version: keycloak.org/v1alpha1
Kind: KeycloakUser
Spec:
Realm Selector:
Match Labels:
App: sso
User:
Email: realm_user@redhat.com
Credentials:
Type: password
Value: <user password>
Email Verified: false
Enabled: true
First Name: John
Last Name: Doe
Username: realm_user
Status:
Message:
Phase: reconciled
Events: <none>
추가 리소스
- 외부 데이터베이스가 있는 경우 Keycloak 사용자 정의 리소스를 수정하여 지원할 수 있습니다. 외부 데이터베이스에 연결을 참조하십시오.
- 사용자 지정 리소스를 사용하여 데이터베이스를 백업하려면 데이터베이스 백업 일정을 참조하십시오.