次の方法で共有


方法 : Caspol.exe を使用してコード グループを追加する

グループの追加コマンドのサンプル

コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用してコード グループ階層構造にコード グループを追加するときは、新しいコード グループのメンバーシップ条件とアクセス許可セットを定義する必要があります。 また、新しいコード グループの追加先となる親コード グループのラベルまたは名前を定義する必要もあります。 コード グループには、その他のフラグも設定できます。 設定できるフラグの詳細については、「コード アクセス セキュリティ ポリシー ツール (Caspol.exe)」を参照してください。

コード グループをコード グループ階層構造に追加するには

  • コマンド プロンプトに次のコマンドを入力します。

    caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-name name] [-description description text]

    ポリシー レベル オプションは –addgroup オプションの前に指定します。 ポリシー レベル オプションを省略すると、Caspol.exe は、既定のポリシー レベルにコード グループを追加します。 コンピューター管理者に対する既定のレベルはコンピューター ポリシー レベルです。その他のユーザーに対する既定のレベルはユーザー ポリシー レベルです。 上記のコマンドには、次の引数を指定します。

    • 引数 parentLabel は、新しいコード グループの親コード グループのラベルです。 parentLabel の代わりに親コード グループ名 (parentName) を使用することもできます。 親コード グループ名を取得するには、「方法 : Caspol.exe を使用してコード グループを表示する」の手順に従ってコード グループを一覧表示します。

    • 引数 pset_name は、新しいコード グループに関連付けるアクセス許可セットの名前です。 コード グループに名前付きアクセス許可セットを関連付けるには、新しいコード グループを追加するポリシー レベルで、そのアクセス許可セットが認識されている必要があります。 たとえば、ユーザー ポリシーの新しいコード グループに MyPset アクセス許可セットを関連付ける場合は、既に MyPset アクセス許可セットがユーザー ポリシーに追加されている必要があります。 ただし、.NET Framework で用意されている標準アクセス許可セットの 1 つを使用する場合だけは、アクセス許可セットを事前にポリシー レベルに追加する必要はありません。 アクセス許可セットをポリシー レベルに追加する方法については、「方法 : Caspol.exe を使用してアクセス許可セットを追加する」を参照してください。

    • 引数 mship は、新しいコード グループのメンバーシップ条件です。 引数 mship の値については、「コード アクセス セキュリティ ポリシー ツール (Caspol.exe)」を参照してください。

メモメモ

–addgroup オプションでは、コード グループを複数のレベルに同時に追加することはできません。コード グループを複数のレベルに追加する場合は、レベルごとに追加操作を実行してください。これは、異なるコード グループ ラベルと特定のアクセス許可セットの使用が原因で、混乱が生じる可能性があるためです。

グループの追加コマンドのサンプル

ここでは、コード グループを追加する最も一般的なタスクの実行方法について説明します。

イントラネットのコードを対象としたコード グループを追加するには

  • -zone オプションを使用して、メンバーシップ値として Intranet を指定します。

    イントラネットのコードに Everything アクセス許可セットを関連付けるコマンドを次に示します。 このコード グループには、Intranet_CG という名前が付けられます。 この名前は、新しく作成されたコード グループを参照するとき、数値ラベルの代わりに使用できます。

    caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
    

Internet Explorer の信頼済みサイトのコードを対象としたコード グループを追加するには

  • –zone オプションを使用して、メンバーシップ値として Trusted を指定します。

    信頼済みゾーンのコードに LocalIntranet アクセス許可セットを関連付け、新しいコード グループをコード グループ階層構造のルートの子として挿入するコマンドを次に示します。

    caspol -addgroup All_Code -zone Trusted LocalIntranet
    

特定のソフトウェア発行元のコードを対象としたコード グループを追加するには

  • –pub オプションを使用して、証明書ファイル、署名付きファイル、または X.509 証明書の 16 進表現を指定します。

    このメンバーシップ条件を機能させるためには、ソフトウェア発行元のファイルが適切に署名されている必要があります。 メンバーシップ条件は、実際の証明書ファイルまたは署名付き .exe ファイルに基づいて構築できます。

    たとえば、FourthCoffee の証明書ファイル (FourthCoffee.cer) を使用できるとします。 FourthCoffee が発行したコード用のコード グループをコンピューター ポリシーに追加し、このコード グループに Nothing アクセス許可セットを関連付けるコマンドを次に示します。 コード グループはルートの子コード グループとして追加されます。

    caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
    

