アクセス許可の増加

更新 : 2007 年 11 月

マネージ アプリケーションを実行するために、現在のポリシーで許可されているよりも多くのアクセス許可が必要とされる場合は、そのアプリケーションがどのように作成されているかに応じて、例外がスローされたり、そのアプリケーションを実行できなかったり、アプリケーションが正常に機能しなかったりします。アクセス許可表示ツール (Permview.exe) を使用すると、アセンブリによって要求された最小限のアクセス許可、オプションのアクセス許可、および拒否されたアクセス許可を参照でき、アセンブリが要求したそれらのアクセス許可と、アセンブリに実際に付与されたアクセス許可とを比較できます。ただし、このツールでは、宣言構文を使用してアプリケーションが明示的に要求したアクセス許可しか表示されません。この情報を基に、管理者は新しいカスタム コード グループを作成し、そのカスタム コード グループを、アプリケーションが正常に実行されるために必要なすべてのアクセス許可を含んだ新しいカスタム アクセス許可セットに関連付けることによって、アセンブリに与えられるアクセス許可を増やすことができます。ただし、アクセス許可を増やすのはアプリケーションのソースを信頼できる場合だけに限り、ソースを信頼するのは十分に信頼できる証拠がある場合だけに限ってください。多くの場合、管理者は複数のカスタム コード グループを作成し、類似のアクセス許可を必要とするアプリケーションをまとめて、それらのコード グループに分類します。

たとえば、ネットワーク共有から複数のユーザーが頻繁にアクセスするアプリケーションがあるとします。アンマネージ コンテキストでは、このような場合、アプリケーションの実行に問題が生じることはありません。しかし、マネージ コンテキストでは、このアプリケーションはローカル イントラネット ゾーンが発生元であるため、与えられるアクセス許可セットが制限される可能性があります。たとえば、アプリケーションに完全な印刷権が与えられないと、そのアプリケーションの実用性は限られてしまいます。このような場合は、ローカル イントラネット ゾーン全体の設定を緩めるのではなく、次のようにする必要があります。

  1. アクセス許可表示ツール (Permview.exe) を使用して、アクセス許可を増やす対象のアセンブリが要求している最小限のアクセス許可を参照します。これらのアクセス許可は、アプリケーションを実行するために最低限必要なアクセス許可です。

  2. アセンブリ固有の特性を識別します。この特性には、アセンブリの厳密な名前、公開キー、ハッシュ、一意のカスタム属性などが含まれます。アプリケーションの発生元が信頼されているサーバーの場合は、サーバーの場所もアプリケーションを識別するために使用できます。これらの特性を持つすべてのコードを信頼することにします。

  3. メンバシップに対して一意の識別子を必要とする新しいコード グループを作成します。コード グループを作成するには、.NET Framework 構成ツール (Mscorcfg.msc) またはコード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用します。

  4. .NET Framework 構成ツールまたはコード アクセス セキュリティ ポリシー ツールを使用して、アセンブリを実行するために最低限必要とするアクセス許可をすべて含んだ新しいアクセス許可セットを作成します。

  5. .NET Framework 構成ツールまたはコード アクセス セキュリティ ポリシー ツールを使用して、新しいアクセス許可セットを新しいコード グループに関連付けます。

上の手順が完了すると、アプリケーションは実行できるようになり、十分なアクセス許可を与えられるようになります。また、信頼性の低いアプリケーションに対しては追加のアクセス許可は与えられないため、システムを不正なコードから保護するのに役立ちます。セキュリティ ツールを使用して特定のタスクを実行する方法については、「セキュリティ ポリシーの設定」を参照してください。

参照

その他の技術情報

一般的なセキュリティ ポリシー管理

セキュリティ ポリシーの実施