trust 要素 (ASP.NET 設定スキーマ)

[このドキュメントはプレビューのみを目的としており、以降のリリースで変更される可能性があります。プレースホルダーとして空白のトピックが含まれています。]

アプリケーションに適用するコード アクセス セキュリティ (CAS: Code Access Security) のレベルを設定します。 この要素は、Full より下の信頼レベルの Web アプリケーションを実行する場合に使用します。

<trust 
   hostSecurityPolicyResolverType ="security policy resolution type"
   legacyCasModel = "[True|False]"
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   permissionSetName = "name of the permission set"
   processRequestInApplicationTrust = "[True|False]" 
/>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

Description

hostSecurityPolicyResolverType

省略可能な String 型の属性です。

カスタム セキュリティ ポリシーの解決の種類を指定します。 この属性に空の文字列が設定されている場合、ASP.NET は既定のポリシーを使用してアセンブリのアクセス許可を決定します。 アクセス許可を評価する既定のポリシーでは、グローバル アセンブリ キャッシュ (GAC) アセンブリには完全な信頼、それ以外のアセンブリには部分信頼が付与されます。

この属性には null 値を設定できません。

既定値は空の string です。

legacyCasModel

省略可能な Boolean 型の属性です。

レガシ コード アクセス セキュリティ (CAS) が有効かどうかを指定します。

レガシ コード アクセス セキュリティが有効な場合は、次のセキュリティ ルールが適用されます。

  • コード アクセス セキュリティ (CAS) ポリシーは、コンピューター ポリシーと指定された ASP.NET 部分信頼ポリシー ファイルの組み合わせによって確立されます。

  • 部分的に信頼されたアプリケーション ドメインは、アプリケーション ドメイン レベルで完全な信頼に戻ります。

  • .NET Framework インストール ディレクトリの CONFIG ディレクトリのレガシ部分信頼ファイルは、同じディレクトリにある新しい部分信頼構成ファイルの代わりに使用されます。 レガシ ファイルには、.NET Framework 1.1 または .NET Framework 2.0 SP1 にあるメンバーシップ条件も含まれます。

  • 追加のメンバーシップ条件がアクセス許可の評価に適用されます。 これらの条件は、ASP.NET 部分信頼ファイルに定義されています。 .NET Framework 4 のリリースに付属の CONFIG ディレクトリには、レガシ部分信頼ポリシー ファイルも含まれます。 これらのファイルは、名前にレガシが付いて、.NET Framework 2.0 SP1 セクションを含んでいます。 これらのセクションには、アセンブリに対して CAS ポリシーを評価するために必要な、空でないメンバーシップ条件が含まれています。

  • ASP.NET アプリケーションが部分信頼で実行され、その信頼レベルに対するセキュリティ ポリシー ファイルが既定の部分信頼の構成ファイルの 1 つにマップされている場合、ASP.NET は自動的に対応するレガシ構成ファイルを選択します。 たとえば、通常ならば Web_mediumtrust.config からセキュリティ ポリシーが読み込まれる場合、レガシ モードでは ASP.NET が代わりに Legacy.web_mediumtrust.config からセキュリティ ポリシーを読み込みます。

既定値 false です。

level

必須の String 属性です。

アプリケーションが実行される信頼レベルを指定します。 各信頼レベルは、構成ファイルに指定された trustLevel 要素を使用する個々の XML ポリシー ファイルに割り当てられます。 このポリシー ファイルは、各信頼レベルで与えられるアクセス許可セットのリストです。 ASP.NET およびポリシー ファイルについては、「ASP.NET Trust Levels and Policy Files」を参照してください。

この属性は、一致するセキュリティ ポリシーのマップが securityPolicy 要素 (ASP.NET 設定スキーマ) 要素の trustLevel 要素で定義されている場合は、ユーザー定義の値にできます。または、次の値のいずれかを使用できます。下の値ほど制限が強くなります。

値Description
Full 無制限のアクセス許可を指定します。オペレーティング システムのセキュリティの影響下にあるリソースにアクセスするためのアクセス権限を ASP.NET アプリケーションに与えます。特権を必要とするすべての操作がサポートされます。この設定は、AspNetHostingPermissionLevel 列挙体では Unrestricted という名前です。
High 高レベルのコード アクセス セキュリティを指定します。つまり、アプリケーションは既定で次の処理を行うことができません。
  • アンマネージ コードの呼び出し

  • サービス コンポーネントの呼び出し

  • イベント ログへの書き込み

  • Microsoft Message Queuing キューへのアクセス

  • ODBC、OleDb、または Oracle データ ソースへのアクセス

Medium 中レベルのコード アクセス セキュリティを指定します。つまり、High の制限に加えて、ASP.NET アプリケーションは既定で次の処理を行うことができません。
  • アプリケーション ディレクトリの外部にあるファイルへのアクセス

  • レジストリへのアクセス

  • ネットワークまたは Web サービスの呼び出し (たとえば System.Net.HttpWebRequest クラスを使用した呼び出し)

Low 低レベルのコード アクセス セキュリティを指定します。つまり、Medium の制限に加えて、アプリケーションは既定で次の処理を行うことができません。
  • ファイル システムへの書き込み

  • Assert メソッドを呼び出します。

Minimal 最小レベルのコード アクセス セキュリティを指定します。つまり、アプリケーションには実行のアクセス許可しかありません。

既定値は Full (制限なし) です。

originUrl

省略可能な String 属性です。

