
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 サポート ページ。
ページが消えてしまった場合、私は次のことを実行しました(これは上記のブログ投稿で推奨されていることです)。
- 「実行」の下に「regedit」と入力してレジストリ エディターを開きます。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0に移動します。
- MSV1_0 を右クリックし、[新規] をクリックして、複数文字列値にすることを選択します。
- エントリの名前として BackConnectionHostNames を入力し、ダブルクリックして変更します。
- 使用する必要があるホスト名を入力します (たとえば、code-journey.com)。
- IISAdmin サービスを再起動します(「スタート」->「管理ツール」->「サービス」)。
お役に立てれば。
cmb..
答え2
これは、LoopbackCheck と呼ばれるセキュリティ機能によるものです。
Windows Server 2003 Service Pack 1 をインストールした後、FQDN または CNAME エイリアスを使用してローカルでサーバーにアクセスしようとすると、エラー メッセージ "アクセスが拒否されました" または "指定されたネットワーク パスはネットワーク プロバイダーによって受け入れられませんでした" が表示される
http://support.microsoft.com/kb/926642
解決策は 2 つあります。
方法 1 (推奨): NTLM 認証要求で参照できるローカル セキュリティ機関のホスト名を作成します。これを行うには、クライアント コンピューター上のすべてのノードに対して次の手順を実行します。
- [スタート] をクリックし、[実行] をクリックして、「regedit」と入力し、[OK] をクリックします。
- 次のレジストリ サブキーを見つけてクリックします: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
- MSV1_0 を右クリックし、[新規] をポイントして、[複数文字列値] をクリックします。
- [名前] 列に「BackConnectionHostNames」と入力し、Enter キーを押します。
- BackConnectionHostNames を右クリックし、[変更] をクリックします。
[値データ] ボックスに、コンピューター上のローカル共有に使用される CNAME または DNS エイリアスを入力し、[OK] をクリックします。
注意: 各ホスト名を別々の行に入力してください。
注: BackConnectionHostNames レジストリ エントリが REG_DWORD タイプとして存在する場合は、BackConnectionHostNames レジストリ エントリを削除する必要があります。
レジストリ エディターを終了し、コンピューターを再起動します。
方法 2: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa レジストリ サブキーの DisableLoopbackCheck レジストリ エントリを 1 に設定して、認証ループバック チェックを無効にします。DisableLoopbackCheck レジストリ エントリを 1 に設定するには、クライアント コンピューターで次の手順を実行します。
- [スタート] をクリックし、[実行] をクリックして、「regedit」と入力し、[OK] をクリックします。
- 次のレジストリ サブキーを見つけてクリックします: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
- [Lsa] を右クリックし、[新規] をポイントして、[DWORD 値] をクリックします。
- 「DisableLoopbackCheck」と入力し、Enter キーを押します。
- [DisableLoopbackCheck] を右クリックし、[変更] をクリックします。
- [値データ] ボックスに「1」と入力し、[OK] をクリックします。
- レジストリ エディターを終了します。
- コンピュータを再起動します。
答え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 つの方法が有効であることが分かりました。
これがあなたのセットアップに役立つことを願っています。