IS4 ID サンプルに基づいた IdentityServer4 アプリと、IS4.AccessTokenValidation による承認のためにベアラー トークンを使用する API があります。これは、VisualStudio を介して localhost で正常に動作し、Windows 2012 VM に展開して IIS を介してホストされている場合にも機能します。ID サーバーを App Service Web サイトとして Azure にデプロイすると、すべて問題ありません。ただし、API が VM と同じドメインと証明書を使用して App Service としてデプロイされている場合、Authorize 属性を持つメソッド (ポリシーの有無は関係ありません) は常にヘッダー メッセージと共に 401 を返します。
Www-Authenticate: Bearer error="invalid_token", error_description="The signature key was not found"
IdentityServer4 および IdentityServer4.AccessTokenValidation パッケージの最新リリースを含む .NET 4.5.2 を使用しています。また、これらのパッケージの最新版を GitHub から 30/08/16 から変更なしで取得しました。とにかくIS4 Validatorのバグだとは思いませんが、何が原因なのかわかりません。助言がありますか?Azure ホストのバグですか?
これをデバッグできるようにしたいのですが、ゼロから再構築しても、このアプリに対してリモート デバッグを機能させることができず、アプリのログには何も表示されません。ASP.NET セキュリティ リポジトリを調べましたが、ログ記録やデバッグ アクセスがなければ、この問題を解決する方法がわかりません。
API 構成は非常に基本的なものです。
var jwtBearerOptions = new JwtBearerOptions()
{
Authority = Configuration["Authentication:IdentityServer:Server"],
Audience = Configuration["Authentication:IdentityServer:Server"]+"/resources",
RequireHttpsMetadata = false,
AutomaticAuthenticate = true,
AutomaticChallenge = true,
};
app.UseJwtBearerAuthentication(jwtBearerOptions);
Identity Server はサンプルから直接取り出したもので、購入した証明書を署名に使用しています。
他の誰かがこの構成を 2 つの Azure App Services として完全に機能させていますか? または、VM がホストする API に送信された同じベアラー トークンが許容される場合、このエラーの原因となる可能性があるもの。