如果已登录到另一个Microsoft帐户,则使用WAAD作为IdP的Azure ACS
我的依赖方应用程序使用
Windows Azure ACS进行用户身份验证.我已将ACS配置为使用Windows Azure Active Directory(WAAD)作为身份提供程序.这大部分都在工作,用户可以使用我在WAAD中为他们配置的身份登录我的应用程序.但是,我遇到的问题是,如果用户登录到另一个Microsoft帐户,并且在同一浏览器实例中尝试登录我的应用程序,则会出现丑陋的ACS错误“ACS20012:请求不是有效的WS-Federation协议消息”.例如,如果我打开Chrome并使用我的Windows Live ID登录Windows Azure管理门户,然后打开新标签并尝试登录我的自定义应用程序,我将收到该错误.如果我打开一个新的浏览器或清除我的cookie我可以登录就好了.
我不应该能够在同一个浏览器实例中登录这两个应用程序吗? 解决方法
不.
这是要求在同一浏览器的实例中签署两个Google帐户(或两个Live ID,或两个帐户)(实际上是might be possible using Chrome,但一般情况是NO).今天这根本不可能. 然而,在ACS站点中看到该错误消息是很难看的.您是否在ACS中配置了ERROR URL for your relying party应用程序?虽然这个属性是可选的,但我强烈建议客户实际使用它,并正确处理对它的请求.我没有尝试过您的特定场景,但我认为ACS会??在配置后将用户重定向到Error Url,因此您至少知道会发生什么. 请为您的信赖方配置错误网址,并告知我们是否会将用户重定向到您的网站.然后,您将能够生成一些正确的错误消息. UPDATE 如果您说这只发生在您登录Azure管理门户时,那么??(我的推测!)与使用WAAD的登录几乎相同.自WAAD的GA以来发生了一些变化.如果您遵循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登录的原因,这就是您的应用程序失败的原因. 请执行以下实验以确认我是否错了: >删除所有浏览器的cookie 我怀疑现在您将能够登录您的应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在Windows中获取PCI区域大小?
- 设计模式 – XP是否与使用设计模式相冲突?
- window – 阻止或取消退出JavaFX 2
- 跟踪OceanLotus的新下载程序KerrDown
- 使用Box Windows SDK v2库在C#桌面应用程序中对B
- Windows shell中的“Bootstrap”python脚本,没有
- haskell – 在Windows 7上安装带有cygwin的Cabal
- Windows – 安装KB3200970和KB3202790更新后的DN
- windows 下python 环境安装
- .net – Win32 API FindFirstFile和FindNextFile