3.2. 使用 OIDC 身份验证供应商配置 Keycloak


Red Hat Developer Hub 包括一个 OIDC 身份验证供应商,可以使用 Keycloak 验证用户。

重要

您在 Keycloak 中创建的用户必须在 Developer Hub 目录中可用。

流程

  1. 在 Keycloak 中,创建一个新域,如 RHDH
  2. 添加新用户。

    用户名
    用户的用户名,例如 rhdhuser
    电子邮件
    用户的电子邮件地址。
    用户的名字。
    用户的姓氏。
    已验证电子邮件
    切换到 上的
  3. Create
  4. 导航到 Credentials 选项卡。
  5. 单击 设置密码
  6. 输入用户帐户的 Password,并将 Temporary 切换为 Off
  7. 创建一个新的客户端 ID,如 RHDH

    客户端身份验证
    切换到 上的
    有效的重定向 URI
    设置为 OIDC 处理程序 URL,例如 https://<RHDH_URL>/api/auth/oidc/handler/frame
  8. 导航到 Credentials 选项卡,再复制 Client secret
  9. 在下一步中保存客户端 ID 和客户端 Secret。
  10. 在 Developer Hub 中,在 Developer Hub secret 中添加 Keycloak 凭证。

    1. 编辑 Developer Hub secret,如 secrets-rhdh。
    2. 添加以下键/值对:

      AUTH_KEYCLOAK_CLIENT_ID
      输入您在 Keycloak 中生成的客户端 ID,如 RHDH
      AUTH_KEYCLOAK_CLIENT_SECRET
      输入您在 Keycloak 中生成的 Client Secret。
  11. 在 Developer Hub 自定义配置中设置 OIDC 身份验证供应商。

    1. 编辑自定义 Developer Hub ConfigMap,如 app-config-rhdh
    2. app-config-rhdh.yaml 内容中,在 root auth 配置下添加 oidc 供应商配置,并为 sign-in 启用 oidc 供应商:

      app-config-rhdh.yaml fragment

      auth:
        environment: production
        providers:
          oidc:
            production:
            clientId: ${AUTH_KEYCLOAK_CLIENT_ID}
            clientSecret: ${AUTH_KEYCLOAK_CLIENT_SECRET}
            metadataUrl: ${KEYCLOAK_BASE_URL}/auth/realms/${KEYCLOAK_REALM}
            prompt: ${KEYCLOAK_PROMPT} # recommended to use auto
             Uncomment for additional configuration options #callbackUrl: ${KEYCLOAK_CALLBACK_URL} #tokenEndpointAuthMethod: ${KEYCLOAK_TOKEN_ENDPOINT_METHOD} #tokenSignedResponseAlg: ${KEYCLOAK_SIGNED_RESPONSE_ALG} #scope: ${KEYCLOAK_SCOPE}  If you are using the keycloak-backend plugin, use the preferredUsernameMatchingUserEntityName resolver to avoid a login error.
            signIn:
              resolvers:
                - resolver: preferredUsernameMatchingUserEntityName
      signInPage: oidc

验证

  1. 重启 backstage-developer-hub 应用程序以应用更改。
  2. 您的 Developer Hub 注册页面 使用 OIDC 显示 Sign in
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.