ドキュメントによると、IdentityServerは非対称鍵ペアを使用してJWTに署名し、検証します。起動時に毎回新しいRSAを作成する構成でAddTemporarySigningCredential()
を使用するか、RSAキーまたは証明書でAddSigningCredential(..)
を使用できます。
このドキュメントでは、Temporaryバージョンは開発の状況に役立つと述べていますが、本番環境で使用した場合のデメリットは何もわかりません。
クライアントがIdentityServer4を使用して認証されるaspnetcore Web APIがあります。現在のところ、temporarysigningcredentialを使用するとシステムは正常に動作しますが、他のバリアントを使用するメリットはあるのでしょうか。
おかげで、
不利な点は、IdentityServerを再起動するたびに、キーマテリアルが変更される、つまりIOWで、以前のキーマテリアルで署名されたすべてのトークンが検証に失敗することです。
「一時的」は、他の重要な資料を入手できない場合にのみ使用できます。
AddTemporarySigningCredentialの代わりにAddDeveloperSigningCredentialの使用を検討してください
http://docs.identityserver.io/en/release/topics/startup.html#refstartupkeymaterial から:
AddDeveloperSigningCredential
一時署名証明書と同じ目的。ただし、このバージョンでは、ファイルシステムのキーが保持されるため、サーバーを再起動しても安定します。これにより、開発中にクライアント/ APIメタデータキャッシュが同期しなくなる問題が解決されます。
警告:AddDeveloperSigningCredentialは、IdentityServerホストが[〜#〜]シングルで実行されている場合にのみ使用できます[〜# 〜]マシン、本番ファームではAddSigningCredentialを使用する必要があります。