web-dev-qa-db-ja.com

IdentityServer4のAddTemporarySigningCredentialとAddSigningCredential

ドキュメントによると、IdentityServerは非対称鍵ペアを使用してJWTに署名し、検証します。起動時に毎回新しいRSAを作成する構成でAddTemporarySigningCredential()を使用するか、RSAキーまたは証明書でAddSigningCredential(..)を使用できます。

このドキュメントでは、Temporaryバージョンは開発の状況に役立つと述べていますが、本番環境で使用した場合のデメリットは何もわかりません。

クライアントがIdentityServer4を使用して認証されるaspnetcore Web APIがあります。現在のところ、temporarysigningcredentialを使用するとシステムは正常に動作しますが、他のバリアントを使用するメリットはあるのでしょうか。

おかげで、

13
cellik

不利な点は、IdentityServerを再起動するたびに、キーマテリアルが変更される、つまりIOWで、以前のキーマテリアルで署名されたすべてのトークンが検証に失敗することです。

「一時的」は、他の重要な資料を入手できない場合にのみ使用できます。

15
leastprivilege

AddTemporarySigningCredentialの代わりにAddDeveloperSigningCredentialの使用を検討してください

http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial から:

AddDeveloperSigningCredential

一時署名証明書と同じ目的。ただし、このバージョンでは、ファイルシステムのキーが保持されるため、サーバーを再起動しても安定します。これにより、開発中にクライアント/ APIメタデータキャッシュが同期しなくなる問題が解決されます。

警告:AddDeveloperSigningCredentialは、IdentityServerホストが[〜#〜]シングルで実行されている場合にのみ使用できます[〜# 〜]マシン、本番ファームではAddSigningCredentialを使用する必要があります。

16