当前位置:首页 > 教学设计 > 身份认证系统【基于LDAP的Web身份认证机制的研究与实现】
 

身份认证系统【基于LDAP的Web身份认证机制的研究与实现】

发布时间:2019-02-21 04:04:57 影响了:

  摘要:介绍了LDAP协议和目录服务,并详细阐述了基于LDAP的认证机制和认证方式。对基于LDAP的4种认证方式的认证原理和实现过程进行了分析,并对认证过程进行了详细的阐述,最后给出了LDAP在Web应用系统中认证方式的实现。
  关键词:LDAP 身份认证 SASL
  
  Research and Implementation of Web Identity Authentication Based on LDAP
  LI Hong-Jun
  (Network Information Center, Shanghai Lixin University of Commerce, No.2800,Wenxiang Road, Songjiang District,Shanghai,201620,China)
  Abstract:This article introduces lightweight directory access protocol (LDAP) and directory services. After introducing LDA P’s protocol, the article discusses the identity authentication and the way of identity based on LDAP. Then the paper analyzes the authentication principle and implementation procedure based on LDAP, it discusses the implementation procedure in detail. Finally, the article gives the implementation of authentication method based on LDAP in the web application system.
  Keywords:ldap; identity authentication;sasl
  
  1 概述
   随着计算机网络的迅速发展,网络信息规模日趋庞大,以各种形式存储的网络信息又源于不同的操作系统,因此给信息检索和管理带来了极大的不便。目录服务的基本功能便是采取合适的组织策略存储各种数据信息,以便在Internet上能直接或间接地采用最快捷、最方便的方式检索这些信息。在1988年由ITU(international telecommunication union)制定并发布了一个针对标准化分布式目录系统的目录访问协议―X. 500,它以其合理的数据组织结构与高效的数据处理方式适应了这个要求,然而复杂的ISO协议栈限制了X. 500的应
  用及发展。LDAP(Lightweight Directory Access Protocol――轻量级目录访问协议)的出现解决了这个问题,并已经成为了Internet标准协议[1]。
  LDAP由密歇根大学开发, 最初是作为一个简化的访问X.500目录服务的协议而提出的;然而经过发展,LDAP不仅成为通过TCP/IP网络访问目录服务的事实标准,而且也成为一个与操作系统独立的目录。LDAP目录中可以存储各种类型的信息,如客户的联系信息、软件包的配置信息、公司职员的电话号码薄及组织结构图、人力资源信息、企业的产品信息等等。通过把LDAP目录作为系统集成中的重要环节,可以大大简化信息查询操作。目录服务不但对于大容量的查询操作响应速度快,并且支持分布式存储结构,容易实现数据的扩展,可以满足大容量存储要求。
  
  2 LDAP协议及主要特点
   LDAP协议[2]是一种标准的目录服务技术,它基于X.500标准。X.500 是一种OSI的目录服务模型,这个模型包括了所有的命名空间和查询更新协议,X.500 通常也被称作“DAP”,这个协议运行在OSI 网络协议层,功能强大,但由于其丰富的数据模型和操作,使得它非常复杂而显得笨重。LDAP协议采用了客户机/服务器模型,客户机负责构造一个LDAP协议请求,而LDAP服务器则负责分配一个端口来监听客户端请求,通过TCP/IP传递给LDAP服务器,在服务器执行完请求的操作后,把包含结果或者错误信息的相应回传给客户机。LDAP协议请求的PDU是一个LDAPMessage结构,响应的PDU是一个LDAPResult结构[3]。LDAP的PDU都直接映射到TCP的字节流在网上传输。
   LDAP标准定义了目录中访问信息的协议,规定了信息的形式和特性、信息存放的索引和组织方式、分步式的操作模型,并且还指明了LDAP 协议本身和信息模型都是可以被扩展的。LDAP 目录中可以存放各种不同类型的数据,如简单文本、图片信息、URL、二进制数据、证书等。不同类型的数据存储在不同类型的属性中,每一种属性具有特定的语法。目录中信息存放模型基于项(Entry),每个项拥有全局唯一的名字(DN)并且包含了基于属性的描述信息。项的存放基于树状模型,层次结构相当清晰,适于对应现实世界的组织模型。LDAP 还为信息的检索提供了复杂的过滤条件,并且提供了相当的访问控制能力。
   LDAP的主要特点包括跨平台和开放性;可实现分布式数据库及同步复制功能;数据存取速度快;LDAP目录层次结构清晰、易于理解;简单而通用;完善的安全机制。由于LDAP的高可靠性及良好性能,LDAP目录服务可以满足大多数重要的目录服务需求。如今,LDAP已成为目录服务的事实上的标准。
  
  3 LDAP的认证机制
   LDAP是面向连接,以消息为基础的协议。在一个LDAP的目录中必须使用某种认证过程。这一认证过程用来建立客户端对每一个对话的权限。所有的查找、对话等操作必须受到该授权用户所获得的权限等级的控制。
   LDAP与关系数据库很显著的一个差别[4]就是LDAP提供了强有力的安全模型。LDAP的安全模型主要通过身份认证、安全通道及访问控制来实现。LDAP的访问控制机制十分灵活和丰富,它是基于访问控制信息(ACI),通过访问控制列表(ACL)实现的。这点与关系数据库系统不同,关系数据库系统通常采用基于用户组或角色进行权限控制。
   LDAP中定义了4种对客户端进行认证的机制:匿名认证、基本认证、基于SSL/TLS的认证、基于SASL的认证。
   (1)在匿名认证中,用户不需要提供任何用户信息。这种认证机制只用于信息完全公开的情况下。(2)使用基本认证时,用户通过提供用户名和密码进行身份识别。基本认证可分为简单密码和摘要密码认证。这种认证方式由于其密码以明文方式在网络中传输,其安全性比较低。(3)基于SSL/TLS的认证机制在Web上获得了广泛的应用。IETF将SSL加以标准化,形成RFC2246文件,并将其成为TLS。TLS使用X.5O9证书对传输层数据进行加密,向上层提供安全的数据传输。为了使系统具有完备的安全机制,并使系统适用于分布式环境,应该使用在传输层进行数据完整性和私密性保护。(4)基于SASL(Simple Authentication and Security Layer)的LDAP认证[5],是将SASL作为一个扩展的认证机制引入到LDAPv3中,从而弥补了LDAPv2在认证方面的不足。SASL允许客户端和服务器在传输任何信息之前协商安全机制,使LDAP可以支持LDAP客户端和服务器协商的某种类型的认证机制。它是在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证。
  
  4 Web服务器的身份认证
   在Linux服务器上搭建并配置好Apache Web服务器之后,可以通过LDAP对Web应用系统中的用户进行统一身份认证。
   Apache的认证模块由认证类型模块(auth)、认证支持模块(authn)及认证授权模块(authz)3部分组成。我们使用mod_authnz_ldap模块与mod_ldap模块。mod_authnz_ldap模块既包含认证功能也提供授权功能。mod_ldap模块通过后端连接LDAP服务来改善网站性能。除了标准LDAP库提供的功能外,该模块还增加了一个LDAP连接池和一个LDAP共享内存缓冲区。首先在Apache Web服务器的配置文件httpd.conf中确认已加载了这两个模块,然后在其尾部加入如下LDAP配置信息:
  #Authentication Info
  
  AuthName "RestrictedArea, Please login!"
  AuthType Basic
  AuthBasicProvider ldap
  AuthzLDAPAuthoritative Off
  AuthLDAPURL ldap://ldap.lixin.省略/ dc=ldap,dc=lixin,dc=edu,dc=cn
  Require valid-user
  Satisfy all
  
   保存完毕后,重启Apache。一切正常的话,当用户访问ldap目录下的应用程序时,首先会弹出一个对话框,要求输入用户名及密码进行认证。认证成功后就可以访问ldap目录下的Web应用程序了。
  
  5 结语
   统一身份认证是为了解决应用系统间的用户不统一、权限控制不统一的问题。Web应用系统利用了LDAP的安全认证机制,实现了对平台中不同系统的用户统一管理。实践表明,基于LDAP的Web统一身份认证系统不仅提高了平台的安全性、可靠性,也给用户提供了极大的方便,同时方便了用户的管理。
   需要指出的是,正确地实现一个LDAP系统并不是一项无足轻重的任务,本文对LDAP的介绍也不足以部署一个完整的基于LDAP的安全系统。但是,本文给大家提供了足够的知识基础,以便大家能使用一个现有的LDAP系统来设计并部署自己的Web应用系统。
  
  参考文献
  [1] GERAlD CARTER.LDAP System Administration [M].USA: O’Reilly,2003: 83 - 86.
   [2] 汪晨钟,孙莉.基于LDAP的Web身份认证机制的研究与设计[J].计算机与信息技术,2005,11:31-33.
  [3] 王嘉佳,张前进.基于SASL的LDAP认证机制研究[J].电子科技,2006,11:6-11.
   [4] TIMOHY A.HOWES,MARK C. SMITH. LDAP: Programming Directory-Enabled Applicationswith Lightweight Directory Access Protocol [M].Pearson Education,1997.
   [5] 于剑,张辉,赵红梅.LDAP目录服务在Web 开发中的应用[J].计算机应用,2003,23(10):82-84.

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3