1

我最近Shibboleth Service Provider为我的 IIS Web 服务器和 Microsoft Azure 进行了配置。身份验证就像一个魅力,但我确实在让 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/而不是这个标准信息。经过更多的故障排除后,我发现我可以添加这样的 URLreturn参数:

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 一起使用。

谁能指出我如何直接导航到我的注销页面的方向?

4

1 回答 1

0

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

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

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

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

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

这里的士气 - 多一点耐心,并在匆忙进行大量配置更改之前留出一些 Azure 同步时间 :-)

于 2020-09-09T05:17:53.777 回答