我正在尝试编写一个移动应用程序,它将从基于Webapi的休息站点获取数据。与JWT的安全WebAPI
该网站应通过ACS进行保护(因为可能有多个身份提供商)。
我的手机应用程序当前正在查询以下网址https://xx.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=javascriptnotify&realm=http://xx.azurewebsites.net/&version=1.0以获取IP列表。
然后,我允许用户选择一个IP,然后使用网络浏览器控件向他们显示登录信息。
一旦用户登录,我捕获响应并提取令牌,但现在我不确定我应该做什么。令牌是这样的: -
{"appliesTo":"http://****.azurewebsites.net/",
"context":null,
"created":1362069383,
"expires":1362072983,
"securityToken":"... a lot of text:-)",
"tokenType":"urn:ietf:params:oauth:token-type:jwt"}
所以,我猜我应该采取securityToken部分,并将其添加有Authorization头的GET请求的一部分?
问题1是我应该如何附加令牌 - 我是否只附加安全令牌位,还是必须对base 64进行编码并再次将其作为Authorization头附加?
问题2如何配置webapi来处理智威汤逊?之后,我已经修改了ACS发出JWT令牌,我安装了JWTSecurityTokenHandler我仍然得到以下错误(这是被动认证):
JWT10310: Unable to validate signature. validationParameters.SigningTokenResolver type: 'System.IdentityModel.Tokens.IssuerTokenResolver', was unable to resolve key to a token.
The SecurityKeyIdentifier is:
'SecurityKeyIdentifier
(
IsReadOnly = False,
Count = 1,
Clause[0] = X509ThumbprintKeyIdentifierClause(Hash = 0x2FEE3EE96B019D4BA0C046124B77C652EEF768E5)
)
'. validationParameters.SigningToken was null.
感谢
罗斯