zoukankan      html  css  js  c++  java
  • openshift 容器云从入门到崩溃之四《配置用户验证》

    1、配置本地用户

    之前安装的时候选择了htpasswd验证方式

    先创建用户

    # htpasswd -c /etc/origin/master/htpasswd admin

     授权为集群管理员

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

    登陆到oc

    # oc login -u admin

    2、配置服务账号

    平时的管理可以用本地账号,但是如果用调用k8s接口虽然也可以使用本地账号TOKEN但是很快会过期,这时候就要用服务账号了

    创建服务用户

    # oc project default
    # oc create sa api-admin

     授权为集群管理员

    # oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:default:api-admin

    获取服务账号长期TOKEN

    # oc get sa/api-admin --template='{{range .secrets}}{{ .name }} {{end}}' | xargs -n 1 oc get secret --template='{{ if .data.token }}{{ .data.token }}{{end}}' | head -n 1 | base64 -d -

     3、使用ldap验证用户

    人多了账号不好管理,就需要接入ldap了

    编辑/etc/origin/master/master-config.yaml

    加入以下内容

    oauthConfig:
      assetPublicURL: https://www.oc.example.cn:8443/console/
      grantConfig:
        method: auto
      identityProviders:
      - challenge: true
        login: true
        mappingMethod: claim
        name: Ldap_auth
        provider:
          apiVersion: v1
          attributes:
            email:
            - mail
            id:
            - dn
            name:
            - cn
            preferredUsername:
            - uid
          bindDN: uid=ldapreader,cn=users,dc=example,dc=com
          bindPassword: 123456
          insecure: true
          kind: LDAPPasswordIdentityProvider
          url: ldap://192.168.1.1:389/cn=users,dc=example,dc=com?uid

     重启master以使更改生效

    # master-restart api
    # master-restart controllers

    同步ldap账号

    编辑/etc/origin/master/rfc2307_config.yaml

    加入以下内容

    kind: LDAPSyncConfig
    apiVersion: v1
    url: ldap://192.168.1.1:389
    insecure: true
    rfc2307:
        groupsQuery:
            baseDN: "cn=groups,dc=example,dc=com"
            scope: sub
            derefAliases: never
            pageSize: 0
            filter: (objectClass=posixGroup)
        groupUIDAttribute: dn
        groupNameAttributes: [ cn ]
        groupMembershipAttributes: [ member ]
        usersQuery:
            baseDN: "dc=example,dc=com"
            scope: sub
            derefAliases: never
            pageSize: 0
        userUIDAttribute: dn
        userNameAttributes: [ cn ]
        tolerateMemberNotFoundErrors: false
        tolerateMemberOutOfScopeErrors: false

    同步命令

    # oc adm groups sync --sync-config=/etc/origin/master/rfc2307_config.yaml --confirm

    最好加入crontab定时同步

    验证用户有没有被同步过来

    # oc get group
  • 相关阅读:
    Mysql锁机制--读锁
    分布式自增ID算法snowflake
    MySql的时区(serverTimezone)引发的血案
    springBoot2.x启动项目报java.sql.SQLNonTransientConnectionException
    idea生成构造方法的快捷键(看这篇就够了)
    MYSQLl给用户授予数据库表权限
    SpringBoot2.x打包成war(看这篇就够了)
    linux下tar命令解压到指定的目录
    MySQL的JDBC驱动(8.0版本)
    使用TortoiseGit(乌龟)上传本地项目至码云
  • 原文地址:https://www.cnblogs.com/37yan/p/10382083.html
Copyright © 2011-2022 走看看