使用 OIDC 身份验证提供程序对Jazz 授权服务器进行身份验证

如果选择使用OpenIDConnect (OIDC) 身份验证提供程序进行Jazz® 授权服务器(JAS) 身份验证,请完成以下步骤。 Jazz 安全架构的单点登录将身份验证委托给一个单独的 JAS,由其管理 OIDC 提供商的角色。 您可以配置LibertyOIDC 提供商,通过使用Liberty 的社交登录功能,将用户身份验证委托给标准企业 OIDC 提供商。

开始之前

  1. 在 OIDC 身份验证提供程序中将 JAS 注册为客户端。 有关详细信息,请参阅将社交登录配置为 OpenID Connect 客户端。 按以下格式提供重定向 URI。
    https://<jas-url>/ibm/api/social-login/redirect/<oidc-login-id>
    其中:
    jas-url
    创建Engineering Lifecycle Management实例时配置的主机名。
    oidc-login-id
    在 "OIDC_CONFIG配置映射文件的 "oidcLogin字段中使用的 ID。
  2. 在 OIDC 身份验证提供程序中创建应用程序后,收集 "clientId和 "clientSecret字段信息。 这些信息用于在 "configmaps目录下创建 "OIDC_CONFIG文件。

要使用 OIDC 配置创建配置地图 elm-auth-type-config ,请使用以下方法之一

Red Hat OpenShift Container Platform 网络控制台方法

过程

  • 在网络控制台中,单击项目 ,打开要创建 Engineering Lifecycle Management 实例秘密的项目。
  • 单击工作负载 > 秘密
  • "秘密"页面,从创建列表中选择 "密钥/值秘密"。
    此时将打开 " 创建密钥/值密文 "页面。
  • 密文名称字段中输入 "elm-tls-certs-secret
    重要:必须输入 "elm-tls-certs-secret作为秘密名称,才能创建Engineering Lifecycle Management实例。
  • 字段中输入 "oidc-ssl-certificate
  • 单击浏览并选择 OIDC 服务器的 SSL 证书。
  • 单击 "创建 "保存秘密 "elm-tls-certs-secret
    秘密 "elm-tls-certs-secret已创建并列"秘密 "页面上。
    重要信息: 在创建秘密 elm-tls-certs-secret 之前,您必须在 Red Hat OpenShift 中创建秘密,然后再创建 Engineering Lifecycle Management 实例中创建秘密。 如果未在群集中设置或创建错误,Engineering Lifecycle Management实例创建可能会失败。

Red Hat OpenShift CLI 方法

过程

  • 登录 Red Hat OpenShift 命令行。
    1. 运行以下命令登录群集。
      oc create --filename=<folder-path>/<oidc-file-name>
    2. 运行以下命令设置项目区域。
      oc create --filename=/usr/example/elm-saml-idp-metadata.yaml
    有关 OIDC 的更多信息,请参阅 elm-tls-certs-secret OIDC 的完整填充示例 YAML
  • 在 "configmaps目录下创建 "OIDC_CONFIG文件。 以下代码块提供了一个 OIDC 身份验证提供程序配置示例。 您必须根据 OIDC 身份验证提供程序配置替换属性值。 有关可配置属性的更多信息,请参阅 OIDC Social Login ( oidcLogin )。
    <oidcLogin id="OIDCOCP" clientId="${com.ibm.team.oidc.clientid}" displayName="Liberty OIDC"
    	  clientSecret="${com.ibm.team.oidc.clientsecret}"
    	  <!-- clientId and clientSecret field inputs are mapped from ELM instance secret elm-auth-secret. -->
    	  inboundPropagation="required"
    	  authorizationEndpoint="https://example.com:9898/oidc/endpoint/OP/authorize"
    	  tokenEndpoint="https://example.com:9898/oidc/endpoint/OP/token"
    	  jwksUri="https://example.com:9898/oidc/endpoint/OP/jwk"
    	  issuer="https://example.com:9898/oidc/endpoint/OP"
    	  scope="openid profile email general"
    	  userNameAttribute="sub"
    	  signatureAlgorithm="RS256"
    	  authFilterRef="OCPAuthFilter"
    	  mapToUserRegistry="true" >
    </oidcLogin>
    
    <authFilter id="OCPAuthFilter">
    	<requestUrl id="OCPRequestUrl" urlPattern="/authorize|/personalTokenManagement|/usersTokenManagement" matchType="contains" />
    	<userAgent id="OCPUserAgent" agent="Mozilla|Opera|app-password-enabled" matchType="contains"/>
    </authFilter>
    重要:字段 "clientId和 "clientSecret未填入 "OIDC_CONFIG文件。 它们由Engineering Lifecycle Management实例秘密 "elm-auth-secret引用。 更多信息,请参阅创建 Engineering Lifecycle Management 实例秘密
  • 运行以下命令在群集中创建配置映射 "elm-auth-type-config。 更多信息,请参阅从文件创建 ConfigMap
    oc create configmap elm-auth-type-config --from-file=configmaps/
    创建配置映射 "elm-auth-type-config。 配置地图中提供的信息用于 JAS 配置。 在创建Engineering Lifecycle Management实例时,将验证配置映射 "elm-auth-type-config和所提供输入的可用性。 如果验证失败,则无法创建Engineering Lifecycle Management实例,并显示错误消息。

为 SSL 证书创建秘密 "elm-tls-certs-secret

  • 下载 OIDC 身份验证提供商的 SSL 证书。.
    注意:OIDC 服务器的 SSL 证书必须是Base-64 X.509格式。

Kubernetes CLI

过程

使用以下命令为 OIDC 验证提供程序创建密文
kubectl create --filename=<folder-path>/<secret-file-name>
kubectl create --filename=/usr/example/elm-tls-certs-secret.yaml
有关 OIDC 的更多信息,请参阅 elm-tls-certs-secret OIDC 的完整填充示例 YAML