接上一篇《安装Harbor》,安装好之后,接下来我们使用OpenLDAP来进行Harbor  web界面的登陆验证及权限分配!

OpenLDAP:

  使用OpenLDAP的都知道,这是一个集中的用户账号管理系统;使用轻量级目录访问协议(LDAP)构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。

随着服务器的增加,随着用户权限的复杂性增加,只有几台服务器时,可能你还可以每台机器都去手动的新建几个用户,或者设置权限。

但如果是几十、几百、上千或者更多的机器呢?难道你还一个个的手动去新建用户吗?一个公司如果有着几十、几百或更多的人员时,难道你还能手动的操作吗?更别说复杂的权限设置了......

  OpenLDAP就是因此而生的其中一个集中的用户账号管理系统,而我认为这也是一个比较好的管理系统。

  我们公司200左右的人,3000+的服务器,不同的部门,不同的项目,不同的人员,reader或者是新人,每个人都有他们自己的账号,不同的权限。我们只能使用OpenLDAP进行这些复杂的权限账号管理。

基于此,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的操作就这样先吧!

(三)Harbor使用OpenLDAP认证登陆的更多相关文章

  1. LDAP落地实战(三):GitLab集成OpenLDAP认证

    上一篇文章介绍了svn集成OpenLDAP认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成openldap实现账号认证 GitLab集成OpenLDAP ...

  2. LDAP落地实战(四):Jenkins集成OpenLDAP认证

    前几篇分文章分别介绍了OpenLDAP的部署管理和维护以及svn.git的接入,今天我们再下一城接入jenkins. 前情提要:LDAP系列文章 LDAP落地实战(一):OpenLDAP部署及管理维护 ...

  3. Liferay7 BPM门户开发之32: 实现自定义认证登陆(定制Authentication Hook)

    第一步:修改liferay-hook.xml <?xml version="1.0"?> <!DOCTYPE hook PUBLIC "-//Lifer ...

  4. Harbor配置https认证

    Harbor配置https认证由于Harbor不附带任何证书,它默认使用HTTP来提供注册表请求.但是,强烈建议为任何生产环境启用安全性.因为测试使用,使用自签名证书: 1.创建CA证书 首先创建个目 ...

  5. kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录

    1.基本概念 上节在k8s中部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: &q ...

  6. Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  7. 我了解到的新知识之—Apple Captive Portal 网页认证登陆公共Wifi

    因为今天一个用户遇到选择公司WiFi后,无法弹出网页认证登陆界面的问题,随即上网搜索相关信息,因为公司内没有VPN,无法FQ,只能用bing来搜索一下相关信息了. Captive Portal听起来好 ...

  8. 04 自学Aruba之定制AC的protal认证登陆页面

    点击返回:自学Aruba之路 04 自学Aruba之定制AC的protal认证登陆页面 方法一: 使用Aruba控制器中内置的网页界面 Configuration下MANAGEMENT>Capt ...

  9. LDAP落地实战(二):SVN集成OpenLDAP认证

    上一篇文章我们介绍了LDAP的部署以及管理维护,那么如何接入LDAP实现账号统一认证呢?这篇文章将带你完成svn的接入验证 subversion集成OpenLDAP认证 系统环境:debian8.4 ...

随机推荐

  1. having在Oracle和mysql小点不同

    在Oracle中,having一定要结合group by使用,但在mysql中,情况就不一样了.能够单独使用. C:\Documents and Settings\guogang>sqlplus ...

  2. .Net下简单地实现MD5加密

    在.Net中为我们提供了一个方法HashPasswordForStoringInConfigFile,可以简单方便地实现MD5加密.该方法位于System.Web命名空间下,所以需要在引用中添加Sys ...

  3. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

  4. Ibatis根据id获取拼接好的sql语句案例

    //得到sql语句: public virtual string GetSqlStatement(string statementName, object paramObject) { ISqlMap ...

  5. beanutils中WrapDynaBean

    public class Emp   { private String  firstName="李";    private String lastName;    public ...

  6. SQL Server 增删改

    --use用来设置当前使用哪个数据库use StudentDb--go批处理go --T-SQL中不区分大小写,数据库表中的数据是区分大小写的--例如:insert与INSERT不区分大小写,数据库表 ...

  7. WCF总结笔记

    ------------------------windowform承载服务步骤: (1)定义契约: using System; using System.Collections.Generic; u ...

  8. C#中的深复制与浅复制

    C#中分为值类型和引用类型,值类型的变量直接包含其数据,而引用类型的变量则存储对象的引用. 对于值类型,每个变量都有自己的数据副本,对一个变量的操作不可能影响到另一个变量.如 class Progra ...

  9. C#通过接口与线程通信(捕获线程状态)介绍

    C#通过接口与线程通信(捕获线程状态)介绍 摘要:本文介绍C#通过接口与线程通信(捕获线程状态),并提供简单的示例代码供参考. 提示:本文所提到的线程状态变化,并不是指线程启动.暂停.停止,而是说线程 ...

  10. C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析

    C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析 问题描述:大家没有遇到过这种情况使用自己编写的工具读取Excel2003文件中的数据,然后执行插入语句将数据批量导入到SQ ...