Share via


方法 : 企業内のエンドポイントをロックダウンする

大規模な企業では、多くの場合、企業のセキュリティ ポリシーに準拠してアプリケーションを開発する必要があります。ここでは、コンピュータにインストールされているすべての Windows Communication Foundation (WCF) クライアント アプリケーションを検証できるクライアント エンドポイント検証を開発してインストールする方法を説明します。

この場合、このエンドポイント動作は machine.config ファイルのクライアントの <commonBehaviors> セクションに追加されるため、検証コントロールはクライアント検証コントロールです。WCF は、クライアント アプリケーションだけを対象に共通のエンドポイント動作を読み込み、サービス アプリケーションだけを対象に共通のサービス動作を読み込みます。サービス アプリケーション用のこの同じ検証コントロールをインストールするには、検証コントロールがサービス動作であることが必要です。詳細な情報については、次のページを参照してください。 「<commonBehaviors>」のセクションを参照してください。

Aa751866.Important(ja-jp,VS.90).gif メモ :
アプリケーションが部分信頼環境で実行されている場合、構成ファイルの <commonBehaviors> セクションに追加された AllowPartiallyTrustedCallersAttribute 属性 (APTCA) でマークされていないサービス動作またはエンドポイント動作は実行されません。この場合、動作が実行されなくても、例外はスローされません。検証コントロールなどの共通動作を強制的に実行するには、次のいずれかを行う必要があります。

-- 共通動作を AllowPartiallyTrustedCallersAttribute 属性でマークし、部分信頼アプリケーションとして配置したときに実行できるようにします。APTCA でマークされたアセンブリを実行できないように、コンピュータでレジストリ エントリを設定できます。詳細な情報については、次のページを参照してください。 「How to: Make APTCA Assemblies Inaccessible to Partially Trusted Code」を参照してください。

-- アプリケーションが完全信頼アプリケーションとして配置されている場合に、ユーザーが部分信頼環境でアプリケーションを実行するようにコード アクセス セキュリティ設定を変更できないことを確認します。ユーザーがこのような変更を行うことができる場合、カスタム検証コントロールは実行されず、例外もスローされません。これを確認する方法については、Code Access Security Policy Tool (Caspol.exe) を使用した levelfinal オプションを参照してください。

詳細については、「部分信頼のベスト プラクティス」および「サポートされている配置シナリオ」を参照してください。

エンドポイント検証コントロールを作成するには

  1. Validate メソッドに、必要な検証手順を備えた IEndpointBehavior を作成します。コード例を次に示します。

  2. 手順 1. で作成したエンドポイント検証コントロールを登録する新しい BehaviorExtensionElement を作成します。このコード例を次に示します。

  3. コンパイル済みのアセンブリが厳密な名前で署名されていることを確認します。詳細については、「Strong Name Tool (Sn.exe)」および言語のコンパイラ コマンドを参照してください。

検証コントロールをターゲット コンピュータにインストールには

  1. 適切な機構を使用してエンドポイント検証をインストールします。企業では、グループ ポリシーと Systems Management Server (SMS) を使用してインストールします。

  2. Global Assembly Cache Tool (Gacutil.exe) を使用して、厳密な名前付きのアセンブリをグローバル アセンブリ キャッシュにインストールします。

  3. System.Configuration 名前空間の型を使用して、次の処理を行います。

    1. 完全修飾型名を使用して、<behaviorExtensions> セクションに拡張を追加し、要素をロックします。
    2. 動作要素を <commonBehaviors> セクションの EndpointBehaviors プロパティに追加して要素をロックします (サービスの検証コントロールをインストールするには、検証コントロールが IServiceBehavior であることが必要です。また、検証コントロールを ServiceBehaviors プロパティに追加する必要があります)。手順 a. と b. の後に、厳密な名前が存在しないという例外を 1 つだけ設定した適切な構成を次のコード例に示します。
    3. machine.config ファイルを保存します。次のコード例では、手順 3. にあるすべてのタスクを実行しますが、変更された machine.config ファイルのコピーはローカルに保存されます。

次のコード例では、machine.config ファイルに共通の動作を追加し、そのコピーをディスクに保存する方法を示します。InternetClientValidatorBehavior は、「Security Validation」のサンプルから引用しています。

セキュリティ

また、構成ファイルの要素を暗号化する必要がある場合もあります。詳細については、「参照」を参照してください。

関連項目

その他の技術情報

Encrypting configuration file elements using DPAPI
Encrypting configuration file elements using RSA