第 3 章 配置额外的 OpenID Connect 供应商
3.1. 将 Google 配置为 Trusted Artifact Signer 的 OpenID Connect 供应商
您可以将 Google OAuth 2.0 用作 Red Hat Trusted Artifact Signer (RHTAS)服务的 OpenID Connect (OIDC)供应商。您可以决定在RHAS 部署期间或稍后配置 Google OAuth。
您可以在同一配置中定义多个不同的 OIDC 供应商。
先决条件
- Red Hat OpenShift Container Platform 版本 4.13 或更高版本。
-
使用
cluster-admin
角色访问 OpenShift Web 控制台。 -
安装了
oc
、podman
二进制文件的工作站。 在 Google Cloud Console 中,使用以下设置创建一个 OAuth 客户端 ID:
- 将应用程序类型设置为 "Web Application"。
- 授权重定向 URI 必须包含: http://localhost/auth/callback。
流程
在工作站上打开一个终端,并登录到 OpenShift:
语法
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
示例
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注意您可以从 OpenShift Web 控制台在命令行中查找您的登录令牌和 URL。登录 OpenShift Web 控制台。点您的用户名,然后点 Copy login 命令。如果被要求,请再次提供您的用户名和密码,然后单击 Display Token 查看命令。
更新 RHTAS 配置。
打开以编辑
Securesign
资源:语法
oc edit Securesign NAME -n NAMESPACE
Example
$ oc edit Securesign securesign-sample -n trusted-artifact-signer
注意您必须使用为 RHTAS 安装创建的项目名称作为命名空间。
在
OIDCIssuers
部分下,使用 Google 客户端标识符、签发者的 URL 添加新子,并将Type
值设置为email
:语法
... OIDCIssuers: - Issuer: "https://accounts.google.com" IssuerURL: "https://accounts.google.com" ClientID: "CLIENT_ID" Type: email ...
将 Google 客户端标识符添加到
ClientID
字段。- 保存更改,退出编辑器。几秒钟后,操作员会自动重新配置 RHTAS 软件堆栈。
更改 OIDC 签发者和客户端 id 环境变量以使用 Google:
示例
$ export OIDC_ISSUER_URL=https://accounts.google.com $ export COSIGN_OIDC_CLIENT_ID="314919563931-35zke44ouf2oiztjg7v8o8c2ge9usnd1.apps.googleexample.com"
将您的 secret 从 Google Console 复制并粘贴到纯文本文件中:
语法
echo SECRET > my-google-client-secret
如果您已运行 RHTAS 服务,您可以通过签署测试容器镜像来验证更新的配置。
创建一个空容器镜像:
Example
$ echo "FROM scratch" > ./tmp.Dockerfile $ podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
将空容器镜像推送到
ttl.sh
临时 registry:Example
$ podman push ttl.sh/rhtas/test-image:1h
删除临时 Docker 文件:
Example
$ rm ./tmp.Dockerfile
为容器镜像签名:
语法
cosign sign -y --oidc-client-secret-file=SECRET_FILE IMAGE_NAME:TAG
Example
$ cosign sign -y --oidc-client-secret-file=my-google-client-secret ttl.sh/rhtas/test-image:1h
此时会打开一个 Web 浏览器,允许您使用电子邮件地址为容器镜像签名。
其他资源