新しい JWT ハンドラー ライブラリ (System.IdentityModel.Tokens.Jwt) のバージョン 1.0.0 を ASP.NET MVC 4 アプリケーションに統合して、ACS から Azure の JWT トークンを処理するにはどうすればよいですか?
アプリケーションを実行しようとすると、次のエラーが表示されます。
[SecurityTokenValidationException: Jwt10329: 署名を検証できません。Configuration.IssuerTokenResolver.ResolveToken が null を返しました。jwt.Header.SigningKeyIdentifier: 'SecurityKeyIdentifier (IsReadOnly = False、カウント = 2、条項 [0] = X509ThumbprintKeyIdentifierClause (ハッシュ = 0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)、条項 [1] = System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause ) '.] System.IdentityModel.Tokens .JwtSecurityTokenHandler.ValidateSignature(JwtSecurityToken jwt) +1275
System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(JwtSecurityToken jwt) +113
System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateToken(SecurityToken トークン) +339
System.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken トークン)
+73 System.IdentityModel.Services.TokenReceiver.AuthenticateToken(SecurityToken トークン、ブール値の ensureBearerToken、文字列 endpointUri) +120
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase リクエスト) + 493
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(オブジェクト送信者、EventArgs 引数) +364
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、ブール値&完了同期) +69
私のweb.configは次のように構成されています:
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://127.0.0.1:81/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="PRIVATEKEY"
name="https://CUSTOM.accesscontrol.windows.net/" />
</trustedIssuers>
</issuerNameRegistry>
<securityTokenHandlers>
<add type="System.IdentityModel.Tokens.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt" />
<securityTokenHandlerConfiguration>
<certificateValidation certificateValidationMode="PeerTrust" />
</securityTokenHandlerConfiguration>
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="false" issuer="https://staging.accesscontrol.windows.net/v2/wsfederation" realm="http://127.0.0.1:81/" requireHttps="false" />
</federationConfiguration>
</system.identityModel.services>
JWT トークンを返すように Azure ACS をセットアップし、web.config に正しいセキュリティ サムネイルを設定しましたが、このエラーが発生する理由がわかりません。洞察はありますか?