使用 LDAP 领域配置 Tomcat 8
Configure Tomcat 8 with LDAP realm
我在 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 中,我必须指定什么角色?我只想授予所有经过身份验证的用户访问权限。
我认为您已经可以通过上述设置对用户进行身份验证了。
角色
对于roles/groups,您可以按如下方式翻译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
的设置,但我知道它可以完成并且已经看到了它的实际效果。
我在 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 中,我必须指定什么角色?我只想授予所有经过身份验证的用户访问权限。
我认为您已经可以通过上述设置对用户进行身份验证了。
角色
对于roles/groups,您可以按如下方式翻译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
的设置,但我知道它可以完成并且已经看到了它的实际效果。