LDAP协议在统一身份认证系统中的应用

2021-02-27 07:37赵菁
网络安全技术与应用 2021年2期
关键词:统一身份用户

◆赵菁

LDAP协议在统一身份认证系统中的应用

◆赵菁

(北京信息职业技术学院 北京 100018)

企业通过门户技术可以实现将各分立的系统统一起来。在项目中包括的一个重要部分就是将企业中各应用系统的账号、口令、权限信息集中统一管理。本文通过设计LDAP数据结构、用户数据接口和目录服务接口,实现了使用LDAP存储管理用户,同时提高了系统的安全性。

LDAP协议;统一身份认证;系统安全性

统一的人员组织、权限管理,实现统一认证和访问控制;实现应用单一的登录,使用户在初始进行一次登录和身份认证后,就可以访问其具有访问权限的任何系统,而不需要再次登录,后续系统会自动获取用户信息,从而识别出该用户具有访问权限,是统一身份认证系统的目标。而LDAP目录作为系统集成中的一个重要环节,提供了企业级的统一用户信息管理,是实现统一认证和访问控制的必要前提。

1 LDAP协议

LDAP(Lightweight Directory Access Protocol)即轻量级目录访问协议,此协议基于X.500标准,TCP/IP协议作为其基础。目录访问协议和数据库很类似,但存在很大的不同。数据库设计着重于方便数据的读写,而目录访问协议对读优化进行了专门的设计,不适用于对写操作频繁的数据存储。目录服务用于通过键-值类型格式存储、整理及表达数据。一般来讲,目录会面向查找、搜索以及读取操作做出优化,因此适用于经常引用但却较少变更的数据。

2 LDAP的四种模型

2.1 信息模型

信息模型是对LDAP中信息的表示方式进行描述。信息模型中涉及的概念包括schema、objectClass、Attribute和Entry。

在目录信息树里创建一个条目(entry)时,条目的信息存储在属性(attribute)里,属性又被组合成对象类(objectClass),对象类进一步组成了架构(schema)。

(1)架构(schema)

Schema 就是一个集合。所有的 objectClass 和 attribute 都定义在 Schema 里。每一个 attribute 和 objectClass,包括其父级 attribute 和 objectClass 都必须定义在一个 Schema 里,且该 Schema 必须能够被 LDAP 服务器识别。Schema、objectClass和attribute的关系如图1所示。

图1 Schema、objectClass和attribute的关系

定义在一个 Schema 里的 attribute 可以被另一个 Schema 里的 objectClass 使用。

(2)对象类(objectClass)

objectClass 是 attribute 的集合。对象类由对象标识(OID)、唯一名称、父对象(SUP)、任何需要的属性(MUST)和允许的属性列表(MAY)5个组件组成。

在LDAP中objectClass分为三种:Abstract,Structural,AUXIALIARY。要定义一个Entry必须包含一个Structural类型的ObjectClass,其他两个类型可包括0或多个。其中Top是一个顶级ObjectClass,里面定义了一个MUST Attribute:ObjectClass,于是也就决定了必须有一个其他的Structural ObjectClass才能定义一个Entry.其中ObjectClass又可以存在继承关系,子ObjectClass会继承父ObjectClass中的全部Attribute。该继承关系于Java中有点相似。

(3)属性(Attribute)

attribute 定义在 Schema里。Attribute类同于编程语言中的变量,它可以被赋值,就像是可以存放一个单一类型信息的容器。官方声明了许多常用的 Attribute,也可以自定义,但要避免重名。objectClass是一种特殊的Attribute,它包含其他用到的 Attribute以及它自身。

(4)条目(Entry):

条目是目录信息树里 objectClass 的集合。entry 有且只能有一个 STRUCTURAL objectClass。一个 STRUCTURAL objectClass可能有一个同为 STRUCTURAL 类型的父级。entry 可以包含任意数目的 AUXILIARY objectClass。entry 可以有子 entry(child entry),父 entry(parent entry),同级 entry(sibling entry)。entry 有三种类型:

object entry - 最常见的一种,包含位于 objectClass 属性(attributes)里的用户数据

alias entry - 带有单一属性 aliasedObjectName 的 objectClass 别名

subentry - 用于存储与父 entry 相关的管理或者操作数据

LDIF(即LDAP数据交换格式)内的条目示例如下:

dn:sn=Ellingwood,ou=people,dc=digitalocean,dc=com

objectclass:person

sn:Ellingwood

cn:Justin Ellingwood

以上即为LDAP系统中的一条有效条目。

2.2 命名模型

命名模型是对LDAP中数据的组织方式进行描述。LDAP中的数据是以树的形式进行组织,被称为目录信息树(Directory Information Tree,DIT)。目录树的根位于最顶部,即基准DN。假设某个用户Jack,他是abc公司销售部门(sales)的一名员工,该公司的域名为abc.com。该用户的表示方法为:CN=Jack OU=Sales DC=abc DC=com。LDAP的目录信息树如图2所示。

图2 LDAP的树形结构

2.3 功能模型

功能模型是对LDAP中数据的获取或者修改条目的操作进行描述。包括查询、更新、认证和其他操作共四大类操作。

2.4 安全模型

安全模型是对LDAP中的安全机制进行描述。通过身份认证、安全通道和访问控制实现。

3 数据结构设计

基于LDAP对读取密集型用户数据的卓越性能,在企业统一身份认证系统中,用户或应用系统信息的存储和管理即可采用LDAP技术。它们的特点是具有层次结构、面向对象的方式存储的数据库、数据能够保持一致性和完整性,企业中的各类应用系统都可以使用存储和管理其中的共享信息,

如图3所示,为企业的统一身份认证系统目录树设计。DN为:O=abc.com。目录树中的信息由三部分组成:“Ou=北京”、Cn=users、Cn=groups。

图3 目录树结构

应用系统集成DIT如图4所示。目录属性列表如表1所示。

图4 应用系统集成DIT

表1 目录属性列表

4 接口设计

包括用户数据接口和目录服务接口。集成应用系统将通过用户数据接口获得用户的身份信息。而通过目录服务接口进行目录信息的存取操作。

5 结论

本文结合某银行现有应用系统的情况,提出了使用LDAP存储管理用户,把相关的用户信息存储在LDAP服务器中,提供企业级的统一用户信息管理。是进一步实现统一认证和访问控制的必要前提,同时还提高了系统的安全性。

[1]华建祥,瞿霞. 基于 LDAP 协议的统一身份认证系统研究[J].智能计算机与应用,2019.

[2]吴科桦,张艺夕. 基于 LDAP 协议的 Solr 用户认证设计与实现[J].网络安全技术与应用,2020.

猜你喜欢
统一身份用户
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
统一数量再比较
跟踪导练(三)(5)
妈妈的N种身份
身份案(下)
关注用户
关注用户
关注用户
如何获取一亿海外用户