什么是 LDAP?
LDAP,Lightweight Directory Access Protocol,轻量级目录访问协议,它是一个工业标准应用协议,定义一个接口或语言为客户端链接到目录服务查询或修改信息,好比 OpenLDAP、Active Directory 等等。javascript
一个 LDAP 服务通常存储关于用户、用户认证信息、组、用户成员等等,充当一个用户信息的中心仓库,一般使用为用户认证和受权。java
你能够想象一个 LDAP 就是一个数据存储,支持客户端应用通信使用 LDAP 协议,包含两个方面,分别是目录和协议。服务器
LDAP 目录结构
一个 LDAP 目录有一个层级树状结构,由一个或更多的条目组成,这些条目通常表明一个真实世界的条目,好比组织、用户等等。对于一个企业而言,举个例子,这个树的根(顶层)能表明一个组织它本身,子条目能够为组织、商业单位、位置等,这些子条目能支持更多条目表明个体资源,好比用户、组等等,以下图所示:数据结构
术语解析及例子
下面建立一个真实的目录便于理解,数据使用一个学校,以下图:ui
在顶层你能看到一个 dc=hogwarts, dc=com,使用它来表明整个学校,它有一个子条目,表明为一个组织单元 ou=users,它有不少子条目,好比 cn=triddle 来表明学生。code
在上图中,咱们能忽略其中顶级条目 ou=config, ou=schema, ou=system,由于他们关系到这个目录它本身的 schema 和 config,是来自于安装后的默认配置。server
Entry(条目):每一个对象在目录中被叫作一个 LDAP 条目,例如:ou=users,cn=triddle。对象
Attribute(属性):每一个entry 典型的有一个或更多的属性被使用来描述对象,好比姓,名,邮箱,商业单位等等。blog
LDAP 规范定义一个标准属性设置,好比 cn,sn,mail,objectClass 等等,对于咱们的例子,让咱们从上面的描述,拿用户 Tom Riddle 来举例,下面是这个用户的属性:接口
dn: cn=triddle, ou=users, dc=hogwarts, dc=com objectClass: organizationalPerson objectClass: person objectClass: inetOrgPerson objectClass: top cn: triddle sn: Riddle displayName: Tom Riddle givenName: Tom mail: Tom.Riddle@hogwarts.edu uid: 20007 userPassword: SHA hashed password
正如你所看到的,它包含一些基本的我的信息和用户的密码。
Distinguished Name or DN:
在 LDAP 中识别一个条目,咱们使用 Distinguished Name or dn,这个dn在一个目录中是全局惟一的,它的值是目录树中一个对象的位置,它能够被“链接”为当前条目名字和它的父节点一直到顶层(根)节点的条目“相加”。对上述已被列出的用户 Tom Riddle 而言,它的 DN 将会是:
"cn=triddle" + "ou=users" + "dc=hogwarts, dc=com" DN:cn=triddle, ou=users, dc=hogwarts, dc=com
用户认证
基于 LDAP 作一个认证一样也须要用户名和密码,在这个案例描述中用户名就是 LDAP 中的 DN,所以,假设用户 Tom Riddle 的密码为 123456,你将使用以下方式认证成功:
username: cn=triddle, ou=users, dc=hogwarts, dc=com password: 123456
如何在 Authing 身份云上使用 LDAP ?
在 Authing 身份云咱们已经为您集成了 LDAP 协议,只须要一键开启 LDAP,您不只能够经过 LDAP 协议来管理您云上的用户信息,还能够为您的用户使用 LDAP 协议无缝衔接其余支持 LDAP 协议的平台,进行例如认证、受权等操做。
开启方法:
首先使用帐户密码登陆 Authing 平台,而后点击主界面--用户管理--右上角点击开关--开启,以下图:
是否是很简单? 开启后便可使用 LDAP 协议来管理用户,功能都已经集成,例如认证、过滤、增、删、改、查等。
常见搜索 dn 地址数据结构以下:
下面以查询功能举例,以下图:
-H LDAP server URI,包含地址及端口,全部用户都是这个地址 -D bind dn,指定服务器用于认证您的专有名称 -w 用户池密码 -LLL 指定以 LDIF 格式输出,不用注释和版本 -b base dn,若是要搜索的服务器须要指定搜索起点,则必须使用此参数,不然该参数是可选的 -x 简单认证
其余帮助文档请登陆 Authing 身份云,点击主界面--用户管理--使用文档,以便查看更多帮助。