11.6. 创建用户自定义资源
您可以使用 Operator 在 Red Hat Single Sign-On 中创建由自定义资源定义的用户。您可以在 YAML 文件中定义用户自定义资源的属性。
您可以更新 YAML 文件中的属性,更改会出现在 Red Hat Single Sign-On 管理控制台中,但对 admin 控制台的更改不会更新自定义资源。
请注意,同样适用于凭据。如果定义了 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
先决条件
- 对此自定义资源有一个 YAML 文件。
-
realmSelector与现有 realm 自定义资源的标签匹配。 - 您有 cluster-admin 权限或管理员授予了同等权限的权限级别。
流程
在您创建的 YAML 文件中使用此命令:
oc create -f <user_cr>.yaml.例如:$ oc create -f initial_user.yaml keycloak.keycloak.org/example-user created- 登录到 Red Hat Single Sign-On 的相关实例的管理控制台。
- 点 Users。
搜索您在 YAML 文件中定义的用户。
您可能需要切换到其他域来查找用户。
结果
创建用户后,Operator 会使用以下命名模式创建一个 Secret: credential-<realm name>-<username>-<namespace >,其中包含用户名,并在 CR credentials 属性中指定了密码。
例如:
KeycloakUser Secret
kind: Secret
apiVersion: v1
data:
password: <base64 encoded password>
username: <base64 encoded username>
type: Opaque
Operator 处理自定义资源后,使用以下命令查看状态:
$ 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>
其他资源
- 如果您有外部数据库,您可以修改 Keycloak 自定义资源来支持它。请参阅连接到外部数据库。
- 要使用自定义资源备份数据库,请参阅 调度数据库备份。