0

.NET Core MVC Webアプリケーションを含むDockerイメージが起動するたびに、新しい認証キーが無効になります。クッキー)が生成されます。dockerイメージの起動間にASP.NETコアの認証クッキーを維持する

これは、従来、.NETアプリケーションのweb.config<machineKey/>要素で設定できました。

This linkは、DataProtectionパッケージが請求書に適合することを示唆していますが、パッケージには完全なフレームワークが必要なようです。

Dockerイメージが再起動するたびに既存の認証Cookieが無効にならないようにする正しい方法は何ですか?

+1

クッキーは無効ですか、セッションは無効になっていますか?セッションの場合は、セッション状態を処理中または外部で保持していますか? – R0MANARMY

+0

ASP.NET Core 1.1プレビュー1についてのこのブログ記事をご覧くださいhttps://blogs.msdn.microsoft.com/webdev/2016/10/25/announcing-asp-net-core-1-1-preview-1/ nearその終わりには、RedisまたはAzure StorageでDataProtectionを使用するための新機能があります。ただし、ASP.NET Core 1.1はまだプレビュー版であり、Q4 2016/Q1 2017 – Tseng

+0

がリリースされる予定です。また、現在および1.1 DataProtectionはnetstandardをサポートしています。https://github.com/aspnet/DataProtection/blob/ 1.0.0/src/Microsoft.AspNetCore.DataProtection/project.json – Tseng

答えて

2

データ保護用の鍵を永続的で共有可能な場所に配置する必要があります。

AWSを使用している場合は、AspNetCore.DataProtection.Awsを使用すると、わずか数行の設定コードでキーリングをS3に置くことができます。さらに、AWS KMSを使用してキーを暗号化することができます。これは、一貫した暗号化アルゴリズムを実現する場合に特に役立ち、デフォルトの暗号化アルゴリズムが異なるオペレーティングシステム間で同じキーを再利用できます。 KMSオプションも同じライブラリの一部です。

AWS以外のプラットフォームを使用している場合は、別のライブラリが必要です。共有ドライブをマウントする必要があります。しかし、キーの同じ場所を共有するという概念は同じままです。

+0

お返事ありがとうございました。私は実際には、外部プラットフォームに頼るのではなく、Webアプリケーションにこれを直接配置する方法を探しています。理想的な世界では、設定ファイルにマシン/復号鍵を指定するだけです。 – Polynomial

+0

これは、指定したディレクトリに手動でキーを配置することによっても実行できます。有効期限までにサービスが再導入されない場合は、更新を管理する必要があります。 – thoean

関連する問題