次の方法で共有


CIFS の制約付き委任ACCESS_DENIEDエラーで失敗する

この記事は、中間層サーバーでネットワーク共有を使用するサービスにアクセスするときに発生する アクセス拒否 エラーを修正するのに役立ちます。

元の KB 番号: 2602377

現象

中間層サーバーでネットワーク共有を使用するサービスにアクセスすると、ユーザーは資格情報の入力を求め、最終的に access denied エラーが発生します。

シナリオの例

シナリオ 1

ユーザーは資格情報の入力を求められます。次の条件に該当する場合、アクセスは最終的にアクセス拒否エラーで失敗します。

  • IIS Web サイトは、パススルー認証と CIFS 用に構成された制約付き委任を使用して、リモート共有を指すホーム ディレクトリで設定されます。
  • その共有にアクセスする IIS アプリケーション プールは、サービス アカウントの ID で実行されています。
  • ドメイン アカウントは、ファイル サーバー上の cifs サービスの委任に対して信頼されます。
  • ファイル サーバーと Web サーバーは、[適用対象] セクションに一覧表示されているオペレーティング システムを実行しています。

シナリオ 2

  • Web アプリがユーザーとしてファイル サーバーにアクセスしようとしています。
  • その共有にアクセスする IIS アプリケーション プールは、サービス アカウントの ID で実行されています。 ドメイン アカウントは、ファイル サーバー上の cifs サービスの委任に対して信頼されます。
  • CIFS 用に構成された制約付き委任は、ファイル サーバーのサービス アカウントで構成されます。
  • ファイル サーバーと Web サーバーの種類は、[適用対象] セクションに一覧表示されます。

シナリオ 3:

  • クライアントからアクセスされているサーバー側アプリケーションは、ユーザーとしてリモート共有にアクセスしています。
  • サーバー側アプリケーションは、サービス アカウントのコンテキストで実行されています。
  • サービス アカウントは委任に対して信頼され、ファイル サーバーの CIFS 委任用に構成されます。
  • ファイル サーバーと Web サーバーの種類は、[適用対象] セクションに一覧表示されます。

原因

これは、制約付き委任が関係する場合の MrxSmb 2.0 と Kerberos の間の問題として識別されています。

回避策

回避策 1

CIFS の制約付き委任を実行するアプリケーションの ID として、サービス アカウントの代わりにマシン アカウントを使用します。 ドメインの機能レベルが Windows Server 2003、Windows Server 2008、または Windows Server 2008 R2 の場合は、制約付き委任を構成します。

Web サーバー ドメインのドメイン コントローラーでこれを行うには、次の手順に従います。

  1. [スタート]、[管理ツール] の順にクリックし、[Active Directory ユーザーとコンピュータ] をクリックします。
  2. ドメインを展開し、[コンピュータ] フォルダを展開します。
  3. 右側のウィンドウで、Web サーバーのコンピューター名を右クリックし、[プロパティ] を選択し、[委任] タブをクリックします。
  4. [指定したサービスへの委任に対してこのコンピューターを信頼する] チェック ボックスをオンにします。
  5. [Kerberos のみを使用する] が選択されていることを確認し、[OK] をクリックします。
  6. [追加] をクリックします。 [サービスの追加] ダイアログ ボックスで、[ユーザーまたはコンピューター] をクリックし、IIS からユーザーの資格情報を受け取るファイル サーバーの名前を参照または入力します。 OK をクリックします。
  7. [利用可能なサービス] ボックスの一覧で、CIFS サービスを選択します。 OK をクリックします。

回避策 2

サービス アカウントまたはドメイン アカウントとしてアプリケーションの ID を使用する必要がある場合は、次の回避策を使用します。

Note

この回避策は、コンピューター アカウントで認証プロトコルの委任を使用する必要があるため、推奨されません。 [認証プロトコルを使用する] オプションが選択されている場合、アカウントはプロトコル遷移で制約付き委任を使用します。

  1. [スタート]、[管理ツール] の順にクリックし、[Active Directory ユーザーとコンピュータ] をクリックします。
  2. ドメインを展開し、[コンピュータ] フォルダを展開します。
  3. 右側のウィンドウで、Web サーバーのコンピューター名を右クリックし、[プロパティ] を選択し、[委任] タブをクリックします。
  4. [指定したサービスへの委任に対してこのコンピューターを信頼する] チェック ボックスをオンにします。
  5. [任意の認証プロトコルを使用する] が選択されていることを確認し、[OK] をクリックします。
  6. [追加] をクリックします。 [サービスの追加] ダイアログ ボックスで、[ユーザーまたはコンピューター] をクリックし、IIS からユーザーの資格情報を受け取るファイル サーバーの名前を参照または入力します。 OK をクリックします。
  7. [利用可能なサービス] ボックスの一覧で、CIFS サービスを選択します。 OK をクリックします。
  8. 左側のウィンドウで、[ユーザー] フォルダーを展開します。
  9. 右側のウィンドウで、アプリケーション プールの ID であるサービス アカウントを右クリックし、[プロパティ] を選択して、[委任] タブをクリックします。
  10. [指定したサービスへの委任に対してこのコンピューターを信頼する] チェック ボックスをオンにします。
  11. [Kerberos のみを使用する] が選択されていることを確認し、[OK] をクリックします。
  12. [追加] をクリックします。 [サービスの追加] ダイアログ ボックスで、[ユーザーまたはコンピューター] をクリックし、IIS からユーザーの資格情報を受け取るファイル サーバーの名前を参照または入力します。 OK をクリックします。
  13. [利用可能なサービス] ボックスの一覧で、CIFS サービスを選択します。 [OK] をクリックします。