OpenShift Container Platform 主节点包含内置的 OAuth 服务器。开发人员和管理员获取 OAuth 访问令牌以向 API 进行身份验证。
作为管理员,您可以在安装集群后配置 OAuth 以指定身份提供程序。
默认情况下,集群中仅存在 kubeadmin
用户。要指定身份提供程序,必须创建一个描述该身份提供程序的自定义资源 (CR) 并将其添加到集群。
OpenShift Container Platform 用户名包含 |
您可以配置以下类型身份提供程序
身份提供程序 | 描述 |
---|---|
配置 |
|
配置 |
|
配置 |
|
为用户配置 |
|
配置 |
|
配置 |
|
配置 |
|
使用 Google 的 OpenID Connect 集成 配置 |
|
配置 |
定义身份提供程序后,您可以 使用 RBAC 定义和应用权限。
定义身份提供程序并创建新的 cluster-admin
用户后,您可以删除 kubeadmin
以提高集群安全性。
如果在另一个用户成为 |
您必须已配置至少一个身份提供程序。
您必须已将 cluster-admin
角色添加到用户。
您必须以管理员身份登录。
删除 kubeadmin
密钥
$ oc delete secrets kubeadmin -n kube-system
以下参数对所有身份提供程序都适用
参数 | 描述 |
---|---|
|
提供程序名称作为前缀添加到提供程序用户名,以形成身份名称。 |
|
定义登录时如何将新身份映射到用户。输入以下值之一:
|
添加或更改身份提供程序时,您可以通过将mappingMethod 参数设置为add 来将新提供程序中的身份映射到现有用户。 |
以下自定义资源 (CR) 显示了用于配置身份提供程序的参数和默认值。此示例使用 htpasswd 身份提供程序。
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: my_identity_provider (1)
mappingMethod: claim (2)
type: HTPasswd
htpasswd:
fileData:
name: htpass-secret (3)
1 | 此提供程序名称作为前缀添加到提供程序用户名,以形成身份名称。 |
2 | 控制如何在此提供程序的身份与User 对象之间建立映射。 |
3 | 包含使用htpasswd 生成的现有密钥文件。 |
通常,身份会在登录期间自动映射到用户。lookup
映射方法会禁用此自动映射,这需要您手动预配用户。如果您使用的是lookup
映射方法,请在配置身份提供程序后,对每个用户执行以下步骤。
您已安装 OpenShift CLI (oc
)。
创建 OpenShift Container Platform 用户
$ oc create user <username>
创建 OpenShift Container Platform 身份
$ oc create identity <identity_provider>:<identity_provider_user_id>
其中<identity_provider_user_id>
是在身份提供程序中唯一表示用户的名称。
为已创建的用户和身份创建用户身份映射
$ oc create useridentitymapping <identity_provider>:<identity_provider_user_id> <username>