接上一篇《安装Harbor》,安装好以后,接下来咱们使用OpenLDAP来进行Harbor web界面的登录验证及权限分配!html
OpenLDAP:mysql
使用OpenLDAP的都知道,这是一个集中的用户帐号管理系统;使用轻量级目录访问协议(LDAP)构建集中的身份验证系统能够减小管理成本,加强安全性,避免数据复制的问题,并提升数据的一致性。web
随着服务器的增长,随着用户权限的复杂性增长,只有几台服务器时,可能你还能够每台机器都去手动的新建几个用户,或者设置权限。sql
但若是是几10、几百、上千或者更多的机器呢?难道你还一个个的手动去新建用户吗?一个公司若是有着几10、几百或更多的人员时,难道你还能手动的操做吗?更别说复杂的权限设置了......docker
OpenLDAP就是所以而生的其中一个集中的用户帐号管理系统,而我认为这也是一个比较好的管理系统。数据库
咱们公司200左右的人,3000+的服务器,不一样的部门,不一样的项目,不一样的人员,reader或者是新人,每一个人都有他们本身的帐号,不一样的权限。咱们只能使用OpenLDAP进行这些复杂的权限帐号管理。vim
基于此,docker的registry镜像仓库,这么复杂的人员分布,这么多的业务与项目,难道咱们也一个个的新建registry帐号或者共用一个帐号吗?很明显这是不可能的!浏览器
既然咱们上面用了Harbor,刚好Harbor也支持OpenLDAP进行帐户管理,这也是咱们看中Harbor做为docker registry镜像仓库其中重要的一点!这样只须要维护OpenLDAP这一套系统就能够了,跟之前彻底不冲突,也彻底不须要从新定义每一个人的用户密码!安全
转载请标明出处:http://www.cnblogs.com/huangjc/p/6272938.html服务器
下面咱们就进入正式的操做吧:
Harbor默认是使用mysql数据库进行用户管理,那么咱们就须要修改Harbor的配置文件:
# vim harbor.cfg #编辑以下几行: auth_mode = ldap_auth #验证模式 ldap_url = ldaps://172.16.100.100 #openldap server ldap_basedn = ou=people,dc=mydomain,dc=com #这个根据本身的实际状况修改咯
保存以后,中止harbor:
docker-compose stop
而后从新执行install:
./install.sh
到此,就修改配置完成并生效啦!
接下来登录浏览器测试操做并设置相关权限:
首先说明一下,我这里发现的一个小问题:OpenLDAP的用户须要先登录一次Harbor界面,后续Harbor才能对其进行权限的操做;这个应该是Harbor先前并不知道OpenLDAP有这个用户的存在,只有登录了以后才记录了这个用户的缘由吧!!
固然这个也多是我设置的问题吧,后续哪位大牛看到而且有好的方法,烦请指点一下!
(1)首先登录一个我本身的用户,会看到只能新建本身的项目,并push/pull本身的镜像,其余人的仓库都不能操做,也没有备份策略等:
我新建了一个我本身的项目,可是没有备份权限,也只能操做我本身的项目,能够新加其余用户访问个人项目:
登录gxx这个用户,发现这个用户也能访问我建立的项目:
(2)对用户进行权限设置:
admin是Harbor默认的超级管理员,能够看到全部人的项目,全部的操做均可以使用admin来进行操做,固然也能够赋予别人为管理员:
登录admin后,能够看到刚才由huangjc用户所建立的项目,也能够将gxx用户提高为这个项目的管理员:
admin也能够将某个用户提高为Harbor web的管理员,这样这个用户就能够像admin同样具备Harbor操做的全部权限:
登录huangjc这个用户,你就会发现,这些是管理员才拥有的权限,如今我也拥有了,我如今的权限就跟admin同样了:
到此,Harbor的OpenLDAP的操做就这样先吧!