我试图找到使用基于ldap的身份验证的优缺点,而不是应用程序的基于内部数据库的身份验证。
我看到的一种情况是第二个应用程序可以使用ldap API直接对第一个应用程序创建的ldap数据库进行身份验证。
在这种情况下,如果第一个应用程序提供了诸如Web服务之类的接口,则第二个应用程序也许可以进行身份验证
我看到ldap的缺点是需要管理的另一个软件组件。我在第二种情况下看到的缺点是必须编写一个Web服务来进行身份验证。
如果一个应用程序可能使用其他应用程序的用户数据库进行身份验证,我想知道什么是一个不错的选择。
答案 0 :(得分:1)
使用LDAP(或者更确切地说是LDAP的实现)的主要原因是在整个组织中重用现有的目录基础结构。也就是说,许多公司维护一个目录基础结构,描述其组织单位(OU)和其中的员工组织 - 即部门,员工,角色等.LDAP为此目录服务提供接口。
通过LDAP管理您的安全性,您实际上可以使用此现有基础架构和安全/角色信息,而不是自己动手。更重要的是,这会为每个用户维护一个“id”,而不是每个系统中的id,从而实现跨系统的单点登录。此外,LDAP支持SSL and TLS。
您应该认为滚动您自己的身份验证意味着您还需要管理另外一个用户管理系统,而不是将LDAP视为“还有一个要管理的软件组件”。也就是说,您需要构建管理工具来管理它(或者您的系统管理员是否希望使用sqlplus或其他什么?)此外,您似乎期望其他应用程序会使用您的闪亮的新身份验证数据库,他们也可能会认为“我“滚动我自己的”。
所有这一切,编写自己的安全模块并不是不合理的,但SSO是由多个系统组成的大型企业中经常被要求的要求。