我们第一次尝试安装 Shibboleth,当在顶级域上为网站应用单点登录时,我们一切正常,但不是在子目录下。
这是我们完美运行的 Apache 虚拟主机配置文件:
<VirtualHost *:443>
... some other settings
<Location />
AuthType shibboleth
Require shibboleth
ShibRequireSession On
Order allow,deny
Allow from all
</Location>
</VirtualHost>
使用此配置,我们可以这样做:
情景 A
- 在
https://myawesomewebsite.com/secure
我的网络浏览器中访问 - 我的网络浏览器将我重定向到我的单点登录服务,网址为
https://somesinglesignon.com/authenticate
- 我输入我的用户名和密码,
https://somesinglesignon.com/authenticate
然后按提交 - 服务器把我送回
https://myawesomewebsite.com/secure
上面的一切都很完美。
现在我要修改我的虚拟主机文件,使其<Location />
变为<Location /secure>
. 所以我的虚拟主机文件现在看起来像这样:
<VirtualHost *:443>
... some other settings
<Location /secure>
AuthType shibboleth
Require shibboleth
ShibRequireSession On
Order allow,deny
Allow from all
</Location>
</VirtualHost>
现在,当我尝试重复步骤 1 到 4 时,我得到了这个:
情景 B
- 在
https://myawesomewebsite.com/secure
我的网络浏览器中访问 - 我的网络浏览器将我重定向到我的单点登录服务,网址为
https://somesinglesignon.com/authenticate
- 我输入我的用户名和密码,
https://somesinglesignon.com/authenticate
然后按提交 - 服务器把我送回
https://myawesomewebsite.com/Shibboleth.sso/SAML2/POST
为什么第 4 步方案 A 与方案 B 中的第 4 步不同?如何使 A.4 与 B.4 相同?
尝试以下操作:
我发现这很有帮助:http ://shibboleth.1660669.n2.nabble.com/Protect-single-sub-directory-Moodle-with-SP-reverse-proxy-td6590009.html