使用HTPasswd身份提供程序管理OpenShift / OKD用户


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


有许多文章讨论OpenShift容器平台。本教程描述了如何将HTPasswd配置为OCP / OKD群集的身份提供者。您可以将OpenShift OAuth服务器配置为使用以下身份提供程序:

HTPasswd根据存储使用htpasswd生成的凭据的机密验证用户名和密码。
LDAP配置LDAP身份提供程序以使用简单绑定身份验证针对LDAPv3服务器验证用户名和密码。
梯形失真启用与OpenStack Keystone v3服务器的共享身份验证。
OpenID连接使用授权代码流与OpenID Connect ID提供程序集成。
的GitHub 配置您的GitHub身份提供商,以针对GitHub或GitHub Enterprises OAuth身份验证服务器验证您的用户名和密码。

HTPasswd OAuth提供商

该提供程序根据包含用户名和密码的机密验证用户。 htpasswd 来自Apache HTTP Server项目的命令。集群管理员可以更改机密中的数据。即,更新用于身份验证的用户名和密码。

使用HTPasswd身份提供程序管理群集用户仅适用于用户数量少的开发环境。在具有成百上千个用户的大多数生产环境中,与组织的身份管理系统集成的更强大的身份提供程序至关重要。

使用HTPasswd身份提供程序管理OpenShift / OKD用户

要将另一个身份提供程序添加到OpenShift / OKD,您需要以集群管理员的身份访问OpenShift集群。如果您使用的是新安装的OpenShift集群,则有两种方法来验证API请求。

  • kubeadmin 授予OAuth访问令牌的虚拟用户和密码。
  • 使用方法 kubeconfig 嵌入未到期的X.509客户端证书的文件。

在本指南中,我们将使用kubeconfig身份验证方案将HTPasswd提供程序添加到OpenShift中。的 OC 此操作需要客户端。根据kubeconfig文件的位置,您可能需要导出它。

export KUBECONFIG=/root/auth/kubeconfig

检查群集中的可用节点,以确保它们正在工作。

$ oc get nodes

或者, --config oc命令选项:

$ oc --config /path/to/kubeconfig get nodes

身份验证 库贝姆 对于虚拟用户,运行类似于以下命令:

$ oc login -u kubeadmin -p KubeadmUserPassword

HTPasswd身份提供程序配置

首先,生成保存用户凭据所需的htpasswd文件。需要提供一个提供htpasswd命令的软件包。

--- CentOS / RHEL / Fedora ---
$ sudo yum -y install httpd-tools

--- Ubuntu / Debian ---
$ sudo apt install apache2-utils

--- Arch Linux / Manjaro
$  sudo pacman -S apache

创建一个HTPasswd文件

创建或更新新的htpasswd文件。

$ htpasswd -c -B -b ocp_users.htpasswd user1 password1

要添加或更新凭据,请使用:

$ htpasswd -Bb ocp_users.htpasswd user2 password2
$ htpasswd -Bb ocp_users.htpasswd user3 password3

验证文件已创建。

$ cat ocp_users.htpasswd 
user1:$2y$05$VNgzIy33djzSlOLkHqiR6.CG9oQaPM4CZz4q86Z4s4m23gtllV7I.
user2:$2y$05$0grDO248lSANnOWOlqY2BO/B6/CWm6yJGSYBfZgDnJFBsVrBIIaTW
user3:$2y$05$pqp6mo9oGk7E2AIfawDKg.ntUIUjIMRidYvR017mRxdhs5.ctWED2

要从htpasswd删除用户,请执行以下命令:

$ htpasswd -D ocp_users.htpasswd user3
Deleting password for user user3

创建HTPasswd秘密

在使用HTPasswd身份提供者之前,您必须定义一个包含HTPasswd用户文件的机密。

$ oc create secret generic htpass-secret 
  --from-file=htpasswd=./ocp_users.htpasswd 
  -n openshift-config

配置OAuth自定义资源

要使用HTPasswd身份提供者,请编辑OAuth自定义资源并将条目更改为 .spec.identity 提供者数组。让我们创建一个新文件。

$ vim htpasswd-oauth.yaml

添加并编辑以下内容:

apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: Local Password
    mappingMethod: claim 
    type: HTPasswd
    htpasswd:
      fileData:
        name: htpass-secret 

其中:

  • ocp-htpasswd提供程序 提供者的名称。该名称在提供者用户名之前,以形成一个身份名称。
  • htpass秘密 现有机密的名称,其中包含使用htpasswd生成的文件。

应用定义的CR。

oc apply -f htpasswd-oauth.yaml

您现在可以选择 “本地密码で在OpenShift登录屏幕上,使用添加的凭据向HTPasswd提供程序进行身份验证。

您也可以使用CLI登录到集群。 OC 从添加的身份提供者作为用户命令。

$ oc login -u 

出现提示时输入密码。

使用OpenShift更新HTPasswd秘密

每当您在htpasswd文件中添加,更改或删除用户时,还必须更新OpenShift群集中的密码。机密中的所有数据必须经过base64编码。

编码数据的一种方法是 创建OC秘密 将输出YAML发送到标准输出,然后输出 oc更换 用于更新现有机密的命令。

oc create secret generic htpass-secret 
  --from-file htpasswd=./ocp_users.htpasswd 
  --dry-run -o yaml 
  | oc replace -n openshift-config -f -

更新OAuth自定义资源

如果你想 编辑 对于OAuth自定义资源,请使用oc get命令将您现有的OAuth群集资源导出到YAML格式的文件中。

 oc get -o yaml oauth cluster > htpasswd-oauth.yaml

对内置身份提供程序设置进行必要的更改,然后使用oc replace命令应用新的自定义资源。

$ oc apply -f htpasswd-oauth.yaml

向用户分配管理权限

整个集群 集群管理员 角色向用户和组授予群集管理特权。您可以使用以下命令将cluster-admin角色授予标准用户:

oc adm policy add-cluster-role-to-user cluster-admin 

提取秘密数据

您可以提取机密数据并将其保存在可以查看或修改的文件中。使用oc提取进行此操作。

oc extract secret/htpass-secret -n openshift-config --to - > temp-secrets

保持联系以获取更多OpenShift Cluster操作指南。目前确认:

如何使用oc命令查看OpenShift节点日志

如何在OpenShift节点上打开shell提示

防止用户在OpenShift / OKD集群上创建项目

使用Helm图表在Kubernetes / OpenShift上安装Harbor Image Registry

使用运算符在OpenShift上安装Project Quay注册表


从下面的链接下载并以PDF格式支持本文。

theロード下载PDF指南

关门


Sidebar