快速集成 LDAP,实现用户单点登陆

什么是 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 身份云,点击主界面--用户管理--使用文档,以便查看更多帮助。

相关文章
相关标签/搜索