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
原文地址:https://www.cnblogs.com/37yan/p/10382083.html