Medium の信頼レベルで構成する制限付きの WebPermission アクセス許可で使用する URL を指定します。 存在する場合、これは HttpWebRequest など一部のクラスに使用でき、WebPermission により指定される特定の URL にのみ接続が許可されます。 この属性により、ホストの概念に依存するアクセス許可が正常に機能できます。

permissionSetName

省略可能な String 型の属性です。

アクセス許可セットの名前を指定します。

既定値は "ASP.Net" です。

processRequestInApplicationTrust

省略可能な Boolean 型の属性です。

信頼度ポリシー ファイル (ASP.NET アプリケーションに適用されます) 内に構成したアクセス許可に、ページ要求を自動的に制限するかどうかを指定します。

信頼度ポリシー ファイルは、securityPolicy 要素内の trustLevel 要素で指定します。 各 ASP.NET アプリケーションには、trust 要素の level 属性を使用して 1 つの信頼度ポリシーが適用されます。

False に設定すると、level 属性に異なる信頼レベルを指定した場合でも、Full の信頼レベルで ASP.NET の要求が実行される可能性があります。 これを行う特定の理由がある場合以外は、この属性を既定の true からリセットしないでください。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は、True です。

子要素

なし。

親要素

要素

Description

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルで必要なルート要素を指定します。

system.web

構成ファイルの ASP.NET 構成設定のルート要素を指定します。ASP.NET Web アプリケーションを構成する構成要素やアプリケーションの動作を制御する構成要素が含まれます。

解説

trust 要素は、アプリケーションに適用するコード アクセス セキュリティ (CAS) のレベルを構成します。 セキュリティ ポリシー ファイルは、securityPolicy コレクション要素内の信頼レベル名に割り当てられます。 このポリシー ファイルは、その信頼レベルで与えられるアクセス許可セットのリストです。 trust 要素は、ASP.NET アプリケーションに適用される信頼レベルを指定します。 ASP.NET およびポリシー ファイルについては、「ASP.NET Trust Levels and Policy Files」を参照してください。

既定では、Web アプリケーションは Full の信頼レベルで実行されます。 "完全信頼" (信頼レベルが Full) のアプリケーションには、コード アクセス セキュリティ ポリシーによって無制限のコード アクセス許可が与えられます。 このアクセス許可には、組み込みのシステム アクセス許可とカスタム アクセス許可が含まれます。 これは、セキュリティで保護されたリソースへのアプリケーションのアクセスがコード アクセス セキュリティによって阻止されないことを意味します。 リソースへのアクセスが成功するか失敗するかは、オペレーティング システム レベルのセキュリティのみによって決まります。 Full 以外の信頼レベルで構成されている場合、アプリケーションは "部分的に信頼されたアプリケーション" と呼ばれます。 部分的に信頼されたアプリケーションは制限されたアクセス許可を持っており、アプリケーションのセキュリティで保護されたリソースへのアクセスが制限されます。

ホスト環境のセキュリティを強化するには、ルート Web.config ファイル内で location 要素を使用して、ホストされるアプリケーションの securityPolicy 要素と trust 要素を囲みます。また、よりローカルな Web.config ファイルの設定をアプリケーションがオーバーライドしないように allowOverride="False" 属性を指定します。 ホストされるアプリケーションごとに異なる信頼レベルを構成する場合、オプションとして複数の location 要素を path 属性ごとに利用することもできます。 この種類の構成の例については、このトピックで後述する「使用例」を参照してください。

注意

.NET Framework Version 1.0 上に構築された Web アプリケーションは、常に Full の信頼レベルで実行されます。それは、System.Web に含まれる型によって完全信頼の呼び出し元が要求されるからです。新しいバージョンの .NET Framework にアップグレードする場合は、必ず既存のアプリケーションをテストしてから、信頼レベルを変更するようにしてください。

既定の構成

次の既定の trust 要素は、ルートの Web.config ファイルで構成されます。

<location allowOverride="true">
<system.web>
   <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low" policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust 
      level="Full" 
      originUrl="" 
      processRequestInApplicationTrust="true" 
   />
</system.web>
</location>

使用例

ルート Web.config ファイルを使用して、サーバー上のすべての ASP.NET アプリケーションに Medium 信頼レベル設定を指定し、設定をロックする location 要素を指定する方法を次のコード例に示します。 同じ構成ファイルに含まれるもう 1 つの location 要素を使用すると、Default Web Site/Temp アプリケーションの Web.config ファイルがルート Web.config ファイルの設定をオーバーライドできます。

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

<location allowOverride="false">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

<location allowOverride="true" path="Default Web Site/Temp">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

要素情報

構成セクション ハンドラー

TrustSection

構成メンバー

AspNetHostingPermission

構成できる場所

Machine.config

ルート レベルの Web.config

アプリケーション レベルの Web.config

要件

Microsoft Internet Information Services (IIS) バージョン 5.0、5.1、または 6.0

.NET Framework Version 1.0、1.1、または 2.0

Microsoft Visual Studio 2003 または Visual Studio 2005

参照

処理手順

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Reference

system.web 要素 (ASP.NET 設定スキーマ)

configuration 要素 (全般設定スキーマ)

securityPolicy の trustLevel 要素 (ASP.NET 設定スキーマ)

securityPolicy 要素 (ASP.NET 設定スキーマ)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

概念

ASP.NET Trust Levels and Policy Files

ASP.NET Trust Levels and Policy Files

Securing Configuration

Configuration Inheritance

その他の技術情報

ASP.NET Web Application Security

Administering Security Policy

全般構成設定 (ASP.NET)

ASP.NET 構成設定

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API