控制台
博客/开发者/正文
快速集成 LDAP,实现用户单点登录
Authing 官方2021-01-05阅读 37

什么是 LDAP

 
LDAP,Lightweight Directory Access Protocol,轻量级目录访问协议,它是一个工业标准应用协议,定义一个接口或语言为客户端连接到目录服务查询或修改信息,比如 OpenLDAP、Active Directory 等等。
 
一个 LDAP 服务一般存储关于用户、用户认证信息、组、用户成员等等,充当一个用户信息的中心仓库,通常使用为用户认证和授权。
 
你可以想象一个 LDAP 就是一个数据存储,支持客户端应用通讯使用 LDAP 协议,包含两个方面,分别是目录和协议。
 

LDAP 目录结构

 
一个 LDAP 目录有一个层级树状结构,由一个或更多的条目组成,这些条目一般代表一个真实世界的条目,比如组织、用户等等。对于一个企业而言,举个例子,这个树的根(顶层)能代表一个组织它自己,子条目可以为组织、商业单位、位置等,这些子条目能支持更多条目代表个体资源,比如用户、组等等,如下图所示:
 

术语解析及例子

 
下面创建一个真实的目录便于理解,数据使用一个学校,如下图:
在顶层你能看到一个 dc=hogwarts, dc=com,使用它来代表整个学校,它有一个子条目,代表为一个组织单元 ou=users,它有很多子条目,比如 cn=triddle 来代表学生。
 
在上图中,我们能忽略其中顶级条目 ou=config, ou=schema, ou=system,因为他们关系到这个目录它自己的 schema 和 config,是来自于安装后的默认配置。
 
Entry(条目):每个对象在目录中被叫做一个 LDAP 条目,例如:ou=users,cn=triddle。
 
Attribute(属性):每个entry 典型的有一个或更多的属性被使用来描述对象,比如姓,名,邮箱,商业单位等等。
 
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 身份云,点击主界面--用户管理--使用文档,以便查看更多帮助。

文章作者

avatar

Authing 官方

0

文章总数

关注 Authing 公众号
随时随地发现更多内容
添加 Authing 小助手
加入 Authing 开发者大家庭