gpt4 book ai didi

authentication - 使用 LDAP 域配置 Tomcat 8

转载 作者:行者123 更新时间:2023-11-28 22:16:01 25 4
gpt4 key购买 nike

我在 Tomcat 8 上配置 LDAP 服务器时遇到问题。我配置了一个 LDAP 服务器并在 WAS 8.5 服务器上工作,我想在 Tomcat 上配置相同的 LDAP。WAS 配置是(从意大利语翻译而来):

  • 用户过滤器:(&(cn=%v)(objectclass=inetOrgPerson))
  • 组过滤器:(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))
  • 用户ID映射:*:cn
  • 组号图:*: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 的设置,但我知道它可以完成并且已经看到它的实际应用。

关于authentication - 使用 LDAP 域配置 Tomcat 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52321683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com