You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADFS与WAP服务器对接Apache Tomcat的配置及SAML协同机制咨询

把Apache Tomcat接入ADFS+WAP的配置指南(附SAML协同逻辑)

兄弟,我来给你捋清楚怎么把IIS换成Tomcat后,和你的ADFS、WAP配合起来——核心就是让Tomcat成为ADFS的SAML服务提供商(SP),WAP继续当反向代理管外网流量,SAML就是ADFS和Tomcat之间的身份“翻译官”,负责传递用户的身份验证信息。

先搞懂三者的协同逻辑

  • ADFS:是身份提供商(IdP),负责验证域用户的身份,生成包含用户信息的SAML断言。
  • Tomcat:作为服务提供商(SP),需要借助第三方插件来处理SAML协议,接收ADFS的断言并允许合法用户访问应用。
  • WAP:还是你的外网入口,负责SSL终止、流量转发,可选做ADFS预认证(先跳ADFS登录再进Tomcat),不需要直接处理SAML协议,只需要把请求正确转发就行。

1. 给Tomcat装上SAML处理插件

Tomcat本身不支持SAML,得用第三方工具,最常用的是Shibboleth SP(适配所有Tomcat应用),如果你的应用是Spring开发的,也可以用Spring Security SAML。这里以Shibboleth SP为例:

  • 先把Shibboleth SP安装到Tomcat服务器上,根据你的操作系统(Windows/Linux)下载对应版本。
  • 配置Shibboleth的核心配置文件shibboleth2.xml:
    • 给Tomcat设置唯一的实体ID(比如https://your-tomcat-domain.com/shibboleth),后面ADFS里要和这个一致。
    • 导入ADFS的元数据:直接填ADFS的元数据地址https://your-adfs-domain.com/federationmetadata/2007-06/federationmetadata.xml,让Shibboleth知道找谁做身份验证。
    • 配置断言消费者服务(ACS)地址:比如https://your-tomcat-domain.com/Shibboleth.sso/SAML2/POST,这是ADFS发送身份断言的目标地址。
  • 配置Tomcat的web.xml,把Shibboleth过滤器加进去,保护你需要认证的路径:
<filter>
  <filter-name>ShibbolethFilter</filter-name>
  <filter-class>edu.internet2.middleware.shibboleth.webapp.ShibbolethFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>ShibbolethFilter</filter-name>
  <url-pattern>/your-app-path/*</url-pattern>
</filter-mapping>

2. 在ADFS里把Tomcat加为信任的服务提供商

  • 打开ADFS管理控制台,找信任关系 > 依赖方信任,点击添加依赖方信任。
  • 选择“导入依赖方的联机元数据”,输入Shibboleth SP的元数据地址https://your-tomcat-domain.com/Shibboleth.sso/Metadata;如果没法联机,就手动输入之前设置的实体ID和ACS地址。
  • 给这个信任起个好记的名字,比如“Tomcat业务系统SP”。
  • 配置发行转换规则:得让ADFS把用户的属性(比如用户名、邮箱)放到SAML断言里,Tomcat才能识别。比如加个规则,把AD用户的SAM-Account-Name映射成SAML里的NameID。

3. 调整WAP的反向代理规则指向Tomcat

之前WAP已经能转发IIS的流量,现在只需要修改或新增规则:

  • 打开Web Application Proxy控制台,进入发布 > 添加。
  • 选“通过ADFS预认证的Web应用程序”(更安全,先跳ADFS登录),或者“无预认证”(直接转发到Tomcat,由Tomcat触发SAML跳转)。
  • 输入Tomcat的内部地址(比如http://tomcat-internal-ip:8080),外部地址用你的公网域名(比如https://your-tomcat-domain.com)。
  • 选择刚才在ADFS里创建的依赖方信任(“Tomcat业务系统SP”)作为预认证的目标。
  • 绑定正确的SSL证书(和ADFS/WAP用的同CA签发的证书,避免证书报错)。
  • 完成后测试外网访问,应该会自动跳转到ADFS登录页,登录成功后就会转到Tomcat应用了。

几个关键注意事项

  • 时间同步:ADFS、Tomcat、WAP的服务器时间必须一致,SAML断言有有效期,时间差超过5分钟大概率会验证失败。
  • 域名解析:公网域名要指向WAP的公网IP,WAP能解析到内部Tomcat的地址(可以用内网DNS或者hosts配置)。
  • 证书信任:ADFS、WAP、Tomcat的SSL证书要互相信任,要么用公共CA签发,要么把对方的证书导入信任存储。

内容的提问来源于stack exchange,提问作者xxestter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:15:53