我正在寻找一种方法来使用带有Tomcat的Apache DS和通过context.xml
文件设置的LDAP领域JNDI来优化我的角色管理。我对这些主题并不熟练,所以请原谅我所犯的任何明显的术语错误。
我当前的context.xml
文件就是这样
<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionName="uid=admin,ou=system"
connectionPassword="PASSWORD"
roleBase="ou=Groups,dc=ff,dc=local"
roleName="cn"
roleNested="true"
roleSearch="(uniqueMember={0})"
roleSubtree="true"
userBase="ou=People,dc=ff,dc=local"
userSearch="(mail={0})"
connectionURL="${ldapServer}"
/>
我理解的方式如下:
connectionName
,connectionPassword
和connectionURL
设置凭据以登录ApacheDS
userBase
设置用户的搜索路径
userSearch="(mail={0})"
表示它将在ou=People,dc=ff,dc=local
中搜索有mail
条目等于搜索键的条目(在我们的例子中是登录电子邮件)例如,我有一个名为:
的条目cn=A52Q7BBN9PVHHPH
sn=User
givenName=Test
mail=testUser@test.com
userPassword=SSHA-512 hashed password
... (some other non importnat fileds)
所以我的理解是,如果我们使用testUser@test.com
登录到Web服务器,tomcat将对cn
进行查询,其中属性mail=testUser@test.com
这很有效,但我遇到的问题是找出一种更简单的角色管理方式
我有一个&#34;条目?&#34;在cn=ff-admin
中调用ou=Groups
,据我了解任何&#34;条目&#34;在该组中应该指示具有管理员权限的用户。问题是条目看起来像:
uniqueMember=cn=A52Q7BBN9PVHHPH,ou=People,dc=ff,dc=local
与可能的更可读的东西相反:
uniqueMember=mail=testUser@test.com
我正在搜索修改我的context.xml
的方法,以便通过LDAP更轻松地进行用户管理,这样我就不必尝试将随机cn
交叉引用到实际电子邮件地址。
我假设我可以更改roleSearch=....
条目,但我想在开始黑客攻击之前联系堆栈社区并可能破坏某些内容。
roleBase="ou=Groups,dc=ff,dc=local"
roleName="cn"
roleNested="true"
roleSearch="(uniqueMember={0})"
roleSubtree="true"