第 3 章 托管 control plane 的身份验证和授权
OpenShift Container Platform control plane 包含内置的 OAuth 服务器。您可以获取 OAuth 访问令牌来向 OpenShift Container Platform API 进行身份验证。创建托管集群后,您可以通过指定身份提供程序来配置 OAuth。
3.1. 使用 CLI 为托管集群配置 OAuth 服务器 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以使用 OpenID Connect 身份提供程序 (oidc
) 为您的托管集群配置内部 OAuth 服务器。
您可以为以下支持的身份提供程序配置 OAuth:
-
oidc
-
htpasswd
-
keystone
-
ldap
-
basic-authentication
-
request-header
-
github
-
gitlab
-
google
在 OAuth 配置中添加任何身份提供程序会删除默认的 kubeadmin
用户提供程序。
注意
在配置身份提供程序时,您必须事先在托管集群中配置至少一个 NodePool
副本。DNS 解析的流量通过 worker 节点发送。您不需要提前为 htpasswd
和 request-header
身份提供程序配置 NodePool
副本。
先决条件
- 已创建托管集群。
流程
运行以下命令,在托管集群上编辑
HostedCluster
自定义资源(CR):oc edit <hosted_cluster_name> -n <hosted_cluster_namespace>
$ oc edit <hosted_cluster_name> -n <hosted_cluster_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下示例在
HostedCluster
CR 中添加 OAuth 配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定托管的集群名称。
- 2
- 指定托管集群的命名空间。
- 3
- 此提供程序名称作为前缀放在身份声明值前,以此组成身份名称。提供程序名称也用于构建重定向 URL。
- 4
- 定义用作电子邮件地址的属性列表。
- 5
- 定义用作显示名称的属性列表。
- 6
- 定义用作首选用户名的属性列表。
- 7
- 定义在 OpenID 提供程序中注册的客户端的 ID。您必须允许客户端重定向到
https://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>
URL。 - 8
- 定义在 OpenID 供应商中注册的客户端的机密。
- 9
- OpenID 规范中描述的颁发者标识符。您必须使用没有查询或片段组件的
https
。 - 10
- 定义一个映射方法,用于控制如何在此供应商和
User
对象的身份之间建立映射。
- 保存文件以使改变生效。