4

我有一个自定义 STS 实现。目前,它被配置为 Azure ACS 上的附加身份提供程序。我有一个通过 ACS(Windows Live、Google 等)成功进行身份验证的依赖方网站。但是,每当我尝试使用自定义 STS 登录时,总是会收到错误 401。

  • 错误代码 ACS20001:处理 WS-Federation 登录响应时出错。
  • 错误代码 ACS50008:SAML 令牌无效。

我已经搜索了论坛,但在我的情况下,我没有得到有关错误的更多详细信息,也不知道如何继续和解决这个问题。

我的 STS 目前处于测试阶段,可以在此处访问:元数据

如果有人有任何建议或想尝试一下,请通过电子邮件与我联系,我将在我的自定义提供商上打开一个演示登录。

注意:该案例与此处发现的类似问题不同,因为我的内部异常详细信息没有提出任何理由。

更新:查看此线程中的讨论以获取一些额外的信息以及我从提琴手中提取的有效负载。

提前致谢,

康斯坦丁诺斯

4

2 回答 2

3

我终于在 Azure 上的 ms 支持的帮助下解决了这个问题。

似乎“ACS50008:SAML 令牌无效”错误非常普遍,通常内部异常中有更多信息不会出现在错误屏幕上。为什么会发生这种情况对我来说仍然是个谜。

因此,对于碰巧处于我位置的任何人,我确定了发生这种情况的两个可能原因。

  1. 原因:客户端的时间与ACS的时间不匹配,即下面的NotBefore是ACS查看的未来时间。行动: <saml:Conditions NotBefore="...." NotOnOrAfter="...."> 如果是这种情况,您可以尝试将生命周期设置为(现在 - 缓冲时间,例如 5 分钟)到现在 + 1 小时。
  2. 原因:一个隐藏的内部异常,只有在 ms 支持的帮助下使用您的错误的 trackingId 才能看到。

Microsoft.Cloud.AccessControl.Common.Diagnostics.SignInException:ACS20001:处理 WS-Federation 登录响应时出错。Microsoft.Cloud.AccessControl.Common.Diagnostics.ServiceException:ACS50008:SAML 令牌无效。Microsoft.IdentityModel .SecurityTokenService.IssuerNameNotSupportedException:名为“ https://login.mydomain.com/ ”的主体不是已知主体。

在我的情况下,主体名称不应在末尾包含正斜杠。我们将它从https://login.mydomain.com/更改为https://login.mydomain.com并且错误消失了!

于 2012-02-17T08:56:04.207 回答
1

您可以随时与 Microsoft 创建支持案例并让他们帮助解决: https ://support.microsoft.com/oas/default.aspx?&c1=501&gprid=14928&&st=1&wfxredirect=1&sd=gn

于 2012-02-13T19:17:09.597 回答