做者:李楷文mysql
Choerodon做为多云管理平台,能够经过LDAP的方式对接企业已有的应用,经过同步用户到Choerodon平台,使企业用户无需注册就可以使用LDAP的帐户和密码登陆到Choerodon平台,实现 DevOps 开发运维一体化和敏捷管理的等目标,极大地下降了企业用户迁移负担。git
本文将从LDAP的概念,如何使用Choerodon LDAP以及配置定时任务三个方面进行介绍。github
LDAP是轻量级目录访问协议(Lightweight Directory Access Protocol)的缩写,是一个开放的,中立的,工业标准的应用协议,用于与目录服务进行交互。LDAP有许多种实现,好比Open LDAP和微软的Active Directory等,相似于关系型数据库的多种不一样的实现,如oracle和mysql等。sql
LDAP基于TCP/IP协议,使用Client/Server架构,容许客户端在目录服务器中执行各类操做,包括存储和检索数据,搜索与给定标准集匹配的数据,对客户端进行身份验证等。LDAP的标准TCP端口对于未加密的通讯是389,对于经过TLS加密的通道的LDAP是636,这里能够类比HTTP协议默认端口为80,HTTPS协议默认端口为443。数据库
LDAP目录使用有层次的、树形结构存储数据,具备优异的查询,浏览和搜索性能,但写入性能差,没有事务处理和回滚等功能,不适合频繁修改数据。一般用于存储公司员工信息,用户使用同一个帐户和密码就能够登陆到多个不一样的服务,也能够存储公用证书和安全密钥,公司物理设备信息等。安全
目录服务器是一种存储树形条目信息的网络数据库,与关系型数据库存储行和列的关系信息不一样,能够被认为一种NoSQL数据库。bash
LDAP entry(LDAP条目)是有关实体的信息集合,每一个条目由下面三部分组成:DN,属性集合(attributes)和对象类集合(object class)。服务器
DN是distinguished name的缩写,是entry的惟一标识,同时记录了entry所在的目录树层级位,相似于文件系统的上下文路径。微信
一个DN由零个或多个相对可分辨的名称或者RDN组成。每一个RDN由一个或者多个属性-值组成(一般是一个)。例如uid=superlee,dc=choerodon,dc=io这个DN,由3个RDN组成,RDN的顺序指定了DIT(directory information tree)中相关条目的位置,从左到右以降序表示层级结构,即父目录在偏右侧,上述DN的父目录的DN为ou=choerodon,ou=io,uid是RDN的属性,superlee是RDN的值。网络
Root DSE是一个长度为0的字符串DN的特殊条目,每个LDAP server 必需要有一个这样公开的特殊条目。
Attributes用于保存条目的数据。一个条目能够有多个attribute,每个attribute都有一个attribute type (属性类型),零个或多个attribute options(属性选项)以及一组包含实际数据的值。
属性类型指定LDAP client和server应该如何处理该属性,必须包含对象标识符(OID)和零个或多个名称。
属性选项不经常使用,可是能够提供一些元数据,如对该属性的值进行多语言处理。
如图所示,该entry包含了多个attribute。
对象类标记条目的类型,每一个条目有一个结构对象类,指明条目所表明的对象类型(person/group/device等),还有零个或多个辅助对象类,提供其余特征。
对象标识符,用于惟一标识LDAP协议中的各类元素,OID由一系列由句点分隔的数字组成(例如,“1.2.840.113556.1.4.473”是表示服务器端排序请求控件的OID)。
可使用ldapsearch命令查询LDAP server是否支持分页查询。
ldapsearch -H ldap://ldap.server.address:389 -x -D "uid=superlee,dc=choerodon,dc=io" -W -b "" -s base -a always "(objectClass=*) 复制代码
若是返回值里包含1.2.840.113556.1.4.473,那么服务器就是支持分页查询的。
详情可阅读《Choerodon LDAP文档》
这里作一些补充说明。
Choerodon的LDAP在组织层级,即每一个组织都有各自的LDAP配置,配置好LDAP后便可同步到当前组织下,用户登陆的时候根据登陆名查询对应的组织,而后找到对应的LDAP server去认证,认证经过则登陆成功,不然则登陆失败。
若是组织下的LDAP已经被停用,则该组织下的全部LDAP用户都不能登陆。
Choerodon只支持能够分页查询的LDAP server。
注意: 管理员登陆帐户和密码,要有在base DN上的登陆权限,不然测试链接会报登陆失败。
注意: 测试链接里的属性匹配,抓取了base DN下的100个知足已经设置的用户对象类和自定义筛选条件的条目,而后去校验设置好的loginName,email等 属性是否存在,若是不存在该属性名就返回不匹配。
Choerodon 支持配置LDAP同步用户和禁用用户定时任务,定时任务配置文档。
首先进入组织层的任务明细界面
而后在当前界面点击建立任务按钮
任务支持简单任务和cron表达式任务,这里以简单任务做实例,天天同步一次,执行30次。
超时策略:
点击下一步选择iam-service,Choerodon有两个内置的定时任务,同步定时任务和禁用用户定时任务。禁用用户定时须要设置filterStr,用来筛选须要禁用的用户。这个筛选表达式必须以'('开始,以')'结束,语法参考ldap search syntax。
点击下一步选择通知对象,以后点下一步确认信息后建立便可。
首先使用具备site层权限的帐户登陆,而后按以下顺序点击菜单,进入任务明细界面。
而后在当前界面点击建立任务按钮,这里和组织层的操做一致。
在配置执行程序时,Choerodon内置了两个默认的LDAP相关的全局层任务。其中同步用户须要设置组织code参数,代表同步该组织下的用户,过滤停用用户须要设置组织code和筛选停用用户的条件。以后选择下一步和须要通知的对象确认便可。
Choerodon猪齿鱼开源多云技术平台,是基于开源技术Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台经过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。
你们也能够经过如下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献: