如何防止为 AD 身份验证配置的 Apache Tomcat JNDI 领域重定向到基于云的控制器

问题描述 投票:0回答:0

我正在使用供应商提供的 Apache Tomcat 配置,该配置利用 JNDI 领域连接到 Active Directory 以执行用户身份验证。部分配置包括指定用于用户身份验证的目标的连接 URL 和可选的替代 URL。

通过使用与 Eclipse Adoptium 11.0.17+8 一起运行的 Apache Tomcat v9.0.68.0 捆绑软件的最新版本,连接尝试将被定向到我们基于云的 AD 域控制器以服务身份验证请求。没有防火墙规则允许此流量进出公司网络。当我们使用 WireShark 查看数据包捕获时,我们可以看到从目标端口为 636 (LDAPS) 的应用程序服务器以及在 connectionUrl 和/或 alterUrl 领域选项中定义的本地域控制器的目标服务器发出的流量。

当我们使用 Panorama 查看防火墙日志时,我们会在端口 636 上看到应用程序服务器的源以及 AWS 域控制器或 Azure 域控制器的目标服务器。这些对应于我们在应用程序中看到的日志:

Aug 03, 2023 2:55:27 PM org.apache.catalina.realm.JNDIRealm authenticate
SEVERE: Exception performing authentication
javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: cpr.ca:636 [Root exception is java.net.SocketTimeoutException: connect timed out]]

我与供应商的研发团队以及我们的域管理员和网络/防火墙团队合作,没有人能够提出原因或解决方案来防止这种情况发生。如果不出意外,我希望尝试从该过程中获取更多信息,无论是通过调试日志记录、连接器、引擎、领域等的其他选项还是黑魔法!

这是 server.xml 文件的 JNDI 领域定义的摘录:

      <Realm className="com.bmc.bcan.catalina.realm.BNALockOutRealm"
             failureCount="5"
             lockOutTime="86400"
             cacheSize="1000"
             cacheRemovalWarningTime="3600">
        <Realm className="com.bmc.bcan.catalina.realm.BNAJNDIRealm"
               connectionURL="ldaps://<FQDN1>:636"
               alternateURL="ldaps://<FQDN2>:636"
               connectionName="CN=*****,OU=*****,OU=*****,OU=*****,OU=*****,OU=*****,DC=**,DC=**"
               connectionPassword="<password>"
               userBase="DC=**,DC=**"
               userSearch="(sAMAccountName={0})"
               userSubtree="true"
               referrals="follow"
         />
      </Realm>
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false">
        <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
      </Host>
</Engine>```
tomcat active-directory ldap jndi catalina
© www.soinside.com 2019 - 2024. All rights reserved.