我想创建一个可以被各种平台调用的Web服务体系结构,例如移动设备,winforms应用程序,iphone,黑莓,你可以命名它.因此,使用像WCF和wsHttp绑定这样的东西可能会导致这种情况失败,我需要降级到basicHttp绑定以实现兼容性.
话虽如此,我需要一个系统在初始登录(身份验证)时生成令牌,然后使用此令牌进行所有后续调用,我想,验证身份验证并允许该方法执行.
任何人都有关于如何解决这个问题的提示或建议?1)生成令牌以及安全令牌中涉及的内容?2)令牌有多长时间,一些用户可能会使用他们的应用程序几个小时甚至可能"睡眠"他们的计算机
谢谢你的建议.
我正在尝试编写一个移动应用程序,它将从基于webapi rest的站点获取数据.
该站点应通过ACS保护(因为可以有多个身份提供者).
我的移动应用程序目前正在查询以下网址https://xx.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=javascriptnotify&realm=http://xx.azurewebsites.net/&version=1.0获取清单IP.
然后,我允许用户选择IP,然后使用Web浏览器控件向我们显示登录信息.
一旦用户登录,我捕获响应并提取令牌,但现在我不确定我应该做什么.令牌看起来像这样: -
{"appliesTo":"http://****.azurewebsites.net/",
"context":null,
"created":1362069383,
"expires":1362072983,
"securityToken":"... a lot of text:-)",
"tokenType":"urn:ietf:params:oauth:token-type:jwt"}
Run Code Online (Sandbox Code Playgroud)
所以,我猜我应该采取securityToken部分并添加它的部分Authorization标头到get请求?
问题1是我应该如何附加令牌 - 我只是附加安全令牌位,还是我必须对该批次进行64位编码并再次将其作为授权标头附加?
问题2如何配置webapi来处理JWT?在我修改了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.
Run Code Online (Sandbox Code Playgroud)
谢谢
罗斯