IIS のアクセス許可の問題を解決するためのガイドライン

BizTalk Serverでは、Web サービスのサポートと、HTTP、SOAP、およびWindows SharePoint Services アダプターで使用するために、Microsoft インターネット インフォメーション サービス (IIS) を幅広く使用しています。

IIS のアクセス許可に関する問題のトラブルシューティングを行う場合は、IIS でアプリケーション分離がどのように実装されるかを理解しておくと役に立ちます。

IIS には、独自のメモリ領域で実行される個別のホスト プロセスとして IIS アプリケーションを作成するための機能が用意されています。 IIS アプリケーション ホストを作成したら、IIS アプリケーション ホスト プロセス ID と IIS アプリケーション ホスト のユーザー アクセス権という 2 つのアクセス許可セットを定義する必要があります。 IIS のアクセス許可に関する問題のトラブルシューティングでは、上記のアクセス許可セットをそれぞれ調べる必要があります。

Note

プロセス IDユーザー アクセス権は、IIS アプリケーション ホスト プロセスのセキュリティ コンテキストとも呼ばれます。

このトピックでは、IIS アプリケーション ホスト プロセスのプロセス IDユーザー アクセス権 を設定する方法について説明し、IIS のアクセス許可の問題を解決するための一般的なガイドラインをいくつか示します。

IIS アプリケーション ホストのプロセス ID の設定

IIS アプリケーション ホスト プロセスの構成は、ホスト プロセスが提供する機能のレベルによって異なります。 たとえば、静的 HTML ページのみを提供する IIS アプリケーション ホスト プロセスは、通常、ASP ページまたは ASP.NET アプリケーションを提供する IIS アプリケーション ホスト プロセスとは異なる方法で構成されます。

また、IIS アプリケーション ホスト プロセスの構成は、アプリケーションをホストする IIS のバージョンによっても異なります。 Windows Server 2008 (IIS 7.0) で実行されているアプリケーションのホスト プロセス ID は、このアプリケーションに関連付けられているアプリケーション プールの ID によって決まります。

Windows Server 2008 または Windows Vista 上の IIS 7.0 の IIS プロセス ID の設定

  1. [ スタート]、[ すべてのプログラム] の順にクリックし、[ インターネット インフォメーション サービス (IIS) 7 マネージャー] をクリックします。

  2. インターネット インフォメーション サービス (IIS) マネージャーで、コンピューター名> (ユーザー アカウント) を展開<し、 [アプリケーション プール] をクリックします。

  3. アプリケーション プールを右クリックし、[ アプリケーションの表示 ] をクリックして、アプリケーション プールに関連付けられているアプリケーションを表示します。

  4. アプリケーション プールを右クリックし、[ 詳細設定] をクリックして、アプリケーション プールの [詳細設定] ダイアログを表示します。

  5. [詳細設定] ダイアログ ボックスの [プロセス モデル] セクションの [ID] の横にある省略記号 (...) ボタンをクリックして、アプリケーション プールの ID を変更します。

IIS サーバーのユーザー アクセス権の設定

プロセス ID では実行中の IIS アプリケーション ホスト プロセスで使用できるセキュリティ コンテキストを管理しますが、ユーザーのアクセス許可では、提供される Web ページに実際にアクセスしているアカウントのセキュリティ コンテキストを管理します。 アクセス許可エラーを回避するには、両方のセキュリティ コンテキストに対してアクセス許可を適切に設定する必要があります。

