实施LDAP(Active Directory)身份验证的建议/指南

实施LDAP(Active Directory)身份验证的建议/指南,ldap,shiro,spring-ldap,Ldap,Shiro,Spring Ldap,问题陈述: 我试图建立一个自定义管理系统,这将需要身份验证和授权两者。 系统需要具有管理/创建/更新/删除用户、角色、权限和组的功能 我的设计解决方案 我计划从头开始在内部实施此功能,并将提供如下身份验证和授权 身份验证:用户将提供其凭据,系统将验证用户是否有效 授权:一旦用户通过身份验证,基于用户组和他们可以访问站点上请求页面的权限 问题: 现在,我的问题是,假设我成功构建了这个应用程序,并且将来我的应用程序需要LDAP(active directory)身份验证,那么是否可以插入LDAP相关

问题陈述:

我试图建立一个自定义管理系统,这将需要身份验证和授权两者。 系统需要具有管理/创建/更新/删除用户、角色、权限和组的功能

我的设计解决方案

我计划从头开始在内部实施此功能,并将提供如下身份验证和授权

身份验证:用户将提供其凭据,系统将验证用户是否有效

授权:一旦用户通过身份验证,基于用户组和他们可以访问站点上请求页面的权限

问题:

现在,我的问题是,假设我成功构建了这个应用程序,并且将来我的应用程序需要LDAP(active directory)身份验证,那么是否可以插入LDAP相关功能以保持现有应用程序的完整性,或者我必须使用LDAP API重新编写整个或大部分应用程序

我已经看过ApacheShiro和SpringSecurity,它们 提供LDAP功能,还提供管理/创建/更新/删除用户的功能

到目前为止,我还没有决定是和他们中的任何一个一起去,还是自己写

如果我能得到关于如何处理事情的详细回复,我将不胜感激

注意:
我是LDAP的新手,所以如果我在LDAP方面使用了一些错误的术语,请原谅

我建议不要自行实现,只需与现有API集成即可

披露:我为(正是它提供了这一点)工作,等等


此外,如果您的应用程序需要LDAP支持,我见过的大多数LDAP设置在与应用程序集成时只支持读取操作,因此您可能希望与LDAP管理员聊天,看看您的“管理”用户用例是否可行。

我建议您不要自行实现此功能,只需与现有API集成即可

披露:我为(正是它提供了这一点)工作,等等


此外,如果您的应用程序需要LDAP支持,我见过的大多数LDAP设置在与应用程序集成时只支持读取操作,因此您可能希望与LDAP管理员聊天,看看您的“管理”用户用例是否可行。

安全性是一个严重的领域,有很多隐藏的复杂性。我绝对不建议你自己去实现。既然您提到了SpringLDAP,我猜您是在一个基于Spring的项目中。在这样的设置中,最明显的选择是优秀的项目。

安全性是一个严肃的领域,有很多隐藏的复杂性。我绝对不建议你自己去实现。既然您提到了SpringLDAP,我猜您是在一个基于Spring的项目中。在这样的设置中,最明显的选择是优秀的项目。

谢谢,spring security是否能够基于权限和角色允许/不允许访问特定页面?我可以在我的表中定义组并让spring使用这些组来允许/禁止访问某个页面吗?我可以在SpringSecurity中定义自定义角色吗?哦,是的,所有这些以及更多:)。Spring Security默认使用基于角色的安全授权。您的问题不清楚通过分离角色、权限和组来实现什么(您是否考虑基于ACL的授权?),但所有内容都是完全可插拔的,因此您将能够使用您可能想要的任何自定义授权方案(也提供了对基于ACL的授权的现成支持)。查看参考文档,它真的很好!我的意思是,在spring文档中,它说授权是基于角色的。我想覆盖它并基于权限创建授权。我的模式中有3个表。用户、角色和权限,我希望通过权限而不是角色来授权用户。这就好比用户拥有特定的权限,可以执行特定的操作或显示特定的页面,否则就不会。所以它有我自己的用户、权限和角色表,并使用spring安全性。此外,我还将拥有一个用户界面,用于编辑、更新和创建新角色、用户和权限。在最简单的设置中,Spring Security中的授权基于一种称为“已授予的权限”的东西。在开箱即用的实现中,这通常是角色,但这是完全可插拔的;您所需要做的就是根据您的特定需求调整每个用户的授权数量(在您的情况下,使用权限填充)。用于编辑/更新等的用户界面(和后端基础设施)与身份验证/授权基础设施完全分离。Spring ldap是一个非常有用的工具,可用于简化后端部分。谢谢,Spring security是否能够基于权限和角色允许/不允许访问特定页面?我可以在我的表中定义组并让spring使用这些组来允许/禁止访问某个页面吗?我可以在SpringSecurity中定义自定义角色吗?哦,是的,所有这些以及更多:)。Spring Security默认使用基于角色的安全授权。您的问题不清楚通过分离角色、权限和组来实现什么(您是否考虑基于ACL的授权?),但所有内容都是完全可插拔的,因此您将能够使用您可能想要的任何自定义授权方案(也提供了对基于ACL的授权的现成支持)。查看参考文档,它真的很好!我的意思是,在spring文档中,它说授权是基于角色的。我想覆盖它并基于权限创建授权。我的模式中有3个表。用户、角色和权限以及