Choerodon LDAP 简介

Choerodon 猪齿鱼是开源多云应用平台,是基于 Kubernetes 的容器编排和管理能力,整合 DevOps 工具链、微服务和移动应用框架,来帮助企业实现敏捷化的应用交付和自动化的运营管理,并提供 IoT、支付、数据、智能洞察、企业应用市场等业务组件,来帮助企业聚焦于业务,加速数字化转型。

Choerodon 可以通过配置LDAP的方式对接已有的用户,使用LDAP的账号和密码即可登录到Choerodon平台。

LDAP用户认证流程

什么是LDAP

LDAP是轻量级目录访问协议(Lightweight Directory Access Protocol)的缩写,是一个开放的,中立的,工业标准的应用协议,用于与目录服务进行交互。LDAP有许多种实现,比如Open LDAP和微软的Active Directory等,类似于关系型数据库的多种不同的实现,如oracle和mysql等。

LDAP基于TCP/IP协议,使用Client/Server架构,允许客户端在目录服务器中执行各种操作,包括存储和检索数据,搜索与给定标准集匹配的数据,对客户端进行身份验证等。LDAP的标准TCP端口对于未加密的通信是389,对于通过TLS加密的通道的LDAP是636,这里可以类比HTTP协议默认端口为80,HTTPS协议默认端口为443。

LDAP目录使用有层次的、树形结构存储数据,具有优异的查询,浏览和搜索性能,但写入性能差,没有事务处理和回滚等功能,不适合频繁修改数据。通常用于存储公司员工信息,用户使用同一个账户和密码就可以登录到多个不同的服务,也可以存储公用证书和安全密钥,公司物理设备信息等。

基本概念

Directory Servers

目录服务器是一种存储树形条目信息的网络数据库,与关系型数据库存储行和列的关系信息不同,可以被认为一种NoSQL数据库。

Entries

LDAP entry(LDAP条目)是有关实体的信息集合,每个条目由下面三部分组成:DN,属性集合(attributes)和对象类集合(object class)。

DNs and RDNs

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

Attributes用于保存条目的数据。一个条目可以有多个attribute,每一个attribute都有一个attribute type (属性类型),零个或多个attribute options(属性选项)以及一组包含实际数据的值。

属性类型指定LDAP client和server应该如何处理该属性,必须包含对象标识符(OID)和零个或多个名称。

属性选项不常用,但是可以提供一些元数据,如对该属性的值进行多语言处理。

如图所示,该entry包含了多个attribute

attributes

Object Classes

对象类标记条目的类型,每个条目有一个结构对象类,指明条目所代表的对象类型(person/group/device等),还有零个或多个辅助对象类,提供其他特征。

Object Identifiers (OIDs)

对象标识符,用于唯一标识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,那么服务器就是支持分页查询的。

其他术语

  • base DN: 基准DN,通常指一个属性结构的顶部,如下的树形结构的base DN就是dc=gp,dc=gl,dc=google,dc=com
DN
  • DIT: directory information tree
  • entryUUID: 包含DIT条目的通用唯一ID(UUID)的属性。
  • LDIF: LDAP数据交换格式。IETF术语,用于加载(导入)和保存(导出)条目到LDAP启用目录的文本格式。用于数据的导入导出,每行都是“属性: 值”对,见openldap ldif格式示例
  • dc: domain component,通常指域名的每个组件,如www.baidu.com可以被写成dc=www,dc=baidu,dc=com
  • cn: commonName,被广泛用作命名某些“东西”或真实世界实体的属性。
  • ou: organizational unit name,表明用户所属的组织单元,属于多个组织使用逗号隔开。
  • l: locality name,局部名,地方名
  • st: state or province name,州或者省份名称
  • o: organizational name
  • c: country name
  • street: street name
  • uid: user id

Choerodon LDAP使用

Choerodon LDAP文档

这里做一些补充说明。

Choerodon的LDAP在组织层级,即每个组织都有各自的LDAP配置,配置好LDAP后即可同步到当前组织下,用户登录的时候根据登录名查询对应的组织,然后找到对应的LDAP server去认证,认证通过则登录成功,否则则登录失败。

如果组织下的LDAP已经被停用,则该组织下的所有LDAP用户都不能登录。

Choerodon只支持可以分页查询的LDAP server。

server setting
  • 2: 主机名,即ldap server的地址,需要以ldap://或者ldaps://开头。

  • 4: 这个值是每次分页查询用户的数量以及发送saga事件的用户数量。

  • 5: 查询和连接LDAP server的超时时间,单位为秒。

注意:
管理员登录账户和密码,要有在base DN上的登录权限,否则测试连接会报登录失败。

user setting
  • 1: 用户对象类,一般设置为person,用于检索符合这个类型的条目。支持输入多个object class,使用逗号分隔。
  • 2: 读取entry的该属性设置到iam_user表的login_name字段,作为登录名。
  • 6: uuid,LDAP对象的唯一标识,大多数是'entryUUID'属性,Microsoft Active Directory可能是'objectGUID'属性,如果您的的ldap服务器确实不支持uuid,使用能唯一标识对象的字段即可,比如'uid'或者'entryDN'。记录部分用户同步失败的uuid,方便到LDAP server查询。
  • 7: 额外的过滤条件用于同步用户,允许为空,表达式必须以'('开始,以')'结束,语法参考ldap search syntax

注意:
测试连接里的属性匹配,抓取了base DN下的100个满足已经设置的用户对象类和自定义筛选条件的条目,然后去校验设置好的loginName,email等
属性是否存在,如果不存在该属性名就返回不匹配。

success
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容