使用LDAP域配置Tomcat 8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LDAP域配置Tomcat 8相关的知识,希望对你有一定的参考价值。
我在Tomcat 8上配置LDAP服务器时遇到问题。我已配置LDAP服务器并在WAS 8.5服务器上工作,我想在Tomcat上配置相同的LDAP。 WAS配置是(从意大利语翻译):
- 用户过滤器:(&(cn =%v)(objectclass = inetOrgPerson))
- 组过滤器:(&(cn =%v)(|(objectclass = groupOfNames)(objectclass = groupOfUniqueNames)))
- 用户ID地图:*:cn
- 组ID映射:*:cn
- 组的映射ID成员:ibm-allGroups:member; ibm-allGroups:uniqueMember; groupOfNames:member; groupOfUniqueNames:uniqueMember
tomcat上server.xml中的Realm标记是:
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="10"
connectionURL="ldap://192.168.0.3:389"
userBase="o=organization,c=it"
userSearch="(cn={0})"
userSubtree="true"
connectionName="cn=test,cn=Directory Administrators,o=organization,c=it"
connectionPassword="testpass"
/>
如何使用角色属性填充Realm标记?在web.xml中,我必须指定什么角色?我只想授予所有经过身份验证的用户的访问权限。
我认为您已经通过上述设置对用户进行身份验证了。
角色
对于角色/组,您可以按如下方式翻译WAS设置:
<...your config...
roleBase="o=organization,c=it"
roleSubtree="true"
roleSearch="(&(uniqueMember={0})(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))"
roleName="cn"/>
然后,在Tomcat中分配用户的角色将是目录中的组名列表。由于这可能会有所不同,您需要预先设置一些列在web.xml中的组。将这些组分配给用户将为他们提供适当的访问权限。
认证用户
如果您只想允许任何经过身份验证的用户,可以将属性allRolesMode
设置为authOnly
,如下所示:
<...your config...
allRolesMode="authOnly"/>
然后,您的web.xml应该使用*
作为角色规范,如下所示:
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
也许您还应该设置security-role
元素,如下所示:Tomcat security constraint for valid user
我个人没有使用authOnly
的设置但我知道它可以完成并且已经看到它在行动。
以上是关于使用LDAP域配置Tomcat 8的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat 8 - LDAP:NameNotFoundException 错误代码 32,剩余名称为空字符串
从零构建ipa-server.实现ldap+kerberos域用户验证(开放防火墙,命令版)
Phabricator 开放源代码的软件开发平台 Window Active Directory ldap ad域配置记录