web-dev-qa-db-ja.com

IISホストされたサイトが、ホスト名またはIPを介してアクセスされ、サーバー名を介してアクセスされない場合、ADアカウントの資格情報を要求するのはなぜですか?

IIS Windows 2016 NanoサーバーでホストされているWebサービスを実行しています。http://servername/service/healthを実行すると、サービスに問題なくアクセスできます

ただし、http://[IP Address here]/service/healthまたはhttp://service.company.com/service/healthを介してアクセスした場合、ADログイン資格情報の入力を求められます。

DNSレコードとIIS ApplicationHost.configを調べましたが、実際には何が問題であるのかわかりません。設定を1つまたは2つ見落としている可能性があります。何をすべきか?

5
Frosteeze

これはKerberosの問題のようです。私が正しい場合は、サーバーのADコンピューターアカウント(*)にHTTP/SERVERNAMEの登録済みSPN(これはSETSPNコマンドラインツールで確認できます)があるため、自動Kerberos認証が発生する可能性がありますコンピューターの名前を使用してWebサービスが呼び出されたとき。ただし、他の名前でWebサービスを呼び出すと、これは機能しません。

別の名前を使用してWebサービスを呼び出すことができるようにする場合は、SETSPN -S HTTP/service.company.com SERVERNAMEなどのコマンドを使用して、同じADコンピューターアカウント(*)に別のSPNを追加する必要があります。

詳細 ここ

(*)または、手動で構成した場合は、IISのアプリケーションプールを実行するユーザーアカウント。

6
Massimo

Service.company.comは、IISサーバー上の登録済みサービスプリンシパル名である必要があります。

また、デフォルトでKerberos統合認証は、システムがそのように構成されておらず、IPアドレスが登録済みのサービスプリンシパル名である場合を除き、IPアドレスでは機能しません。

https://docs.Microsoft.com/en-us/windows-server/security/kerberos/configuring-kerberos-over-ip

4
Greg Askew

もう1つのチェック-ブラウザーが資格情報を渡しておらず、ログインプロンプトを強制している可能性があります。

インターネットオプションには、ローカルイントラネット用のセキュリティゾーンがあります。このゾーンは、ADダイアログを必要とせずに、Windows資格情報を自動的に渡します。既定の設定では、サーバー名がネットワークの一部として検出されますが、完全なドメイン名はおそらくインターネットゾーンと見なされ、資格情報を送信しません。ローカルイントラネットの構成ページで、FQDNを追加してプロンプトを表示しないようにする(またはグループポリシーを介して設定する)ことができます。

これはすべて、サイトをWindows資格情報で実行することを意図しており、内部で実行していることを前提としています。私はセキュリティの専門家ではありませんが、個人的には、資格情報をインターネット上のサイトに自動的に送信したくありません。

2
Dave Simione