我正在嘗試編寫一個移動應用程序,它將從基於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.
感謝
羅斯