Shibboleth SP 注销没有重定向到我正确的服务器 URL

Shibboleth SP logout does not redirect to my correct server URL

我最近为我的 IIS Web 服务器和 Microsoft Azure 配置了 Shibboleth Service Provider。身份验证非常有效,但我确实在让 Azure 或 Shibboleth 重定向到我正确的本地注销页面时遇到了一些问题。

老实说,我不是 100% 确定注销机制是如何工作的,但在我的网页上我称之为注销:

https://my.webserver.xyz/Shibboleth.sso/Logout

这实际上会让我在我的应用程序上从 Azure 注销,但我的问题是它会在注销后显示这个标准的 Shibboleth 注销页面:

Local Logout
Status of Local Logout: Logout completed successfully.
You MUST close your browser to complete the logout process.

但我希望它重定向到 https://my.webserver.xyz/loggedout/ 而不是这个标准信息。 经过更多的故障排除后,我发现我可以添加一个 URL return 参数,如下所示:

https://my.webserver.xyz/Shibboleth.sso/Logout?return=https://my.webserver.xyz/loggedout/

但这给出了来自 Shibboleth 的完全相同的本地 HTML 文件。

我知道我可以更改本地 Shibboleth /etc/localLogout.html 文件以重定向到我的注销 URL:

<html>
<head>
<meta http-equiv="Refresh" content="0; url='https://my.webserver.xyz/loggedout/'" />
</head>
</html>

但这似乎是一种糟糕且麻烦的方法,所以我肯定在这里遗漏了一些细节。 我将 [Shibboleth][2] v3.1.0.1 与 IIS 一起使用,如果相关的话 PHP。

谁能告诉我如何直接导航到我的注销页面?

我会自己回答这个问题,因为没有提出其他解决方案,这似乎对我有用。

我发现了这个问题,因为它似乎是我自己太不耐烦了;-)我想我可能在 Azure 中的配置更改后过早测试了注销功能,因为 Azure 需要一些时间才能获得更改生效。

我现在发现,当我在 Azure https://my.webserver.xyz/Shibboleth.sso/Logout 中配置此 Logout URL 时,它会将我重定向回上述标准 Shibboleth /etc/localLogout.html 注销页面。

当我将 Azure Logout URL 配置为 https://my.webserver.xyz/Shibboleth.sso/Logout?return=https://my.webserver.xyz/loggedout/ 时,它实际上会直接从 Azure 重定向回此页面。

不需要重定向回与 Azure 中配置的相同的 URL - 你可以在你的网页上有一个 link 像这样 https://my.webserver.xyz/Shibboleth.sso/Logout?return=https://my.webserver.xyz/test-123/ 并且它注销后将重定向回这里。

这里的士气 - 多一点耐心,在冲出去做大量配置更改之前留出一些 Azure 同步时间:-)