方法 : Caspol.exe を使用してコード グループを追加する
更新 : 2007 年 11 月
グループの追加コマンドのサンプル
コード アクセス セキュリティ ポリシー ツール (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
名前と説明を付けてコード グループを追加するには
–name オプションを使用してコード グループの名前を指定します。空白が含まれている名前は二重引用符 (" ") で囲む必要があります。
–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)