OpenShift 4 之增加 HTPasswd 方式的身份认证

OpenShift的认证机制

OpenShift是通过OAuth实现用户身份认证的。通过以下Identity Provider,OpenShift 4支持多种用户身份认证方式:

  • HTPasswd(HTPasswd是一种最简单的用户身份存储认证机制,它直接将用户名和经过加密的密码直接放在文本文件中)。
  • Keystone
  • LDAP
  • Basic authentication
  • Request header
  • GitHub or GitHub Enterprise
  • GitLab
  • Google
  • OpenID Connect

增加HTPasswd Identity Provider

在安装好OpenShift 4后我们可以用“管理员”用户登录,然后进入控制台。

如果OpenShift已经有还没有配置HTPasswd方式的Identity Provider,可以使用以下方式添加。

  1. 创建一个定义HTPasswd Identity Provider的Custom Resource文件。其中HTPasswd Identity Provider的名称为“my_htpasswd_provider”,OAuth用名为“htpass-secret”的Secret验证用户名和密码(在后面章节中将创建“users.htpasswd”文件,然后再加载到htpass-secret中)。
$ cat htpassed-cr.yaml
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
  - name: my_htpasswd_provider 
    challenge: true 
    login: true 
    mappingMethod: claim 
    type: HTPasswd
    htpasswd:
      fileData:
        name: htpass-secret 
  1. 根据htpassed-cr.yaml文件创建名为my_htpasswd_provider的HTPasswd Identity Provider。
oc apply -f htpassed-cr.yaml

在HTPasswd机制文件中创建用户

  1. 安装httpd-tools
$ yum install httpd-tools
  1. 将用户admin/密码admin写入“users.htpasswd”文件。
$ htpasswd -c -B -b users.htpasswd admin admin
  1. 可以查看users.htpasswd内容,admin的密码已经被加密。
$ cat users.htpasswd

加载users.htpasswd数据到Secret对象

OpenShift是使用Secret对象保存加密数据的,因此我们需要把users.htpasswd文件中的用户和密码加载到Secret对象中,这样my_htpasswd_provider就可以使用它们进行身份认证了。

  1. 将users.htpasswd加载到名为htpass-secret的secret对象。
$ oc create secret generic htpass-secret --from-file=htpasswd=users.htpasswd -n openshift-config
  1. 还可登录到OpenShift Console,进入openshift-config项目,然后找到htpass-secret,可以查看其加载的用户信息。

验证

最后用admin/admin登录验证即可。

oc login -u admin -p admin

其他参考

如果OpenShift已经有HTPasswd Identity Provider和Secret了,可以参考《OpenShift 4 之增加用户》追加新用户。

发布了54 篇原创文章 · 获赞 0 · 访问量 1177

猜你喜欢

转载自blog.csdn.net/weixin_43902588/article/details/103442125