特定の Web サイトのコードを対象としたコード グループを追加するには

  • –site オプションを使用して、Web サイトの URL を指定します。

    メモメモ

    DNS 名が詐称される可能性を考慮すると、Web サイトをメンバーシップ条件として使用する方法は、コードの識別情報を効率的に確認できる方法とはいえません。できるだけ厳密な名前メンバーシップ条件、発行元メンバーシップ条件、またはハッシュ メンバーシップ条件を使用してください。

    www.microsoft.com のコードに Intranet アクセス許可セットを関連付けるコマンドを次に示します。

    caspol –addgroup 1 –site www.microsoft.com Intranet
    

特定の URL のコードを対象としたコード グループを追加するには

  • –url オプションを使用してサイトの URL を指定します。

    URL には http://、または ftp:// などのプロトコルを含める必要があります。 さらに、ワイルドカード文字 (*) を使用して、特定の URL から複数のアセンブリを指定できます。

    メモメモ

    複数の名前を使用して 1 つの URL を識別できるため、URL をメンバーシップ条件として使用する方法は、コードの識別情報を安全に確認できる方法ではありません。できるだけ厳密な名前メンバーシップ条件、発行元メンバーシップ条件、またはハッシュ メンバーシップ条件を使用してください。

    caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust
    caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
    

ほかのアクセス許可をオーバーライドするコード グループをポリシー レベルに追加するには

  • 新しいコード グループの –exclusive フラグを設定します。

    Intranet_cg コード グループに新しいコード グループを追加するコマンドを次に示します。 信頼済みゾーンの場合は、新しいコード グループによって Everything アクセス許可セットが与えられ、ほかのコード グループから与えられたアクセス許可セットがオーバーライドされます。

    caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
    

コード グループにカスタム メンバーシップ条件を追加するには

  • –custom オプションを使用して、XML にシリアル化されたカスタム メンバーシップ条件を含む XML ファイルを指定します。

    Caspol.exe は、ポリシーでのカスタム メンバーシップ条件の使用をサポートしています。これにより、ポリシー システムの拡張性が大きく向上します。

    新しいコード グループをユーザー ポリシーのルートに追加するコマンドを次に示します。 新しいコード グループには NewMembershipCondition.xml ファイルのカスタム メンバーシップ条件が含まれ、このメンバーシップ条件に一致するアセンブリに完全信頼が与えられます。

    caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
    

名前と説明を付けてコード グループを追加するには

  1. –name オプションを使用してコード グループの名前を指定します。 空白が含まれている名前は二重引用符 (" ") で囲む必要があります。

  2. –description オプションを使用してコード グループの説明を指定します。

指定した名前は、後でコード グループを参照するときに使用できます。 スクリプトを使用してポリシーを変更する場合は、数値ラベルよりも名前を使用すると便利です。

出荷時の既定のポリシーには既定の名前が付いています。 既定の名前を使用すると、管理者によって明示的に変更されている場合を除き、ポリシーやコンピューターを越えた特定のコード グループへのアクセスが簡単になります。

コンピューター ポリシーの All_Code グループにコード グループを追加するコマンドを次に示します。 新しいコード グループは厳密な名前 FourthCoffee を検索し (Signed.exe で見つかります)、同じ署名の付いたすべてのコードに FullTrust を与えます。 コード グループには FouthCoffeeStrongName という名前が付けられ、適切な説明が設定されます。

caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
メモメモ

複数のコード グループに同じ名前が付けられていると、Caspol.exe は、その名前で最初に検出されたコード グループに解決します。コード グループの子コード グループをすべて検索した後に、兄弟グループを検索します。

参照

参照

Caspol.exe (コード アクセス セキュリティ ポリシー ツール)

概念

セキュリティ ポリシー モデル

その他の技術情報

コード アクセス セキュリティ ポリシー ツール (Caspol.exe) によるセキュリティ ポリシーの構成

Caspol.exe によるコード グループの構成