1

WebApi サービスを使用するクロスプラットフォーム モバイル アプリケーションで認証と識別を実装しようとしています。

私の計画は、新しい Azure Mobile Service などのフェデレーション クラウド サービスに認証をエクスポートすることです。クライアント モバイル アプリケーションは、モバイル サービス認証フローを使用してトークンを取得し、それを要求のヘッダー内で WebApi に送信します。WebApi はそれを検証し、そこから UserId を抽出します。

インターセプターを使用して JWT トークンを検証する WebApi を既に構成していると仮定するとDelegatingHandler、Azure Mobile Service によって発行されたトークンを検証することは可能ですか?

SymmetricKey、Issuer、Audience の正しい値はどれですか?

私は正しい方向に進んでいますか?

4

2 に答える 2

1

プロジェクトで行う必要があるWebAPIのは、カスタム メッセージ ハンドラーを実装してトークンをインターセプトし、トークンが からの同じマスター キーを使用して署名されたことを検証することAMSです。これを行う方法を示すプロジェクトが GitHub にあります。

JWT バリデーター

これは基本的に、元の ASP.NET サンプルがここにある別の GitHub プロジェクトの派生物です。

AuthenticationTokenSample

主な検証ValidateSignature()は、JWT Claim セグメントの UTF-8 表現のバイトを取得し、Azure Mobile Services. JWT 暗号セグメントと以前に計算された値の場合、キーが JWT で HMAC を生成するために使用され、JWT クレーム セグメントの内容が改ざんされていないことが確認されます。

私が見つけた主なことの 1 つは、追加され"JWTSig"た文字列がメソッドのマスター キーに追加されないようにするValidateSignature()ことです。署名されているトークンは、 からその文字列をマスター キーに追加しなくなったようAMSです。そのセグメントを削除するまで、検証に合格するのにあらゆる種類の問題がありました。

于 2015-02-18T03:15:08.830 に答える