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 の関連インスタンス向けに、管理コンソールにログインします。
- Users をクリックします。
YAML ファイルで定義したユーザーを検索します。
ユーザーを検索するには、別のレルムに切り替える必要がある場合があります。
Results
ユーザーの作成後、Operator は credential-<realm name>-<username>-<namespace>
という命名パターンを使用してシークレットを作成します。このシークレットには、ユーザー名と、CR credentials
属性で指定されている場合はパスワードが含まれます。
以下に例を示します。
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 カスタムリソースを変更してサポートすることができます。外部データベースへの接続 を参照してください。
- カスタムリソースを使用してデータベースのバックアップを作成するには、データベースのバックアップのスケジュール を参照してください。