保護された構成プロバイダの指定
更新 : 2007 年 11 月
ProtectedConfigurationProvider クラスを使用すると、Web.config ファイルのセクションを暗号化および復号化できます。.NET Framework に含まれる保護された構成プロバイダの一覧を次に示します。
DpapiProtectedConfigurationProvider。Windows データ保護 API (DPAPI: Data Protection API) を使用してデータを暗号化および復号化します。
RsaProtectedConfigurationProvider。RSA 暗号化アルゴリズムを使用してデータを暗号化および復号化します。
この 2 つのプロバイダのデータ暗号化機能は共に強力です。ただし、Web ファームなどの複数のサーバーで同じ暗号化された構成ファイルを使用する場合、暗号キーをエクスポートして別のサーバーにインポートできるのは RsaProtectedConfigurationProvider だけです。
.NET Framework では、独自の保護された構成プロバイダを定義することもできます。詳細については、「保護された構成プロバイダの実装」を参照してください。
保護された構成プロバイダの構成
プロバイダは、独自の保護された構成プロバイダを指定するか、または ASP.NET に組み込まれているプロバイダの 1 つを使用できます。既定では、Machine.config ファイルに次のような保護された構成プロバイダが指定されています。
RsaProtectedConfigurationProvider という RsaProtectedConfigurationProvider のインスタンス。既定のプロバイダです。
DataProtectionConfigurationProvider という DpapiProtectedConfigurationProvider のインスタンス。
保護された構成プロバイダは、構成ファイルの configProtectedData セクションで指定します。カスタム設定を使用して独自のプロバイダを指定する場合は、providers 要素の add 要素を使用して新しいプロバイダのインスタンスを宣言します。各自のプロバイダのインスタンスを既定のプロバイダとして指定するには、configProtectedData 要素の defaultProvider 属性を使用します。
SampleProvider という名前の RsaProtectedConfigurationProvider のインスタンスを構成して既定のプロバイダとして指定する例を次に示します。
<configuration>
<configProtectedData defaultProvider="SampleProvider">
<providers>
<add name="SampleProvider"
type="System.Configuration.RsaProtectedConfigurationProvider,
System.Configuration, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="SampleKeys"
useMachineContainer="true" />
</providers>
</configProtectedData>
</configuration>
構成セクションを暗号化する場合は、保護された構成プロバイダのインスタンスの名前を使用します。詳細については、「構成セクションの暗号化と複合化」を参照してください。
保護された構成プロバイダのオプション
それぞれの保護された構成プロバイダは、構成ファイルのプロバイダの宣言にある属性を使用して設定できるオプションを公開します。すべてのプロバイダにはプロバイダ インスタンスの keyName と共に type 属性と description 属性が必要です。それ以外のオプションは、個々のプロバイダの種類によって異なります。
RsaProtectedConfigurationProvider の構成オプションの説明を次の表に示します。
属性 |
説明 |
---|---|
type |
保護された構成プロバイダの型。RsaProtectedConfigurationProvider の型定義を次の例に示します。
|
description |
プロバイダ インスタンスの説明。 |
keyContainerName |
Web.config ファイルの内容を暗号化または復号化するために使用する RSA キー コンテナの名前。
メモ :
ASP.NET プロセスには、指定された RSA キー コンテナへの読み取りアクセス権が必要です。RSA キー コンテナへのアクセス権は、Aspnet_regiis.exe ツールで -pa スイッチを使用して認可できます。詳細については、「保護された構成 RSA キー コンテナのインポートとエクスポート」を参照してください。
|
useMachineContainer |
RSA キー コンテナがマシンレベルのキー コンテナの場合は true、ユーザーレベルのキー コンテナの場合は false。詳細については、「保護された構成を使用した構成情報の暗号化」を参照してください。 |
useOAEP |
暗号化および復号化に OAEP (Optimal Asymmetric Encryption Padding) を使用する場合は true、使用しない場合は false。詳細については、RSAOAEPKeyExchangeFormatter クラスを参照してください。 |
cspProviderName |
Windows Crypto API 暗号化サービス プロバイダ (CSP) の名前。詳細については、「ProviderName」を参照してください。 |
DpapiProtectedConfigurationProvider の構成オプションの説明を次の表に示します。
属性 |
説明 |
---|---|
type |
保護された構成プロバイダの型。DpapiProtectedConfigurationProvider の型定義を次の例に示します。
|
description |
プロバイダ インスタンスの説明。 |
keyEntropy |
他のアプリケーションが暗号化された情報を復号化できないようにするために暗号キーに含めるアプリケーション固有の値。詳細については、Windows データ保護 API (DPAPI) の CryptProtectData メソッドの OptionalEntropy パラメータを参照してください。 |
useMachineProtection |
マシン固有の保護を使用する場合は true、ユーザー アカウント固有の保護を使用する場合は false。true にすると、コンピュータ上で実行されている任意のプロセスがデータの保護を解除できるようになるため、アクセス制御リスト (ACL: Access Control List) を使用して暗号化されたデータへのアクセスを制限することをお勧めします。詳細については、Windows データ保護 API (DPAPI) の CryptProtectData メソッドの dwFlags パラメータの CRYPTPROTECT_LOCAL_MACHINE 値を参照してください。 |
参照
処理手順
チュートリアル : 保護された構成を使用した構成情報の暗号化