尝试使用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看到的东西?
由于
答案 0 :(得分:0)
我要检查两件事:
ServerName
指令设置为
https://dashboard.hpc.unimelb.edu.au:80
。请注意:80
。省略
端口号完全可以工作。你想要Apache和vis-a-vis,shibd来查看客户端正在使用的ServerName
。您还应该确保您有UseCanonicalName On
指令作为其中的一部分。看起来Apache中的ServerName
不正确,所以我从那里开始。