webapiRESTベースのサイトからデータを取得するモバイルアプリケーションを作成しようとしています。
サイトはACSを介して保護する必要があります(複数のIDプロバイダーが存在する可能性があるため)。
私のモバイルアプリは現在、次のURLhttps ://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"}
だから、私はsecurityTokenの部分を取り、getリクエストにAuthorizationヘッダーの一部を追加する必要があると思いますか?
質問1は、トークンをどのように添付する必要があるかです。セキュリティトークンビットを添付するだけですか、それともロットをbase 64エンコードして、Authorizationヘッダーとして再度添付する必要がありますか?
質問2JWTを処理するように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.
ありがとう
ロス