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>
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap
    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>
    Copy to Clipboard Toggle word wrap

    输出示例

    I: Successfully created an external authentication provider for cluster 'ext-auth-test'
    Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap

    输出示例

    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.
    Copy to Clipboard Toggle word wrap

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

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

      输入示例

      $ rosa list external-auth-provider -c <cluster_name> \ 
      1
      Copy to Clipboard Toggle word wrap

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

      输出示例

      NAME        ISSUER URL
      m-entra-id  https://login.microsoftonline.com/<group_id>/v2.0
      Copy to Clipboard Toggle word wrap

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

      输入示例

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication> \ 
      1
       
      2
      Copy to Clipboard Toggle word wrap

      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
      Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap

    输出示例

    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.
    Copy to Clipboard Toggle word wrap

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

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

      输入示例

      $ rosa list external-auth-provider -c <cluster_name>
      Copy to Clipboard Toggle word wrap

      输出示例

      NAME      ISSUER URL
      keycloak  https://keycloak-keycloak.apps.<keycloak_id>.openshift.org/realms/master
      Copy to Clipboard Toggle word wrap

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

      输入示例

      $ rosa describe external-auth-provider \
          -c <cluster_name> --name <name_of_external_authentication>
      Copy to Clipboard Toggle word wrap

      输出示例

      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
      Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat