Spring 安全性和 ldap

Posted

技术标签:

【中文标题】Spring 安全性和 ldap【英文标题】:Spring security and ldap 【发布时间】:2011-09-22 17:08:36 【问题描述】:

这是我第一次尝试 Spring Security 和 ldap。我有几个新手问题。我的主要困惑是:

    我们如何为用户分配角色?它是在 ldap 服务器上完成的吗?还是通过我的 webapp 中的配置文件完成?我的意思是,几个用户将拥有对 webapp 功能的所有访问权限(管理员)、普通用户(对 webapp 数据的只读访问权限)、分析组(可以在 webapp 中运行报告的用户) 当前应用程序使用j_security_check 与 ldap 服务器进行普通用户身份验证。 (我们在哪里连接 ldap 连接设置以进行此身份验证?)

【问题讨论】:

【参考方案1】:

我也觉得它很困惑,并开发了我自己的与 Java EE 安全相关的模块。

基本上,webapp 是使用标准 Java EE 安全性设置的,并且可以为 spring bean 上的方法提供 @RolesAllowed 注释,在这种情况下,在调用方法之前会根据所需的角色检查登录用户的角色。 See here for details.

您可以使用 LDAP 或数据库或文件 - 存储角色和用户的位置由您决定。通常对于生产,您将使用 LDAP 或某种目录服务器的连接器。抱歉,我无法为 WebSphere 提供帮助 - 自从我为了安全而设置它已经有一段时间了。

【讨论】:

您好蚂蚁,感谢您的回复。你至少消除了我的一些疑虑。所以我们可以说“只能在 ldap 服务器/数据库表/文件上定义角色”,对吗?因此,通过 ldap 实现它肯定也会涉及 ldap 管理员。开发者无法自行实现所有这些。 您需要具备 LDAP 管理员技能的人员来设置和管理 LDAP 中的用户及其角色。然后,您需要一位知道如何在 Websphere 中设置 LDAP 领域并将其映射到您的应用程序的 WebSphere 管理员。然后你需要一个了解 ACEGI(或现在的任何东西)的 Spring 开发人员,或者,你需要一个简单的 Java 开发人员来使用我快速而肮脏的库;-) 我想我会使用 Acegi(这些天是 Spring Security 3),但肯定需要 LDAP 管理员和 Websphere 管理员。这对我帮助很大。我不知道从哪里开始:D

以上是关于Spring 安全性和 ldap的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring 安全性中同时使用数据库和 LDAP 身份验证?

Spring Webflux + LDAP/Kerberos 安全性

使用 LDAP 和组成员身份的 Spring 安全性

微软安全公告 ADV190023 的 Spring Ldap 影响(LDAP 通道绑定和 LDAP 签名)

如何使用 xml 配置文件、JAVA、Spring 安全性对 LDAP 用户进行身份验证

如何使用 Spring 安全性从 Active Directory LDAP 填充 LDAP 权限?