System.DirectoryServices のコード アクセス セキュリティ

コード アクセス セキュリティとは、コードが持つアクセス権を制限して、リソースや操作を保護するための機構です。コード アクセス セキュリティを使用すると、コードの発行元や、コードの身元を示すその他の基準に基づいて、さまざまなレベルでコードを信頼できるようになります。詳細な情報については、次のページを参照してください。 「Code Access Security」を参照してください。

呼び出し元のセキュリティ要件

System.DirectoryServices.dll および System.DirectoryServices.Protocols.dll ライブラリには、System.DirectoryServices 名前空間、System.DirectoryServices.ActiveDirectory 名前空間、および System.DirectoryServices.Protocols 名前空間の実装が含まれています。これらのライブラリは、セキュリティで保護されたライブラリです。これらのライブラリが公開するクラス、メソッド、およびプロパティにアクセスするためには、呼び出し元が無制限の DirectoryServicesPermission を持っていることが必要になります。

ランタイム コード アクセス セキュリティ システムから完全に信頼されていないアプリケーションは、ライブラリが AllowPartiallyTrustedCallersAttribute でマークされていない限り、共有マネージ ライブラリを呼び出すことはできません。既定では、ローカル イントラネット ゾーンまたはインターネット ゾーンから実行されるコードは、部分的な信頼になっています。.NET Framework 2.0 では、System.DirectoryServices.dll および System.DirectoryServices.Protocols.dll には AllowPartiallyTrustedCallersAttribute が適用されており、部分的な信頼のコンテキストからコードを実行したり、部分的に信頼されたコードからコードを呼び出したりすることが可能です。そのため、呼び出し元は、無制限の DirectoryServicesPermission を付与されている限り、完全に信頼されたアセンブリでなくても、System.DirectoryServices.dll および System.DirectoryServices.Protocols.dll にアクセスできます。

アクセス許可の確認要求

リンク確認要求では、ランタイム時ではなく、Just-In-Time コンパイル時にセキュリティ チェックが実行され、コードの直接の呼び出し元だけがチェックされます。リンク確認要求が通常の確認要求と共に行われる場合、そのリンク確認要求では、完全なスタック ウォークは実行されません。リンク確認要求は、平均的に通常の確認要求よりもかなり高速に実行されますが、リンク確認要求を使用するコードは、攻撃の対象となる可能性があります。リンク確認要求としてマークされているすべてのメソッドまたはクラスの呼び出し元は、アプリケーションの開発者によって必要とされているセキュリティ チェックをすべて実行する必要があります。DemandsLink Demands の詳細な比較については、「Demand vs. LinkDemand」を参照してください。

System.DirectoryServices 名前空間、System.DirectoryServices.ActiveDirectory 名前空間、および System.DirectoryServices.Protocols 名前空間のすべてのエントリ ポイントは、無制限の DirectoryServicesPermission で確認要求を実行します (たとえば、DirectoryEntryDirectorySearcherDirectoryContextLdapConnection、および DsmlSoapHttpConnection のコンストラクタ)。これらのエントリ ポイントは、他の必要なアクセス許可でリンク確認要求を実行します。上記の 3 つの名前空間のクラスおよびメソッドに対して実行できる確認要求の種類の詳細については、リファレンスで System.DirectoryServicesSystem.DirectoryServices.ActiveDirectory、および System.DirectoryServices.Protocols の各名前空間に関するセクションを参照してください。

無制限の DirectoryServicesPermission の付与

既定では、完全に信頼されたアセンブリには無制限の DirectoryServicesPermission が付与されます。このアクセス許可は、Code Access Security Policy Tool (Caspol.exe) である Caspol.exe のようなツールを使用して、他のアセンブリにも明示的に付与することができます。

関連項目

リファレンス

System.DirectoryServices
System.DirectoryServices.ActiveDirectory
System.DirectoryServices.Protocols
DirectoryServicesPermission

概念

System.DirectoryServices の概要

その他の技術情報

Code Access Security
Secure Coding Guidelines
Security Demands

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation. All rights reserved.