こんにちは、私のASP.NET CoreアプリケーションでASP.NETコアOpenIdConnectServerデータ保護キーの場所
私はAPI認証のためのOpenIdConnectServerを使用しています。すべてうまく動作します。
解決できない問題が1つあります。トークン署名鍵を永続化するためのカスタムフォルダを設定する方法はありますか?サービス構成で
は私が持っている:
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"keys/"));
最初に実行した後、アプリケーションキーがそこに作成されます。 しかし、OpenIdServerは何らかの形で鍵を管理しています。それにもかかわらず
app.UseOpenIdConnectServer(options => {
...
options.DataProtectionProvider = app.ApplicationServices.GetDataProtectionProvider();
...
});
、キーに署名する資格情報は、デフォルトの場所に作成されます。
A new RSA key ... persisted on the disk: /home/.../.aspnet/aspnet-contrib/oidc-server/<some guid>.key.
は、そのバグや機能ですか?どのようにしてサーバに鍵をkeys/
フォルダにも格納させるにはどうすればいいですか?
抽象 - 私がやっている理由は、この:
私の考えでは、こののNドッキングウィンドウ画像からAPIを構築し、負荷ballancerの後ろにそれを隠すとクラウドのどこかに実行することです。問題は、 - ドッカーのすべてのインスタンスが自身のアプリケーション&署名鍵を作成するとき、暗号化された認証トークンは、トークンを作成し署名した他のインスタンス以外のインスタンスでは機能しません。 したがって、実行中のすべてのドッカーイメージに同じキーを配布しようとしています。可能であれば、あらかじめ定義されたアプリケーションフォルダへ。
さらに良い方法やベストプラクティスがありますか?
ありがとうございます。
FYI、OIDCサーバミドルウェアはDataProtectionキーが管理されている方法を変更しませんが、それは2つの別々のシリアル化のメカニズムが実際に存在しているとして、HTTPで説明したように、それは、使用するキーだけではありません:// stackoverflowの.com/questions/38541772/authorize-via-jwt-token/38542062表示されているデバッグメッセージは、ID_token署名用の非対称キーを作成する内部RSAキー生成機能によって記録されます。この機能は主に開発目的に使用され、次のベータ版(beta7)で削除される予定です。 – Pinpoint