8.3. 创建外部身份验证供应商


在为外部身份验证供应商创建带有 enabled 选项的 Red Hat OpenShift Service on AWS 集群后,您必须使用 ROSA CLI 创建供应商。

注意

与 ROSA CLI 中的 rosa create|delete|list idp[s] 命令类似,您无法编辑使用 rosa 创建 external-auth-provider 的现有身份提供程序。相反,您必须删除外部身份验证供应商并创建一个新供应商。

下表显示了您可以在创建外部身份验证供应商时使用的 CLI 标志:

Expand
CLI 标记描述

--cluster

集群的名称或 ID。

--name

用于引用外部身份验证提供程序的名称。

--console-client-secret

此字符串是用于将您的帐户与应用程序关联的客户端 secret。如果没有包含客户端 secret,这个命令会使用公共 OIDC OAuthClient。

--issuer-audiences

这是以逗号分隔的令牌受众列表。

--issuer-url

令牌签发者的 URL。

--claim-mapping-username-claim

应该用于为集群身份构建用户名的声明名称。

--claim-mapping-groups-claim

应该用于为集群身份构造组名称的声明名称。

流程

  • 要使用交互式命令行界面,请运行以下命令:

    输入示例

    $ 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
    1
    外部身份验证供应商的名称。这个名称应该是一个小写,带有数字和短划线。
    2
    此身份验证提供程序发布令牌的使用者 ID:
    3
    提供令牌的签发者 URL。
    4
    可选:发出请求时使用的证书文件。
    5
    用于为集群身份构造用户名的声明名称,如使用 电子邮件
    6
    将 ID 令牌转换为集群身份的方法,如使用
    7
    可选:帮助验证验证用户身份的令牌声明的规则。此字段应格式为 :< required_value>
    8
    可选:应用程序注册用于控制台的应用程序或客户端 ID。
  • 您可以使用以下命令包含创建外部身份验证供应商所需的 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 外部身份验证供应商:

流程

  1. 运行以下命令,创建一个使用 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.

  2. 运行以下命令,列出集群的外部身份验证供应商,以查看签发者 URL 或使用 rosa describe 命令查看与此外部身份验证供应商相关的所有详情:

    1. 运行以下命令,列出指定集群中的外部身份验证配置:

      输入示例

      $ rosa list external-auth-provider -c <cluster_name> \ 
      1

      1
      使用您要查看的外部身份验证供应商提供集群名称。

      输出示例

      NAME        ISSUER URL
      m-entra-id  https://login.microsoftonline.com/<group_id>/v2.0

    2. 运行以下命令,显示指定集群中的外部身份验证配置:

      输入示例

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication> \ 
      1
       
      2

      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 文档

流程

  1. 运行以下命令,创建一个使用 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.

  2. 运行以下命令,列出集群的外部身份验证供应商,以查看签发者 URL 或使用 rosa describe 命令查看与此外部身份验证供应商相关的所有详情:

    1. 运行以下命令,列出指定集群中的外部身份验证配置:

      输入示例

      $ rosa list external-auth-provider -c <cluster_name>

      输出示例

      NAME      ISSUER URL
      keycloak  https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master

    2. 运行以下命令,显示指定集群中的外部身份验证配置:

      输入示例

      $ 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

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部