LDAP(Lightweight Directory Access Protocol)即轻量目录访问协议,是一个开放、广泛被使用的工业标准(IEFT、RFC),在1993年就被提出。企业级软件也通常具备"支持LDAP"的功能,比如Jira, Confluence, openVPN等,企业也经常采用LDAP服务器来作为企业的认证源和数据源。但是大家比较常见的认识误区是,可以使用LDAP来实现SSO。我们可以先分析一下它的主要功能点或场景:
当LDAP作为数据源时,对外通过LDAP Search以及LDAP Modify协议来进行数据同步;当作为认证源时,通过LDAP Bind协议来进行身份认证。
但是SSO的定义是单次登录(或者只输入一次账号密码)就可以访问多个应用,本质上是B/S架构的,也就是说需要借助浏览器才能实现SSO功能,而LDAP更适合于C/S架构的登陆,通过LDAP其实并不能做到SSO,用户必须还得再次输入密码. LDAP只是提供了统一管理用户/密码的功能(即认证源)。
所以,LDAP看似适用性比较广,但它真的适合每个企业吗?企业需要先思考几个问题:
使用的应用或系统是否以C/S架构为主?
用LDAP还是其他SSO系统,得取决于对接的应用是B/S架构的还是C/S架构的。比如像OpenVPN这种C/S架构,它本身的登陆是没有浏览器的,所以无法通过SSO协议对接(玉符自己用的VPN、SSH、Wifi等对接的就是LDAP扩展)。因为LDAP是上一个时代的产物,针对典型的C/S软件架构,发明初衷就没有SSO的概念,而是为了存储有层级关系的目录结构,基本不支持现在流行的B/S架构,需要用户重复输入密码。
准备使用什么目录去实现LDAP?开源的还是商业的
实现LDAP协议的服务器有多种选择,例如Active Directory,OpenLDAP,Apache Directory Studio或者其他商业版服务,如果存储的信息量比较大或者对可用性与性能有更高要求,那么是建议用商业版的。
打算投入研发精力去开发新功能吗?
企业人员数量超过50后,很多新的需求就会出现,例如员工自助密码服务(Self-service Password)等,很多LDAP服务器是不自带这些功能的,都需要IT人员找到对应解决方案和实现。
是否有专人去维护?
企业快速增长、组织结构变动,都会带来大量的维护工作量,更不用说这些服务器要的长期维护升级工作。
对安全、加密的需求?
LDAP发明的时候还没有Token的概念,在协议中需要客户端传输明文密码到服务器进行验证,对于现代化的企业部署环境来说,是非常不安全的。
此外,合规、数据可视化等,这些新的企业需求,是LDAP难以达成的。如果只是需要一个类似数据库的多层级存储服务,LDAP则可以充分满足。
作为专业的IDaaS(身份即服务)提供商,我们除了提供全种类SSO的对接,还完美支持LDAP的对接,企业能够根据服务的架构类型(C/S或B/S)对接所有的应用,员工只需要一套账号密码,即可访问所有应用,不仅体验了极致的便利性,同时兼顾了高安全性。我们提供的LDAP拓展功能(配置详情见图1),有以下特点:
按99.99%的超高可用性和高性能进行分布式设计,免去企业大量的维护成本
默认提供了安全加密的LDAPs(LDAPS = LDAP + TLS, 类似于 HTTPS = HTTP + TLS,加密网络传输的所有内容),大大提高验证过程的安全性
功能完整,支持员工自助密码服务、个人信息更新等
所有验证过程可追溯,可视化报表输出等满足企业各类合规要求