通过端口8000上的反向代理进行身份验证时出现Shibboleth错误

时间:2017-10-03 07:51:05

标签: apache shibboleth

尝试使用Apache作为反向代理,在Docker容器上运行shibboleth。出现问题是因为我使用端口80作为公共Apache实例,使用端口8000作为内部实例,这让shibboleth感到困惑:

2017-10-03 07:34:23 ERROR OpenSAML.MessageDecoder.SAML2POST [5]: POST targeted at (https://dashboard.hpc.unimelb.edu.au/Shibboleth.sso/SAML2/POST), but delivered to (https://dashboard.hpc.unimelb.edu.au:8000/Shibboleth.sso/SAML2/POST)

第一个URL是最终用户看到的外部URL。第二个URL是docker容器在获得代理请求时所看到的内容(转发了HTTP主机名)。

注意我在内部apache实例上使用了“ShibURLScheme https”以确保它认为正在使用https,因为反向代理确保所有请求都是https。

无论如何,我打电话告诉Shibboleth,这没关系,URL真的是一样的吗?也许通过重写URL shibboleth看到的东西?

由于

1 个答案:

答案 0 :(得分:0)

我要检查两件事:

  1. 确保Apache conf文件中的ServerName指令设置为 https://dashboard.hpc.unimelb.edu.au:80。请注意:80。省略 端口号完全可以工作。你想要Apache和vis-a-vis,shibd来查看客户端正在使用的ServerName。您还应该确保您有UseCanonicalName On指令作为其中的一部分。
  2. 这可能不是问题,但请确保您提供给IdP的sp元数据是正确的。 You should add entries for the FQDN(s) that the client sees.请注意,大部分文档页面不适用于您的方案,但添加正确的元数据条目至关重要。
  3. 看起来Apache中的ServerName不正确,所以我从那里开始。

相关问题