4.2. 启用 GitLab OAuth 身份验证供应商
Red Hat Developer Hub 包含一个 GitLab 身份验证供应商,可以使用 GitLab OAuth 验证用户。
先决条件
- 已使用自定义配置映射和 secret 配置 Developer Hub。
流程
要允许 Developer Hub 通过 Gitlab 进行身份验证,请在 Gitlab 中创建 OAuth 应用。
进入 GitLab User settings > Applications,然后点击 Add new application 按钮。
- Name
-
输入应用程序名称,如
Developer Hub
。 - 重定向 URI
-
输入 Developer Hub 中设置的后端身份验证 URI,如
http:// <APP_FQDN>/api/auth/gitlab/handler/frame
。由于 GitLab OAuth 的 criuuliarity,请确保 URL 在 'frame' 后没有结尾的/
。 - 范围
从列表中选择以下范围并点 Save application :
read_user
- 通过 /user API 端点授予经过身份验证的用户配置集的只读访问权限,其中包括用户名、公共电子邮件和全名。另外,还授予对 /users 下的只读 API 端点的访问权限。
read_repository
- 通过 /user API 端点授予经过身份验证的用户配置集的只读访问权限,其中包括用户名、公共电子邮件和全名。另外,还授予对 /users 下的只读 API 端点的访问权限。
write_repository
- 使用 Git-over-HTTP (不使用 API),授予对私有项目上的存储库的读取/写入访问权限。
openid
- 授予使用 OpenID Connect 通过 GitLab 进行身份验证的权限。另外,也授予用户配置文件和组成员资格的只读访问权限。
配置集
- 使用 OpenID Connect 授予用户配置集数据的只读访问权限。
email
使用 OpenID Connect 授予用户主电子邮件地址的只读访问权限。
为下一步保存 应用程序 ID 和 Secret。
在 Developer Hub secret 中添加 Gitlab 凭据。
-
编辑 Developer Hub secret,如
secrets-rhdh
。 添加以下键/值对:
AUTH_GITLAB_CLIENT_ID
-
输入您在 GitLab 上生成的应用程序 ID,如
4928c033ab3d592845c044a653bc20583baf84f2e67b954c6fdb32a532ab76c9
。 AUTH_GITLAB_CLIENT_SECRET
-
输入您在 Gitlab 上生成的 Secret,如
gloas-f2c9c350759cc08346fbf94a476ae83c579c76dd629fc5eeef9dc21eedfe0475
。
-
编辑 Developer Hub secret,如
在 Developer Hub 自定义配置中设置 Gitlab 身份验证提供程序。
-
编辑自定义 Developer Hub 配置映射,如
app-config-rhdh
。 在
app-config-rhdh.yaml
内容中,将gitlab
提供程序配置添加到 rootauth
配置下,并为 sign-in 启用gitlab
提供程序:app-config-rhdh.yaml
fragmentauth: environment: production providers: gitlab: production: clientId: ${AUTH_GITLAB_CLIENT_ID} clientSecret: ${AUTH_GITLAB_CLIENT_SECRET} # audience: https://gitlab.company.com 1 # callbackUrl: https://<APP_FQDN>/api/auth/gitlab/handler/frame 2 signInPage: gitlab 3
-
编辑自定义 Developer Hub 配置映射,如
验证
-
backstage-developer-hub
部署使用更新的配置启动 pod。 - 您的 Developer Hub 登录页面显示 使用 GitLab 的 Sign in。