【发布时间】:2013-07-15 20:13:08
【问题描述】:
我按照官方教程(http://msdn.microsoft.com/en-us/library/hh674475)通过 SWT 令牌请求请求 ACS 令牌以交换身份提供者(Facebook)令牌。
我尝试了所有可能的方法,但我无法摆脱这个错误
ErrorCode:400:SubCode:T1019:Detail: Inavlid SWT 令牌。这 wrap_assertion 值不是 SWT 断言
注意:
- 我已经验证了 Issuer= [编辑身份提供者页面下的领域]
- 签名密钥与令牌签名密钥下显示的对称密钥相同
- 我还将 facebook accesstoken 作为我的 SWT 令牌中的声明包装到 ACS 端点,以便获得 ACS 令牌作为回报。
如果我做错了什么,请纠正我,是的,我在谷歌上搜索了很多,但没有找到解决办法!
P.S:我也尝试使用我的服务标识请求密码令牌,它工作正常。
【问题讨论】:
-
您能否提供您所尝试的具体代码 - 即具体代码、具体请求和响应(完全转储省略敏感数据) - 您如何获得 FB 令牌以及如何使用它来请求 ACS令牌。还有确切的 ACS 配置(IdP + RP + 规则组)。
-
我已经从 facebook graph api explorer 复制了我的 accessToken,并将其与 Issuer 和 HMACSHA256 一起附加到“WRAPv0.9”上的 POST 请求中。此外,我的 ACS 配置为按原样转换 accessToken 声明,IdP 已在 RelyingParty(localhost) 代码下设置为 Facebook,与刚刚添加的官方教程中的 builder.Append(HttpUtility.UrlEncode("facebook.com/claims/AccessToken=")); builder.Append(HttpUtility.UrlEncode(accessToken));
-
这种情况对我来说没有多大意义。通常,ACS 的 Facebook 支持涉及用户登录,但我不清楚它如何应用于此 ServiceIdentity 案例。您希望 ACS 对访问令牌做什么?
-
@OrenMelzer 是的,你是对的。服务身份案例与我所质疑的场景无关,我已经提到要明确 ACS 已配置并且从 ACS 端点请求令牌的一种方法正在工作。这样就缩小了在客户端生成 SWT 令牌的问题。
标签: authentication azure claims-based-identity acs