3.4. 将 GitHub 配置为 Trusted Artifact Signer 的 OpenID Connect 供应商
当使用红帽单点登录(SSO)服务作为 Red Hat Trusted Artifact Signer (RHTAS)服务的 OpenID Connect (OIDC)服务时,您可以使用 GitHub OAuth 2.0。此流程指导您将 GitHub OAuth 与 OpenShift 上的现有 Red Hat SSO 部署集成。
您可以在同一配置中定义多个不同的 OIDC 供应商。
先决条件
- 在 Red Hat OpenShift Container Platform 版本 4.13、4.14 或 4.15 上安装 RHTAS。
- 正在运行的 Red Hat SSO 实例。
-
安装了
oc
二进制文件的工作站。 创建 GitHub OAuth 应用,并在注册应用后记录客户端标识符和机密值。
重要在注册新的 GitHub OAuth 应用程序时,您必须指定 Homepage URL 和 Authorization 回调 URL。为这两个字段输入占位符值,例如
https://localhost:8080
。稍后,您将使用这些字段的预期值修改 GitHub OAuth 应用程序。
流程
在工作站上打开一个终端,并登录到 OpenShift:
语法
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
Example
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注意您可以从 OpenShift Web 控制台在命令行中查找您的登录令牌和 URL。登录 OpenShift Web 控制台。点您的用户名,然后点 Copy login 命令。如果被要求,请再次提供您的用户名和密码,然后单击 Display Token 查看命令。
登录到 Red Hat SSO 控制台。
从命令行查找 Red Hat SSO 控制台 URL:
Example
$ oc get routes -n keycloak-system keycloak -o jsonpath='https://{.spec.host}'
- 将 Red Hat SSO 控制台 URL 复制并粘贴到您的 Web 浏览器中。
- 单击 Administration Console。
从命令行检索
admin
密码:Example
$ oc get secret/credential-keycloak -n keycloak-system -o jsonpath='{ .data.ADMIN_PASSWORD }' | base64 -d
复制此命令的输出。
-
在 Web 浏览器中,以
admin
用户身份登录,并将密码粘贴到对应的字段中。点 Sign In 按钮。
- 从导航菜单的下拉菜单中选择您的域。
添加 GitHub 身份提供程序。
- 在导航菜单中点 Identity Providers。
- 在 Add provider… 下拉菜单中选择 GitHub。
- 将 GitHub OAuth 客户端标识符添加到 客户端 ID 字段。
- 将 GitHub OAuth 客户端 secret 添加到 Client Secret 字段中。
- 打开 Trust Email 选项。
- 点 Save 按钮。
将身份提供程序映射程序添加到新创建的身份提供程序。
- 点 Mapper 选项卡。
- 点 Create 按钮。
- 为新映射程序指定 Name。
- 将 Mapper Type 更改为 Hardcoded Attribute。
-
将 User Attribute 字段设置为
emailVerified
。 -
将 User Attribute Value 字段设置为
true
。 - 点 Save 按钮。
-
在 GitHub Identity Provider Settings 页面中,复制 Redirect URI 值,并将它粘贴到 GitHub OAuth 应用 授权回调 URL 字段。另外,将此值粘贴到 Homepage URL 字段中,但删除 URL 字符串的
broker/github/endpoint
部分。 - 单击 Update Application。现在,您可以使用 GitHub 作为 OIDC 供应商来签署 提交和 容器。
- 在签名工件时,会打开网页浏览器并提示您登录到 Red Hat SSO 帐户。点 GitHub 按钮使用您的凭证登录。
- 单击 Authorize 按钮,以启用 GitHub 用户详情,以供 Red Hat SSO 访问。