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 同步时间:-)
我最近为我的 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 同步时间:-)