次の方法で共有


方法 : マップされた Windows ドメイン ユーザーを使用して SQL Server にアクセスする

更新 : 2007 年 11 月

ASP.NET アプリケーションは、Microsoft Windows 2000 および Microsoft Windows XP では既定でローカル ユーザー アカウント ASPNET のコンテキストで実行され、Windows Server 2003 ではローカル ユーザー アカウント NETWORK SERVICE のコンテキストで実行されます。これらのユーザー アカウントでは、アクセス権が制限されています。ただし、ASPNET アカウントは Web サーバーに対してローカルです。ASPNET アカウントは Web サーバーに対してローカルであるため、リモート コンピュータではユーザーとして認識されません。この制限を回避するためには、Web サーバーと、Microsoft SQL Server を実行しているコンピュータの両方で認識される Windows ドメイン ユーザーのコンテキストでアプリケーションを実行します。

アプリケーション プロセスを、Windows ドメイン ユーザー アカウントにマップするには、次のように設定する必要があります。

  • Web サーバー

    指定した Windows ドメイン ユーザー アカウントが Web アプリケーションを実行するのに適切な (最低限の) ユーザー権限を保有している必要があります。

  • アプリケーション

    ASP.NET がドメイン ユーザー アカウント名を認識できるように、Web.config ファイルを設定する必要があります。

    2xzyzb0f.alert_note(ja-jp,VS.90).gifメモ :

    Machine.config ファイルと Web.config ファイルの詳細については、「ASP.NET 構成の概要」を参照してください。

  • 接続文字列。

    アプリケーションで接続オブジェクトの接続文字列を作成する場合、接続文字列で Windows 統合キュリティが使用されるように指定する必要があります。

  • SQL Server

    指定されたドメイン ユーザー アカウントを SQL Server ログイン ユーザーとして追加します。

Web サーバーでのユーザー アカウントの設定

Windows ドメイン ユーザー アカウントのユーザー アクセス権を設定するには

  1. Web サーバーで Windows 管理ツールを使用し、マップされた Windows ドメイン ユーザー アカウントに必要なユーザー権限が設定されているかどうかを確認します。

    詳細については、「ASP.NET の必須アクセス制御リスト (ACL)」を参照してください。

  2. -ga スイッチを使用して aspnet_regiis.exe を実行し、アプリケーションの偽装に使用する ID に必要な共通のユーザー権限を付与します。

Windows ユーザー アカウントへのマップと偽装の有効化

ドメイン ユーザー アカウントに適切なユーザー権限を設定した後、アプリケーション ID の偽装を設定します。

2xzyzb0f.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

Web.config ファイルにユーザーの資格情報を設定すると、セキュリティが脆弱になる可能性があります。Web.config ファイルを格納しているディレクトリへのアクセス権を持つユーザーはこのファイルを読み取ることができるので、資格情報を参照できます。この脆弱性から保護する方法の詳細については、「保護された構成を使用した構成情報の暗号化」を参照してください。

Web アプリケーションに偽装を設定するには

  • アプリケーションの Web.config ファイルを開き、次の ID 偽装コードを追加します。

    <identity impersonate="true" userName="domain\username" password="********"/>
    

    この例に示した値を正しいパスワードに置き換えてください。

    2xzyzb0f.alert_note(ja-jp,VS.90).gifメモ :

    Web.config ファイルの要素は大文字と小文字を区別します。

接続文字列で Windows セキュリティを使用する

最後に、データベース アクセス用の接続文字列を作成するときに、Windows 統合セキュリティを使用するように接続文字列を設定します。

接続文字列で Windows 統合セキュリティを使用するには

  • アプリケーションの接続文字列を作成する場合は、ユーザー名およびパスワードを含めないでください。接続文字列に対して Integrated Security 属性を SSPI に設定します。

    適切な属性を含んだ接続文字列の例を次に示します。

    data source=myserver;initial catalog=northwind;Integrated Security=SSPI
    

統合セキュリティ用に SQL Server を設定するには

  1. Windows で、[スタート] をクリックし、[Microsoft SQL Server] をポイントしてから、[Enterprise Manager] をクリックします。

  2. サーバーのノードを開き、ユーザー権限を与えるデータベースのノードを展開します。

  3. [ユーザー] を右クリックし、[新規データベース ユーザー] をクリックします。

  4. [データベース ユーザーのプロパティ] ダイアログ ボックスで、[ログイン名] ボックスに、domain\username の形式で入力し、[OK] をクリックします。

参照

概念

ASP.NET の偽装