3.2. 使用 OIDC 身份验证供应商配置 Keycloak
Red Hat Developer Hub 包括一个 OIDC 身份验证供应商,可以使用 Keycloak 验证用户。
重要
您在 Keycloak 中创建的用户必须在 Developer Hub 目录中可用。
流程
-
在 Keycloak 中,创建一个新域,如
RHDH
。 添加新用户。
- 用户名
-
用户的用户名,例如
rhdhuser
- 电子邮件
- 用户的电子邮件地址。
- 名
- 用户的名字。
- 姓
- 用户的姓氏。
- 已验证电子邮件
- 切换到 上的 。
- 点 Create。
- 导航到 Credentials 选项卡。
- 单击 设置密码。
- 输入用户帐户的 Password,并将 Temporary 切换为 Off。
创建一个新的客户端 ID,如
RHDH
。- 客户端身份验证
- 切换到 上的 。
- 有效的重定向 URI
-
设置为 OIDC 处理程序 URL,例如
https://<RHDH_URL>/api/auth/oidc/handler/frame
。
- 导航到 Credentials 选项卡,再复制 Client secret。
- 在下一步中保存客户端 ID 和客户端 Secret。
在 Developer Hub 中,在 Developer Hub secret 中添加 Keycloak 凭证。
- 编辑 Developer Hub secret,如 secrets-rhdh。
添加以下键/值对:
AUTH_KEYCLOAK_CLIENT_ID
-
输入您在 Keycloak 中生成的客户端 ID,如
RHDH
。 AUTH_KEYCLOAK_CLIENT_SECRET
- 输入您在 Keycloak 中生成的 Client Secret。
在 Developer Hub 自定义配置中设置 OIDC 身份验证供应商。
-
编辑自定义 Developer Hub ConfigMap,如
app-config-rhdh
。 在
app-config-rhdh.yaml
内容中,在 rootauth
配置下添加oidc
供应商配置,并为 sign-in 启用oidc
供应商:app-config-rhdh.yaml
fragmentauth: 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
-
编辑自定义 Developer Hub ConfigMap,如
验证
-
重启
backstage-developer-hub
应用程序以应用更改。 - 您的 Developer Hub 注册页面 使用 OIDC 显示 Sign in。