1

如何使 tomcat/jndi 使用身份验证用户绑定到 ldap 以进行组搜索?

问题:

  • servlet 的简单的基于 FORM 的 Tomcat/jndiRealm/ldap 身份验证
  • 已设置,以便用户正确进行身份验证(绑定模式)
  • 但是,ldap 服务器不允许匿名绑定查看我感兴趣的组。current-authenticating-user 可以查看这些组
  • 我不想使用 connectionName 和 connectionPassword

我希望由当前正在进行身份验证的用户完成角色搜索,但即使在绑定模式下,wireshark 也会显示在初始用户身份验证之后完成了匿名绑定。

可行的解决方法,但不是我想要的:

  • 使用可以查看组的用户的 connectionName 和 connectionPassword
  • 为领域设置一个 commonRole

(我无法控制 ldap 服务器)

从我的(非工作)server.xml

<Realm className="org.apache.catalina.realm.JNDIRealm"
   connectionURL="ldap://localhost:389"
   userPattern="cn={0},ou=people,o=myO,dc=myDc,dc=com"
   roleBase="ou=groups,o=myO,dc=myDc,dc=com"
   roleName="cn"
   roleSearch="member={0}" />
4

1 回答 1

0

如果您对 LDAP 服务器没有任何控制权并且 Tomcat 的 JNDIRealm 确实如此,那么您似乎别无选择,只能使用连接名称/密码。检查 JNDIRealm 源代码很容易:它不是一个大文件。

于 2012-07-10T12:54:59.373 回答