如果我有一个使用 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 快得多。
关于java - 使用 JBoss 和 Active Directory 获取角色中的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078477/