使用 JBoss 和 Active Directory 获取角色中的用户列表

Get list of users in a role using JBoss with Active Directory

如果我有一个使用 LdapExtLoginModule 连接到 Active Directory 服务器的 JBoss 服务器,我的 java restful web servlet 是否可以接受一个名称作为字符串在 Active Directory 中分组,并向 Active Directory 服务器询问属于该组的用户列表?

当然可以。困难的方法是使用 JNDI 对具有属性 member= 的所有用户 (objectCategory=person) 执行 LDAP 查询。但 JNDI 并不是最优雅的 API,正确找到 AD 服务器并非易事,您必须使用 DN 字符串而不是通常的 Windows 名称来做所有事情。

最简单的方法是使用 Jespa,它使这类事情变得微不足道,它会正确地故障转移到另一个 AD 服务器并且它理解 Windows 组名、帐户名、SID 等. Jespa 还做了很多其他的事情。如果您最终尝试检查组成员身份,而使用 Jespa NtlmSecurityProvider 进行身份验证,则可以使用 Account.isMemberOf(或 isUserInRole)检查组成员身份,这比使用 LDAP 快得多。