gpt4 book ai didi

如果已登录到另一个 Microsoft 帐户,使用 WAAD 作为 IdP 的 Azure ACS 会出现 WS-Federation 协议(protocol)错误

转载 作者:行者123 更新时间:2023-12-02 14:43:38 25 4
gpt4 key购买 nike

我的依赖方应用程序使用 Windows Azure ACS 进行用户身份验证。我已将 ACS 配置为使用 Windows Azure Active Directory (WAAD) 作为身份提供商。这在很大程度上是有效的,用户可以使用我在 WAAD 中为其配置的身份登录我的应用程序。但是,我遇到的问题是,如果用户登录到另一个 Microsoft 帐户,并且在同一个浏览器实例中尝试登录我的应用程序,他们会收到丑陋的 ACS 错误“ACS20012:请求不是有效的 WS-Federation 协议(protocol)消息”。例如,如果我打开 Chrome 并使用我的 Windows Live Id 登录 Windows Azure 管理门户,然后打开一个新选项卡并尝试登录我的自定义应用程序,我将收到该错误。如果我打开新的浏览器或清除 cookie,我就可以正常登录。

我是否应该能够在同一浏览器实例中登录这两个应用程序?

最佳答案

不。

这是要求在同一浏览器实例中登录两个 Google 帐户(或两个 Live ID,或任何两个帐户)(实际上是 might be possible using Chrome ,但一般情况是 )。这在今天是根本不可能的。

然而,在 ACS 站点上看到该错误消息是很难看的。您是否配置了 ERROR URL for your relying party在ACS中的应用?尽管此属性是可选的,但我强烈建议客户实际使用它,并正确处理对其的请求。我还没有尝试过您的特定场景,但我假设 ACS 会将用户重定向到错误 URL,一旦您配置了它,所以您至少知道会发生什么。

请为您的依赖方配置错误 URL,并让我们知道用户是否会被重定向到您的网站。然后您将能够生成一些正确的错误消息。

更新

如果您说这仅在您登录 Azure 管理门户时发生,那么这(我的猜测!)几乎与使用 WAAD 登录相同。自 WAAD 大会以来发生了一些变化。如果您遵循 Fiddler 的实际登录流程,您会注意到登录管理门户时的流程略有不同,例如登录 Hotmail。如果您登录 Hotmail,您将被重定向到 login.live.com,然后登录并返回 Hotmail。

现在,如果您在导航到 manage.windowsazure.com 时检查流量,您会注意到第一个重定向到 login.microsoftonline.com(这是 WAAD已处理!)。然后重定向到 login.live.com(这是您的 Live ID 帐户)。我的猜测是,来自 login.microsoftonline.com 的 WAAD 联合 Live ID (login.live.com) 进行身份验证。这就是您实际上使用 WAAD 登录的原因,也是您的应用失败的原因。

请做以下实验来确认我是否错了:

  1. 删除所有浏览器的 Cookie
  2. 转至 Hotmail 并使用您的 Live ID 帐户登录
  3. 现在打开新选项卡并打开通过 ACS 联合 WAAD 的自定义应用程序

我怀疑现在您将能够登录您的应用程序。

关于如果已登录到另一个 Microsoft 帐户,使用 WAAD 作为 IdP 的 Azure ACS 会出现 WS-Federation 协议(protocol)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com