第 2 章 使用红帽构建 Keycloak (RHBK)进行身份验证


注意

RHSSO 7.6 作为身份验证提供程序已弃用。您可以继续使用 RHSSO,直到其维护支持结束为止。如需更多信息,请参阅 RHSSO 生命周期日期。作为替代方案,请考虑迁移到红帽构建的 Keycloak (RHBK)。

使用红帽构建的 Keycloak (RHBK)验证用户身份:

要使用 Red Hat Build of Keycloak (RHBK)验证用户,请在 Red Hat Developer Hub 中启用 OpenID Connect (OIDC)身份验证供应商。

先决条件

流程

  1. 要允许 Developer Hub 使用 RHBK 进行身份验证,请完成 RHBK 中的步骤,创建 realm 和用户并保护第一个应用程序:

    1. 使用现有域,或使用不同的名称(如 < my_ realm > )创建一个 域。为下一步保存值:

      • RHBK 域基本 URL,例如: < your_rhbk_URL> /realms/ <your_realm>
    2. 要在 RHBK 中注册您的 Developer Hub,请在创建域中注册 第一个应用程序,使用以下内容保护第一个应用程序

      1. 客户端 ID :不同的客户端 ID,如 < RHDH>
      2. 有效的重定向 URI :设置为 OIDC 处理程序 URL: https:// <RHDH_URL&gt; /api/auth/oidc/handler/frame.
      3. 导航到 Credentials 选项卡,再复制 Client secret
      4. 保存下一步的值:

        • 客户端 ID
        • Client Secret
    3. 要准备验证步骤,请在同一域中获取现有用户 或创建用户的凭证 信息。保存验证步骤的用户凭证信息。
  2. 要将 RHSSO 凭证添加到 Developer Hub 中,请将以下键/值对添加到 Developer Hub secret 中:

    AUTH_OIDC_CLIENT_ID
    输入保存 的客户端 ID
    AUTH_OIDC_CLIENT_SECRET
    输入保存 的客户端 Secret
    AUTH_OIDC_METADATA_URL
    输入保存的 RHBK 域基础 URL
  3. 要在 Developer Hub 自定义配置中设置 RHBK 身份验证供应商,请编辑自定义 Developer Hub ConfigMap,如 app-config-rhdh,并将以下行添加到 app-config.yaml 内容:

    app-config.yaml 片段带有强制字段,以启用 RHBK 身份验证

    auth:
      environment: production
      providers:
        oidc:
          production:
            metadataUrl: ${AUTH_OIDC_METADATA_URL}
            clientId: ${AUTH_OIDC_CLIENT_ID}
            clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
            prompt: auto
    signInPage: oidc
    Copy to Clipboard Toggle word wrap

    环境:production
    将环境标记为 production,以在 Developer Hub 主页中隐藏 Guest 登录。
    metadataUrl, clientId, clientSecret
    使用您的 secret 配置 OIDC 供应商。
    sigInPage: oidc
    将 OIDC 供应商作为默认登录供应商启用。
    提示: auto
    要允许身份提供程序自动决定是否提示输入凭证,或者在存在活跃的 RHSSO 会话时绕过登录重定向。
    注意

    如果没有设置 prompt: auto,则身份提供程序默认为 prompt: none,这假设您已经登录,并在没有活跃会话的情况下拒绝登录请求。

    callbackUrl

    RHBK 回调 URL。

带有可选 callbackURL 字段的 app-config.yaml 片段

auth:
  providers:
    oidc:
      production:
        callbackUrl: ${AUTH_OIDC_CALLBACK_URL}
Copy to Clipboard Toggle word wrap

tokenEndpointAuthMethod

令牌端点身份验证方法。

带有可选 tokenEndpointAuthMethod 字段的 app-config.yaml 片段

auth:
  providers:
    oidc:
      production:
        tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_METHOD}
Copy to Clipboard Toggle word wrap

tokenSignedResponseAlg

令牌签名的响应算法。

带有可选 tokenSignedResponseAlg 字段的 app-config.yaml 片段

auth:
  providers:
    oidc:
      production:
        tokenSignedResponseAlg: ${AUTH_OIDC_SIGNED_RESPONSE_ALG}
Copy to Clipboard Toggle word wrap

scope

RHBK 范围.

带有可选 scope 字段的 app-config.yaml 片段

auth:
  providers:
    oidc:
      production:
        scope: ${AUTH_OIDC_SCOPE}
Copy to Clipboard Toggle word wrap

signIn.resolvers

声明性解析器覆盖默认解析器: emailLocalPartMatchingUserEntityName。身份验证提供程序尝试每个登录解析器,直到成功为止,如果不成功,则失败。

带有可选 callbackURL 字段的 app-config.yaml 片段

auth:
  providers:
    oidc:
      production:
        signIn:
          resolvers:
            - resolver: preferredUsernameMatchingUserEntityName
            - resolver: emailMatchingUserEntityProfileEmail
            - resolver: emailLocalPartMatchingUserEntityName
Copy to Clipboard Toggle word wrap

auth.backstageTokenExpiration

要从默认值一小时修改 Developer Hub 令牌过期,请注意,这指的是短期加密令牌的有效性,而不是会话持续时间。expiration 值必须在 10 分钟到 24 小时之间设置。

带有可选 auth.backstageTokenExpiration 字段的 app-config.yaml 片段

auth:
  backstageTokenExpiration: { minutes: <user_defined_value> }
Copy to Clipboard Toggle word wrap

安全考虑

如果因为频繁刷新令牌请求而发出多个有效的刷新令牌,旧的令牌将保持有效,直到它们过期。要增强安全性并防止旧令牌造成潜在的滥用,请在 RHBK 域中启用刷新令牌轮转策略。

  1. 在导航菜单的 Configure 部分中,单击 Realm Settings
  2. Realm Settings 页面,单击 Tokens 选项卡。
  3. Tokens 选项卡的 Refresh tokens 部分中,将 Revoke Refresh Token 切换到 Enabled 位置。

验证

  1. 进入 Developer Hub 登录页面。
  2. 您的 Developer Hub 签名页面显示 使用 OIDC 的 Sign in,并且 guest 用户登录被禁用。
  3. 使用保存 的用户名和密码 值使用 OIDC 登录。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat