完全修飾 URL を使用したローカル サーバー上の IIS への Windows 認証

完全修飾 URL を使用したローカル サーバー上の IIS への Windows 認証

Windows 認証で構成された IIS 7 で Web アプリケーションをセットアップしています。他のマシンから完全修飾 URL 経由でマシンに認証でき、適切なドメインが使用されます。ただし、完全修飾ドメイン経由でマシン自体に接続しようとすると (別のサービス内、または IE 内の URL 経由)、Windows ログイン プロンプトは、ログイン用の適切なドメインではなく、コンピューターをドメインとして使用するように強制します。またはを使用してドメインを指定しようとするとdomain\username失敗[email protected]します。

localhostマシン上で Web アプリケーションを表示することはsite.company.com/webserviceできますが、ログイン ドメインが間違っているため、ローカル マシンでフル スタイルの URL を使用すると機能しないことに注意してください。適切なログイン ドメインを使用するにはどうすればよいでしょうか。

答え1

私も同じことをやろうとしていました。FQDN を使用してローカル IIS 上の Web サイトにアクセスすると、IIS によってアクセス先が指示され続けました。

とにかく、私が調べたところ、ローカル IIS Web サイトのループバック チェックを無効にする必要があるようです。

以下を参照Microsoft サポート ページ

ページが消えてしまった場合、私は次のことを実行しました(これは上記のブログ投稿で推奨されていることです)。

  1. 「実行」の下に「regedit」と入力してレジストリ エディターを開きます。
  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0に移動します。
  3. MSV1_0 を右クリックし、[新規] をクリックして、複数文字列値にすることを選択します。
  4. エントリの名前として BackConnectionHostNames を入力し、ダブルクリックして変更します。
  5. 使用する必要があるホスト名を入力します (たとえば、code-journey.com)。
  6. IISAdmin サービスを再起動します(「スタート」->「管理ツール」->「サービス」)。

お役に立てれば。

cmb..

答え2

これは、LoopbackCheck と呼ばれるセキュリティ機能によるものです。

Windows Server 2003 Service Pack 1 をインストールした後、FQDN または CNAME エイリアスを使用してローカルでサーバーにアクセスしようとすると、エラー メッセージ "アクセスが拒否されました" または "指定されたネットワーク パスはネットワーク プロバイダーによって受け入れられませんでした" が表示される
http://support.microsoft.com/kb/926642

解決策は 2 つあります。

方法 1 (推奨): NTLM 認証要求で参照できるローカル セキュリティ機関のホスト名を作成します。これを行うには、クライアント コンピューター上のすべてのノードに対して次の手順を実行します。

  1. [スタート] をクリックし、[実行] をクリックして、「regedit」と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
  3. MSV1_0 を右クリックし、[新規] をポイントして、[複数文字列値] をクリックします。
  4. [名前] 列に「BackConnectionHostNames」と入力し、Enter キーを押します。
  5. BackConnectionHostNames を右クリックし、[変更] をクリックします。
  6. [値データ] ボックスに、コンピューター上のローカル共有に使用される CNAME または DNS エイリアスを入力し、[OK] をクリックします。

    注意: 各ホスト名を別々の行に入力してください。

    注: BackConnectionHostNames レジストリ エントリが REG_DWORD タイプとして存在する場合は、BackConnectionHostNames レジストリ エントリを削除する必要があります。

  7. レジストリ エディターを終了し、コンピューターを再起動します。

方法 2: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa レジストリ サブキーの DisableLoopbackCheck レジストリ エントリを 1 に設定して、認証ループバック チェックを無効にします。DisableLoopbackCheck レジストリ エントリを 1 に設定するには、クライアント コンピューターで次の手順を実行します。

  1. [スタート] をクリックし、[実行] をクリックして、「regedit」と入力し、[OK] をクリックします。
  2. 次のレジストリ サブキーを見つけてクリックします: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. [Lsa] を右クリックし、[新規] をポイントして、[DWORD 値] をクリックします。
  4. 「DisableLoopbackCheck」と入力し、Enter キーを押します。
  5. [DisableLoopbackCheck] を右クリックし、[変更] をクリックします。
  6. [値データ] ボックスに「1」と入力し、[OK] をクリックします。
  7. レジストリ エディターを終了します。
  8. コンピュータを再起動します。

答え3

SSOの設定経験から言うと、IEはサイトとクライアントがイントラネット上にいる場合、またはサイトが信頼済みゾーンにある場合にのみ、ログオン用のKerberosチケットを自動的に渡します。IEがhttp://site.company.com/webserviceサイトがインターネット上にあると想定し、ログオンの資格情報を渡しません。

このリンクには、IIS、IE、Kerberos に関する役立つ情報がいくつかあります。 http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx

イントラネット上で FQDN を許可するには、Web サーバーに証明書を提供して SSL を使用するか、それを信頼済みゾーンに追加するという 2 つの方法が有効であることが分かりました。

これがあなたのセットアップに役立つことを願っています。

関連情報