Spring security 使用Windows AD进行spring安全身份验证,使用spring安全ACL进行授权

Spring security 使用Windows AD进行spring安全身份验证,使用spring安全ACL进行授权,spring-security,acl,Spring Security,Acl,春季安全大师 我是spring security的新手,如果我的问题不清楚,请耐心等待 我正在尝试使用SpringSecurity3.x实现基于角色的访问控制。单个用户存储在没有组的Windows广告中,因此我们不能简单地将组映射到权威机构,正如一些示例所示 因此,我的计划是仅将Windows AD用于身份验证目的,但用户角色关系将由Spring security本身维护 但是,将单个用户映射到角色将非常繁琐,因此我的问题是,是否可以在spring security中配置用户组角色,但身份验证部

春季安全大师

我是spring security的新手,如果我的问题不清楚,请耐心等待

我正在尝试使用SpringSecurity3.x实现基于角色的访问控制。单个用户存储在没有组的Windows广告中,因此我们不能简单地将组映射到权威机构,正如一些示例所示

因此,我的计划是仅将Windows AD用于身份验证目的,但用户角色关系将由Spring security本身维护

但是,将单个用户映射到角色将非常繁琐,因此我的问题是,是否可以在spring security中配置用户组角色,但身份验证部分必须由Windows AD完成

由于spring security非常灵活,我相信我的要求是可以实现的。有人能告诉我应该在哪里看吗

对于像我这样的新手来说,细节越多越好:=

先谢谢你

李亚伦

编辑1:为了特别补充我的问题,我可以利用Spring数据库表authorities、groups、groupu authorities、groupu members来实现一个简单的基于角色的授权逻辑吗?但我不能使用users表,因为ealier解释说,用户详细信息必须存储在Windows AD中,因此需要使用Windows AD对用户进行身份验证

有什么建议吗

谢谢


Aaron

首先对术语做了一些澄清:通常由Spring Security中的角色组成的权限是应用程序范围的权限。ACLs访问控制列表另一方面,指定对特定域对象的权限。正如你所理解的那样。AD通常包含权限/角色,但不包含ACL

如果您不想使用AD中的权限,可以自行实现UserDetailsContextMapper,并将其注入ActiveDirectoryLdapAuthenticationProvider实例中。请参阅如何指定自定义身份验证提供程序


如果要使用引用模式的表、权限等,可以使用JdbcDaoImpl加载用户详细信息。然后,您必须在users表中插入用户,但不能插入任何密码,因为身份验证是通过AD完成的。但是,如果您想删除users表,则必须自定义实现。

是的,我混淆了这些术语。刚刚阅读了文档是的权限是拥有权限的应用程序范围的对象,而ACL是域对象。在这种情况下,从我自己的UserDetailsContextMapper实现派生的UserDetails如何与定义谁可以做什么的ACL一起工作?你能详细解释一下吗?我在原来的问题上又增加了一个问题,你能帮我吗?@AaronLi扩大了我的答案。关于ACL,只要UserDetails使用正确的用户名a.k.a.principal填充,UserDetails ContextMapper和ACL之间就不应存在冲突。