11.6. 创建客户端自定义资源
您可以使用 Operator 在 Red Hat Single Sign-On 中创建由自定义资源定义的客户端。您可以在 YAML 文件中定义 realm 的属性。
注意
您可以更新 YAML 文件和更改显示在 Red Hat Single Sign-On 管理控制台中,但更改管理控制台不会更新自定义资源。
Client 自定义资源的 YAML 文件示例
apiVersion: keycloak.org/v1alpha1
kind: KeycloakClient
metadata:
name: example-client
labels:
app: sso
spec:
realmSelector:
matchLabels:
app: <matching labels for KeycloakRealm custom resource>
client:
# auto-generated if not supplied
#id: 123
clientId: client-secret
secret: client-secret
# ...
# other properties of Keycloak Client
前提条件
- 有用于此自定义资源的 YAML 文件。
- 您有 cluster-admin 权限,或具有管理员授予的同等权限级别。
流程
在您创建的 YAML 文件中运行这个命令:
oc create -f <client-name>.yaml。例如:$ oc create -f initial_client.yaml keycloak.keycloak.org/example-client created- 登录到 Red Hat Single Sign-On admin 控制台,以获取 Red Hat Single Sign-On 相关的实例。
点 Clients。
新客户端会出现在客户端列表中。
结果
创建客户端后,Operator 会使用以下命名模式创建一个包含 客户端 ID 和客户端 secret 的 Secret: keycloak-client-secret-<custom 资源名称>。例如:
客户端的机密
apiVersion: v1
data:
CLIENT_ID: <base64 encoded Client ID>
CLIENT_SECRET: <base64 encoded Client Secret>
kind: Secret
Operator 处理自定义资源后,使用以下命令查看状态:
$ oc describe keycloak <CR-name>
客户端自定义资源状态
Name: client-secret
Namespace: keycloak
Labels: app=sso
API Version: keycloak.org/v1alpha1
Kind: KeycloakClient
Spec:
Client:
Client Authenticator Type: client-secret
Client Id: client-secret
Id: keycloak-client-secret
Realm Selector:
Match Labels:
App: sso
Status:
Message:
Phase: reconciling
Ready: true
Secondary Resources:
Secret:
keycloak-client-secret-client-secret
Events: <none>
其他资源
- 客户端创建完成后,您已准备好 创建用户自定义资源。