8.3. 创建外部身份验证供应商
在为外部身份验证供应商创建带有 enabled 选项的 Red Hat OpenShift Service on AWS 集群后,您必须使用 ROSA CLI 创建供应商。
与 ROSA CLI 中的 rosa create|delete|list idp[s] 命令类似,您无法编辑使用 rosa 创建 external-auth-provider 的现有身份提供程序。相反,您必须删除外部身份验证供应商并创建一个新供应商。
下表显示了您可以在创建外部身份验证供应商时使用的 CLI 标志:
| CLI 标记 | 描述 |
|---|---|
|
| 集群的名称或 ID。 |
|
| 用于引用外部身份验证提供程序的名称。 |
|
| 此字符串是用于将您的帐户与应用程序关联的客户端 secret。如果没有包含客户端 secret,这个命令会使用公共 OIDC OAuthClient。 |
|
| 这是以逗号分隔的令牌受众列表。 |
|
| 令牌签发者的 URL。 |
|
| 应该用于为集群身份构建用户名的声明名称。 |
|
| 应该用于为集群身份构造组名称的声明名称。 |
流程
要使用交互式命令行界面,请运行以下命令:
输入示例
$ rosa create external-auth-provider -c <cluster_name>I: Enabling interactive mode ? Name:1 ? Issuer audiences:2 ? The serving url of the token issuer:3 ? CA file path (optional):4 ? Claim mapping username:5 ? Claim mapping groups:6 ? Claim validation rule (optional):7 ? Console client id (optional):8 您可以使用以下命令包含创建外部身份验证供应商所需的 ID:
rosa create external-auth-provider --cluster=<cluster_id> \ --name=<provider_name> --issuer-url=<issuing_url> \ --issuer-audiences=<audience_id> \ --claim-mapping-username-claim=email \ --claim-mapping-groups-claim=groups \ --console-client-id=<client_id_for_app_registration> \ --console-client-secret=<client_secret>输出示例
I: Successfully created an external authentication provider for cluster 'ext-auth-test'
8.3.1. 外部身份验证供应商示例 复制链接链接已复制到粘贴板!
您可以使用以下外部身份验证供应商配置示例来设置您自己的配置。
Microsoft Entra ID 配置示例
您可以将 Microsoft Entra ID 用作外部提供者。您必须已经配置了一个 Microsoft Entra ID 服务器,然后才能将它用作外部提供者。如需更多信息,请参阅 Microsoft Entra ID 文档。
以下示例显示了配置了 Microsoft Entra ID 外部身份验证供应商:
流程
运行以下命令,创建一个使用 Microsoft Entra ID 的外部身份验证供应商:
注意您必须使用特定于 Microsoft Entra ID 服务器的值来设置自己的环境变量。
输入示例
$ rosa create external-auth-provider -c $CLUSTER_NAME \ --claim-mapping-groups-claim groups \ --claim-mapping-username-claim <authorized_user_name> \ --console-client-id $CONSOLE_CLIENT_ID \ --console-client-secret $CONSOLE_CLIENT_SECRET_VALUE \ --issuer-audiences "$AUDIENCE_1" \ --issuer-ca-file ca-bundle.crt --issuer-url $ISSUER_URL \ --name m-entra-id输出示例
I: Successfully created an external authentication provider for cluster 'ext-auth-test'. It can take a few minutes for the creation of an external authentication provider to become fully effective.运行以下命令,列出集群的外部身份验证供应商,以查看签发者 URL 或使用
rosa describe命令查看与此外部身份验证供应商相关的所有详情:运行以下命令,列出指定集群中的外部身份验证配置:
输入示例
$ rosa list external-auth-provider -c <cluster_name> \1 - 1
- 使用您要查看的外部身份验证供应商提供集群名称。
输出示例
NAME ISSUER URL m-entra-id https://login.microsoftonline.com/<group_id>/v2.0运行以下命令,显示指定集群中的外部身份验证配置:
输入示例
$ rosa describe external-auth-provider \ -c <cluster_name> --name <name_of_external_authentication> \1 2 输出示例
ID: ms-entra-id Cluster ID: <cluster_id> Issuer audiences: - <audience_id> Issuer Url: https://login.microsoftonline.com/<group_id>/v2.0 Claim mappings group: groups Claim mappings username: email
Keycloak 配置示例
您可以使用 Keycloak 作为外部供应商。您必须已经配置了 Keycloak 服务器,然后才能将其用作外部供应商。如需更多信息,请参阅 Keycloak 文档。
流程
运行以下命令,创建一个使用 Keycloak 的外部身份验证供应商:
注意您必须使用特定于您的 Keycloak 服务器的值来设置自己的环境变量。
输入示例
$ rosa create external-auth-provider -c $CLUSTER_NAME \ --claim-mapping-groups-claim groups \ --claim-mapping-username-claim <authorized_user_name> \ --console-client-id $CONSOLE_CLIENT_ID \ --console-client-secret $CONSOLE_CLIENT_SECRET_VALUE \ --issuer-audiences "$AUDIENCE_1,$AUDIENCE_2" \ --issuer-ca-file ca-bundle.crt --issuer-url $ISSUER_URL --name keycloak输出示例
I: Successfully created an external authentication provider for cluster 'ext-auth-test'. It can take a few minutes for the creation of an external authentication provider to become fully effective.运行以下命令,列出集群的外部身份验证供应商,以查看签发者 URL 或使用
rosa describe命令查看与此外部身份验证供应商相关的所有详情:运行以下命令,列出指定集群中的外部身份验证配置:
输入示例
$ rosa list external-auth-provider -c <cluster_name>输出示例
NAME ISSUER URL keycloak https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master运行以下命令,显示指定集群中的外部身份验证配置:
输入示例
$ rosa describe external-auth-provider \ -c <cluster_name> --name <name_of_external_authentication>输出示例
ID: keycloak Cluster ID: <cluster_id> Issuer audiences: - <audience_id_1> - <audience_id_2> Issuer Url: https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master Claim mappings group: groups Claim mappings username: <authorized_user_name> Console client id: console-test