4

私の Web アプリケーションでは、Live SDK 5.6 から取得した JWT 認証トークンを検証する必要があります。少し前まで、これらのトークンの署名は、アプリ シークレット (account.live.com/developers/applications から) + "JWTSig" である署名キーを使用した、base64 でエンコードされたヘッダー + ペイロードの HMACSHA256 ハッシュでした。今はそうではないようです。

それらのトークンが現在どのように署名されているか知っている人はいますか?

私の英語でごめんなさい。

4

1 に答える 1

0

これを行う最善の方法はJWT、Azure Mobile Services から返されたトークンを取得し、それが からの同じマスター キーを使用して署名されたことを検証すること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:54:45.183 に答える