3

私は asp.net コア アプリケーションを開発して Web ファーでチューニングし、「AddDataProtection」を使用して保存時のキー暗号化を保護していますが、ドキュメントでは推奨されていますが、アプリケーションをデプロイして IIS から直接実行すると、 AppPool ID、キーが作成されず、DpapiNG Windows ログでエラーが発生します。

私のコードは次のとおりです。

services.AddDataProtection(opt => opt.ApplicationDiscriminator = ApplicationConfig.dataProtectionApplicationDiscriminator)
            .PersistKeysToFileSystem(new DirectoryInfo(encKeyPath))
            .ProtectKeysWithDpapiNG(string.Format("CERTIFICATE=HashId:{0}", ApplicationConfig.dataProtectionCertThumbprint),
                flags: DpapiNGProtectionDescriptorFlags.None);

Visual Studio からデバッグすると、すべて正常に動作しますが、管理者権限で VS を実行しているため、ここでは権限は問題になりません。

MMC から直接 AppPool アプリ ユーザーのアクセス許可を秘密キー自体に追加しようとしましたが、機能せず、場所へのフル パスにアクセス許可を与えて、ここに記載されているようにキーを作成する必要があります https:/ /docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview (最初のコメントを確認) でも機能しませんでした。

管理者の ID で実行するように AppPool を設定することによってのみ機能させることができましたが、明らかにこれはうまくいきません。これがどこかで許可の問題であることを確認したかっただけです。

助けることができる同じ問題に直面している人はいますか?

よろしく、 アンドレ

4

1 に答える 1