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 权限或管理员授予了同等权限的权限级别。

流程

  1. 在您创建的 YAML 文件中使用此命令: oc create -f <user_cr>.yaml.例如:

    $ oc create -f initial_user.yaml
    keycloak.keycloak.org/example-user created
  2. 登录到 Red Hat Single Sign-On 的相关实例的管理控制台。
  3. 点 Users。
  4. 搜索您在 YAML 文件中定义的用户。

    您可能需要切换到其他域来查找用户。

    realm user

结果

创建用户后,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>

其他资源

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部