This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第 3 章 使用 GitHub 进行身份验证
使用 GitHub 或 GitHub Enterprise 验证用户:
3.1. 启用使用 GitHub 进行身份验证 复制链接链接已复制到粘贴板!
要使用 GitHub 验证用户,请在 Red Hat Developer Hub 中启用 GitHub 身份验证供应商。
先决条件
- 您 添加了自定义 Developer Hub 应用程序配置,并有足够的权限来修改它。
- 在 GitHub 中有足够的权限来创建和管理 GitHub 应用程序。
流程
要允许 Developer Hub 使用 GitHub 进行身份验证,请创建一个 GitHub 应用程序。选择 GitHub 应用程序而不是使用精细的权限,可以更好地控制应用程序可访问的存储库,并使用简短令牌。
使用以下配置注册 GitHub 应用程序:
- GitHub App name :输入用于标识 GitHub 应用程序的唯一名称,如 < Red Hat Developer Hub>- <GUID>。
-
主页 URL: 您的 Developer Hub URL:
https:// <my_developer_hub_url>. -
授权回调 URL :您的 Developer Hub 身份验证后端 URL:
https:// <my_developer_hub_url> /api/auth/github/handler/frame. -
Webhook URL: 您的 Developer Hub URL:
https:// <my_developer_hub_url>. - Webhook secret :提供强大的 secret。
存储库权限 :
启用对以下的只读访问权限:- 管理
- 提交状态
- 内容
- Dependabot 警报
- 部署
- 拉取请求
Webhook
提示如果您计划使用 GitHub API 进行更改,请确保启用
Read 和 write权限,而不是只读。
- 根据您的需要切换其他权限。
机构权限 :
-
启用对 成员的只读访问权限。
-
-
对于 何处可以安装此 GitHub 应用程序?,请选择 only
on this account。
-
在 General
Clients secrets 部分中,点 Generate a new client secret。 -
在 General
Private key 部分中,点 Generate a private key。 - 在 Install App 选项卡中,选择要安装 GitHub App 的帐户。
为下一步保存以下值:
- App ID
- 客户端 ID
- 客户端 secret
- 私钥
- Webhook secret
要将 GitHub 凭证添加到 Developer Hub 中,请将以下键/值对添加到 Developer Hub secret 中:
AUTH_GITHUB_APP_ID- 输入保存 的应用程序 ID。
AUTH_GITHUB_CLIENT_ID- 输入保存 的客户端 ID。
GITHUB_ORGANIZATION- 输入您的 GitHub 机构名称,如 ' <your_github_organization_name>'。
GITHUB_ORG_URL-
输入
$GITHUB_HOST_DOMAIN/$GITHUB_ORGANIZATION。 GITHUB_CLIENT_SECRET- 输入保存 的客户端 Secret。
GITHUB_PRIVATE_KEY_FILE- 输入保存 的私钥。
GITHUB_WEBHOOK_URL-
输入您的 Developer Hub URL:
https:// <my_developer_hub_url>。 GITHUB_WEBHOOK_SECRET- 输入保存的 Webhook secret。
要设置 GitHub 身份验证供应商并在 Developer Hub 自定义配置中启用与 GitHub API 集成,请编辑自定义 Developer Hub 配置映射,如
my-rhdh-app-config,并将以下行添加到app-config.yaml文件内容中:app-config-rhdh.yaml片段带有强制字段,以启用使用 GitHub 进行身份验证Copy to Clipboard Copied! Toggle word wrap Toggle overflow 环境:production-
将环境标记为
production,以在 Developer Hub 主页中隐藏 Guest 登录。 clientId,clientSecret,host,appId,webhookUrl,webhookSecret,privateKey- 使用您在 GitHub 中创建并配置了 OpenShift 作为 secret 的 Developer Hub 应用程序信息。
sigInPage: github- 将 GitHub 提供程序启用为默认登录提供程序。
可选: 考虑添加以下可选字段:
dangerouslyAllowSignInWithoutUserInCatalog: true要启用身份验证,而无需在 Developer Hub 软件目录中置备用户。
警告使用
dangerouslyAllowSignInWithoutUserInCatalog探索 Developer Hub 功能,但不要在生产环境中使用它。带有可选字段的
app-config-rhdh.yaml片段来允许软件目录中不存在验证用户Copy to Clipboard Copied! Toggle word wrap Toggle overflow callbackUrlGitHub 在启动 OAuth 流时使用的回调 URL,例如: < your_intermediate_service_url/handler >。当 Developer Hub 不是直接接收器时定义它,如当您为多个 Developer Hub 实例使用一个 OAuth 应用程序时。
带有可选
enterpriseInstanceUrl字段的app-config.yaml文件片段auth: providers: github: production: callbackUrl: <your_intermediate_service_url/handler>auth: providers: github: production: callbackUrl: <your_intermediate_service_url/handler>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
提示要启用与不同身份验证供应商的 GitHub 集成,请完成以下配置:
-
将 GitHub 提供程序添加到现有
auth部分。 -
保留您的身份验证提供程序配置中
signInPage部分。
app-config.yaml文件片段与强制字段启用 GitHub 集成并使用不同的身份验证供应商Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 进入 Developer Hub 登录页面。
- 您的 Developer Hub 登录页面显示 使用 GitHub 的 Sign in,并且 Guest 用户登录被禁用。
- 使用 GitHub 登录。