私はIS4 Identityサンプルに基づくIdentityServer4アプリケーションと、IS4.AccessTokenValidationによる認可のためのベアラトークンを使用するAPIを持っています。これは、VisualStudioを介してlocalhost上で正常に動作しているとき、私はWindows 2012 VMに展開し、IIS経由でホストしています。アイデンティティサーバーをAzureにApp Service Webサイトとしてデプロイすると、すべてが問題ありません。しかし、APIとVMと同じドメインと証明書を使用してアプリケーションサービスとしてデプロイする場合、Authorize属性を持つメソッド(ポリシーを使用するかどうかは関係ありません)は、常に401というヘッダーメッセージを返します。IdentityServer4 AuthorizeはAzure AppServiceで「署名鍵が見つかりませんでした」を取得します
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 Securityのリポジトリに迷っていましたが、より多くのログやデバッグアクセスがなければ、私はこの問題をどのように解決するかわかりません。
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が一直線状の試料の外で、署名のために購入証明書を使用して:
APIの設定は非常に基本的です。
他の誰もがAzure App Servicesとして完全に動作するこの構成を持っていますか?または、VMホストAPIに送信された同じベアラトークンを使用すると、このエラーが発生する可能性があります。
idsrv3と同様のケースがhttps://gitter.im/IdentityServer/IdentityServer3/archives/2015/04/13で議論されました。私が理解していることは、アイデンティティ・サーバー・メタデータ( '.well-known/opened-configuration')を取得できないことから発生する問題です。さらにロギングするには、 'api'のaspnetコアロギングを設定します(serilogを使ってテキストファイルにログを書き込むことができます)。エラーログを調べます。 –
そのスレッドでトークンのサイズについて興味深い可能性があります。私のものはかなり大きいですが、私はそれがすべてのホストで問題になると思っています。それと遊びを持つだろう。あなたはロギングについて正しいです、私はSerilogを追加します。出てくるものを見てください。 – user1587195
私が本当に必要としていたより多くのログを取得し、セキュリティレポコードを調べました。何らかの理由でApp ServiceのSigningKey検証オプションに違いがなければならないようです。 – user1587195