Windows Server 2022中IIS与Shibboleth 3 SP交互失败求助
解决Windows Server 2022上IIS与Shibboleth 3 SP交互的404问题
你的核心问题是IIS没有将*.sso路径的请求交给Shibboleth模块处理,而是当成静态文件查找。以下是针对性的解决步骤:
1. 添加Shibboleth处理程序映射
Shibboleth 3 SP在IIS上需要手动配置处理程序映射,确保*.sso请求被模块接管:
- 打开IIS管理器,选中目标站点,点击右侧处理程序映射
- 点击添加模块映射:
- 请求路径:
*.sso - 模块:根据站点应用池位数选择
ShibNative(64位)或ShibNative32(32位) - 名称:输入
ShibbolethSSO(自定义名称即可) - 点击确定,确认创建该映射
- 请求路径:
2. 匹配应用池位数与模块
- 打开站点对应的应用池,进入高级设置
- 查看启用32位应用程序选项:
- 若设为
True,确保处理程序映射使用ShibNative32 - 若设为
False,使用ShibNative
- 若设为
3. 验证Shibboleth配置中的站点映射
编辑C:\opt\shibboleth-sp\etc\shibboleth\shibboleth2.xml,确认<ISAPI>节点包含你的站点信息:
<ISAPI normalizeRequest="true" safeHeaderNames="true"> <Site id="1" name="localhost" /> <!-- 若使用域名访问,添加对应节点,例如:<Site id="2" name="example.com" /> --> </ISAPI>
注意id要和IIS站点的ID一致(可在IIS管理器的站点列表中查看ID列)。
4. 重启服务生效
- 执行命令重启IIS:
iisreset - 在服务管理器中找到
Shibboleth 3.x Service,重启该服务
额外排查点
- 检查Shibboleth日志目录
C:\opt\shibboleth-sp\var\log\shibboleth,查看是否有模块加载或请求处理的错误日志 - 确保IIS站点的身份验证中,匿名认证处于启用状态(
Shibboleth.sso路径需要允许匿名访问)
完成以上步骤后,重新访问http://localhost/Shibboleth.sso/Session,应该能正常返回Shibboleth会话页面。
内容的提问来源于stack exchange,提问作者pengu1n
相关产品推荐
相关产品推荐