IIS 7.0 では、次のユーザー認証方式がサポートされます。

  • 匿名アクセス: ユーザーが匿名接続を確立できるようにします。 IIS サーバーは、指定された guest アカウントでユーザーをログオンさせます。

  • ASP.NET 偽装 IIS によって認証されたユーザーとして、または設定した任意のアカウントとして、2 つの異なるコンテキストのいずれかでアプリケーションを実行できるようにします。

  • 基本認証: 暗号化されていない形式のプレーンテキストでネットワーク経由でパスワードを送信します。

  • ダイジェスト認証: Active Directory アカウントでのみ機能し、プレーンテキスト パスワードではなく、ネットワーク経由でハッシュ値を送信します。 ダイジェスト認証は、プロキシ サーバーやその他のファイアウォールの枠を越えて機能し、WebDAV (Web Distributed Authoring and Versioning) ディレクトリで使用できます。 ダイジェスト認証を使用するには、まず匿名認証を無効にする必要があります。

  • フォーム認証 パブリック サーバー上のトラフィックの多いサイトまたはアプリケーションの認証に対応します。 フォーム認証を使用すると、オペレーティング システムによって提供される認証メカニズムに依存することなく、クライアントの登録と認証をアプリケーション レベルで管理できます。

  • Windows 認証: Windows ドメインの認証を使用してクライアント接続を認証します。

IIS 7.0 で仮想ディレクトリのユーザー アクセス権を設定するには

  1. インターネット インフォメーション サービス (IIS) マネージャーの [接続] ウィンドウで、[コンピューター名>]、[サイト]、[既定の Web サイト] を展開<します。

  2. 仮想ディレクトリをクリックして選択し、[ワークスペース] ウィンドウの下部にある [機能] ビュー をクリックして、仮想ディレクトリの構成可能な機能を一覧表示します。

  3. [ワークスペース] ウィンドウの [認証 ] 機能をダブルクリックして、仮想ディレクトリで有効になっている認証方法を一覧表示します。

  4. 有効または無効にする認証方法をクリックして選択し、IIS マネージャーの [操作] ウィンドウで [無効] または [有効] をクリックします。

    Note

    [匿名アクセスを有効にする] が有効になっている場合、IIS は、他の有効な認証方法でユーザー アクセス権を設定する前に、構成された匿名ユーザー ID としてユーザー アクセス権を設定します。

    匿名ユーザー ID を構成するには、 匿名認証 方法を右クリックし、[ 編集 ] をクリックして [ 匿名認証資格情報の編集 ] ダイアログを表示します。

IIS のアクセス許可の問題を解決するための一般的なガイドライン

IIS のアクセス許可に関するトラブルシューティングを行うには、次の手順を実行します。

  1. IIS サーバー コンピューターのアプリケーション ログでエラーの有無を確認します。

  2. 「IIS 7.0: IIS 7.0 での失敗した要求のトレースの構成」の手順に従って、IIS 7.0 コンピューターのアクセス許可に関する問題のトラブルシューティングを行います。

  3. IIS サーバーの IIS ログ ファイルで HTTP 401 エラーの有無を確認します。

    既定では、Windows Server 2008 コンピューターまたは Windows Vista コンピューターの IIS ログ ファイルは、次のディレクトリにあります。

    C:\inetpub\logs\LogFiles\W3SVC1\

    • IIS 7.0 コンピューターの IIS ログ ファイルに HTTP 401 エラーが含まれている場合は、Microsoft サポート技術情報の記事「IIS 7.0 の HTTP 状態コード」 https://support.microsoft.com/kb/943891 943891の手順に従って、サブステータス コードを特定し、ステータス コードに基づいてアクセス許可の問題をトラブルシューティングします。

    • HTTP 401 エラーに関連付けられている cs-username フィールドの値を確認します。 このフィールドには、IIS サーバーにアクセスした認証ユーザーの名前が格納されています。 匿名ユーザー アカウントの場合、このフィールドの値はハイフン (-) になります。 このアカウントに、該当するリソースへのアクセス許可が付与されていることを確認してください。

  4. IIS アプリケーションで使用するプロセス ID の資格情報が正しく設定されていること、およびアカウントに適切なアクセス許可が付与されていることを確認します。 プロセス ID に使用されているアカウントに十分なアクセス許可がない場合は、アカウントを変更するか、アカウントに適切なアクセス許可を付与します。

  5. 「トラブルシューティングに使用するツールとユーティリティ」で説明されている RegMon ユーティリティと FileMon ユーティリティを使用して、ファイルまたはレジストリのアクセス許可の問題を診断します。

参照

BIZTALK SERVERアクセス許可のトラブルシューティングIIS 7.0: IIS 7.0 での認証の構成