web-dev-qa-db-ja.com

IISおよび統合Windows認証-ログインはdomain.comでは機能せず、IPアドレス、ローカルホスト、127.0.0.1では機能します

Windows Server 2003R2とIISロール(Active Directoryロールなし)をインストールしました。「test」という名前の仮想ディレクトリを「test」仮想ディレクトリの「セキュリティ」タブにセットアップしました。匿名ログインを無効にし、統合Windows認証を有効にしました。サーバーはローカルネットワーク上にあります。ブラウザを使用してサーバーのtest /ディレクトリにアクセスします。ログは次のとおりです。

**IE on Server**
localhost   - works
127.0.0.1   - works, asks for password, 8 second delay
domain.com  - fails, asks for password, after 3 seconds asks for 
             a password again, the username field changes to: domain.com\username
172.28.28.100   - works, asks for password, 8 second delay

**Firefox on Server**
same as above
    domain.com          - the 'Remember the password' tooltip displays for
                          a fraction of a second and then the browser asks
                          for the password again

**IE on other LAN Host**
    172.28.28.100   - works, asks for password, 8 sec delay
    domain.com  - works, asks for password, 8 sec delay
**Firefox on other LAN Host**
                    - same as above, no delay

私は明らかに何か間違ったことをしていますが、それが何であるかわかりません。 SPNについて読んだことがありますが、setspn -L localhostを使用すると、SPNが表示されません(サーバーがDCではないためだと思います)。 domain.comでWindows統合認証を使用してサーバーにログインできないのはなぜですか?

1
colemik

質問を完全に読み間違えたので、ここで2を試してください。

仮定:

  • サーバーはAD2000 +ドメインメンバーです
  • クライアントはドメインメンバーです

「domain.com」と入力すると、IEはhttp/domain.comのサービスプリンシパル名を作成し、DCにそのチケットを提供するように依頼します。

Domain.comが本物の何か、つまりADドメイン名である場合、それはうまくいきません。少なくとも、私はそうは思わない。

SPNのガイダンスについては、 this を試してください。最初のアドバイスも受けて、2008バージョンのSetSPNを使用してSPNを実行してください。

つまり、アプリプールアカウント(IIS 6の場合、デフォルトではネットワークサービスであるため、コンピューターアカウント 'webserver $'))を取得し、それに対してSPNを登録します。

SETSPN -S http/example.com DOMAIN\WebServer $

理論的には、この時点ですべて機能します。

FireFoxはサーバーに対してCurbauthを実行しないと思いますが、IEは失敗するので、失敗するのに時間がかかります。

1
TristanK

この質問で対処するいくつかの問題:

  • domain.com\usernameまたはで認証することはできません
    domain\username ActiveDirectoryまたはNTドメインがない場合
    認証のためにdomain.comと呼ばれます。

  • IISサーバー上のローカルアカウントに対して正常に認証するには、ログオンIDとして*IIS Computer Name*\usernameを使用して、ローカルアカウントの使用を明確に強制する必要がある場合があります。

  • サイトのNTAuthenticationProvidersを設定Negotiate認証プロセスを無効にし、IISを強制することをお勧めします。使用[〜#〜] ntlm [〜#〜]
    cscript adsutil.vbs set w3svc/__YourWebSite__/root/NTAuthenticationProviders "NTLM"

  • 最も簡単で最速の方法は「基本認証」を使用することですが、SSLでログオントラフィックを保護していない場合は、セキュリティ上の問題があります。

0
Ryan Fisher