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

76 篇文章 6 订阅
59 篇文章 1 订阅

OpenShift 4.x HOL教程汇总
说明:本文已经在OpenShift 4.12环境中验证

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的 OAuth。其中HTPasswd Identity Provider的名称为“my_htpasswd_provider”,OAuth用名为“htpass-secret”的Secret验证用户名和密码(在后面章节中将创建“users.htpasswd”文件,然后再加载到htpass-secret中)。
$ cat <<EOF | oc apply -f -
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
EOF

在HTPasswd机制文件中创建用户

  1. 安装httpd-tools
$ yum install httpd-tools
  1. 将用户名和密码写入新创建的“users.htpasswd”文件。
$ htpasswd -c -b users.htpasswd admin admin
$ htpasswd -b users.htpasswd user1 user1
  1. 可以查看users.htpasswd内容。
$ 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 中运行以下 YAML,可创建 admin、user1 - user5 的用户,密码都为 openshift123

apiVersion: v1
kind: Secret
metadata:
  name: htpasswd
  namespace: openshift-config
type: Opaque
data:
  htpasswd: YWRtaW46JGFwcjEkZnltOWQ4aTMkcWhSYjFyVVcvWFlBaTVkUE9MTnhvMAp1c2VyMTokYXByMSQ3bTFvcGs2NCR2SkM3S1g5cXNFYi94NzNDajJ4eEUwCnVzZXIyOiRhcHIxJHZlbzFmdGo0JHlEaG5yU1VFT25mV3FZaTFyL3JLVS8KdXNlcjM6JGFwcjEkdHA1aGM5bnIkSTFOanVLNy54WkR2QkhWVC9xYjhUMAp1c2VyNDokYXByMSR1Ymd3OGVvMyR4NUFRYzJWdFdMVmRHUkNSL0xkNnUxCnVzZXI1OiRhcHIxJHp2bjhnYnBkJE5vZnlGUDNBdmV6Wm0yT0N1LlVwUS8K
---
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
  name: cluster
spec:
  identityProviders:
    - name: htpasswd_provider
      challenge: true
      login: true
      mappingMethod: claim
      type: HTPasswd
      htpasswd:
        fileData:
          name: htpasswd
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: "cluster-admin-admin"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - apiGroup: rbac.authorization.k8s.io
    kind: User
    name: "admin"

其他参考

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenShift是一种基于容器的应用程序平台,它提供了一种简单的方法来构建、部署和管理应用程序。以下是一些OpenShift教程: 1. 官方文档:OpenShift官方提供了非常详细的文档,涵盖了从入门到高级主题的所有内容。您可以在官网上找到这些文档:https://docs.openshift.com/ 2. OpenShift入门教程:这是一篇关于如何使用OpenShift的基本教程,适合初学者。它涵盖了如何创建应用程序、部署应用程序、管理容器等基本概念。您可以在这里找到这篇教程:https://www.openshift.com/learn/get-started/ 3. 构建和部署一个Java应用程序:这是一篇关于如何使用OpenShift构建和部署Java应用程序的教程。它涵盖了如何使用OpenShift命令行工具和Web控制台来创建和管理Java应用程序。您可以在这里找到这篇教程:https://www.openshift.com/learn/topics/java/ 4. 构建和部署一个Node.js应用程序:这是一篇关于如何使用OpenShift构建和部署Node.js应用程序的教程。它涵盖了如何使用OpenShift命令行工具和Web控制台来创建和管理Node.js应用程序。您可以在这里找到这篇教程:https://www.openshift.com/learn/topics/node-js/ 5. 构建和部署一个PHP应用程序:这是一篇关于如何使用OpenShift构建和部署PHP应用程序的教程。它涵盖了如何使用OpenShift命令行工具和Web控制台来创建和管理PHP应用程序。您可以在这里找到这篇教程:https://www.openshift.com/learn/topics/php/ 希望这些教程可以帮助您更好地了解和使用OpenShift

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值