1

jwt.ioを使用して私のAzure広告アクセストークンの検証中に無効な署名が取得されています。私のidトークンは、しかし、ちょうど良いの検証!Azure広告アクセストークンの検証中に署名が無効ですが、IDトークンが動作します。

私が見て、私のアクセストークンの
Invalid signature while validating Azure ad access token
https://nicksnettravels.builttoroam.com/post/2017/01/24/Verifying-Azure-Active-Directory-JWT-Tokens.aspx

で提案されているソリューションが、どちらも作品を試してみました。

アクセスおよびIdをトークンがAdal.jsを介して生成されます。

var endpoints = { 
     "https://graph.windows.net": "https://graph.windows.net" 
    }; 
    var configOptions = { 
     tenant: "<ad>.onmicrosoft.com", // Optional by default, it sends common 
     clientId: "<app ID from azure portal>", 
     postLogoutRedirectUri: window.location.origin, 
     endpoints: endpoints, 
    } 
    window.authContext = new AuthenticationContext(configOptions); 

は、なぜ私は私のIDトークンではなく、私のアクセストークンを検証することができますか?

+0

アクセストークンは3つの部分で完全なストップ(。)で区切られていますか? – RasmusW

+0

アクセストークンをデコードしてください。HEADERでnonceを見ましたか? –

+0

@RasmusWどちらのトークンも正しくフォーマットされており、それぞれの情報のデコードに問題はありません。検証のみが問題です。 – Jeppe

答えて

1

スレッドを参照してください:https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/609

が、場合Jwt.Headerを見て、あなたが 'ナンス' を参照します。つまり、特別な処理が必要です。通常の処理は失敗します。

だから、nonceがアクセストークンに含まれている場合、JWT.ioで署名を検証したりJwtSecurityTokenは成功しません。

+0

ありがとう、私はアクセストークンを検証する方法はありません? – Jeppe

+0

トークンリクエスト(テナント&クライアントIDのような機密情報を削除する)を提供してください。リクエストをキャプチャするためにフィドラーやブラウザデベロッパーツールを使用することができます。なぜヘッダーにnonceが含まれているかを確認します。さらに、別のグラフAPIのアクセストークンの署名を検証する必要はありません。 Azureの広告アクセストークンでapi呼び出しを送信すると、グラフapiサーバー側で検証されます。独自のAPIのトークンを取得している場合は、アクセストークンをowinミドルウェアで検証するか、JWTトークンを手動で検証することができます。 –

関連する問題