本文將逐步告訴您,如何將 Microsoft Internet Information Services (IIS)
設定為支援網路驗證的 Kerberos 通訊協定和 NTLM 通訊協定。
當使用整合式 Windows 驗證來驗證用戶端要求時,IIS
會傳送交涉安全性標頭。交涉安全性標頭可讓用戶端選擇 Kerberos 驗證或 NTLM 驗證。除非下列其中一個情況成立,否則交涉程序會選擇 Kerberos
驗證:
- 參與驗證的其中一個系統無法使用 Kerberos 驗證。
- 呼叫的應用程式未提供足夠的資訊可用於 Kerberos 驗證。
如果要讓交涉程序選擇 Kerberos 通訊協定進行網路驗證,用戶端應用程式必須提供服務主要名稱 (SPN)、使用者主要名稱
(UPN) 或 NetBIOS 帳戶名稱做為目標名稱。否則,交涉程序一律會選擇 NTLM 通訊協定做為慣用的驗證方法。
設定交涉安全性標頭
警告 不當編輯 Metabase 可能會導致嚴重的問題,甚至必須重新安裝使用 Metabase 的任何產品。Microsoft
不保證可以解決您不當編輯 Metabase 所導致的問題。請自行承擔編輯 Metabase 的一切風險。
注意 編輯 Metabase 之前,請務必將它備份起來。
注意- 根據預設,當您安裝 IIS 6.0 時,並未定義 NTAuthenticationProviders Metabase 屬性。如果沒有定義 NTAuthenticationProviders Metabase 屬性,IIS 6.0 就會使用 Negotiate, NTLM 參數。因此,除非預設值已被覆寫,否則您不必將 IIS 設定為使用 Negotiate,NTLM 屬性值。
- 根據預設,當您安裝 IIS 5.1 和 IIS 5.0 時,會定義 NTAuthenticationProviders Metabase 屬性。這個 Metabase 屬性會使用 Negotiate, NTLM 參數。因此,除非預設值已被覆寫,否則您不必將 IIS 設定為使用 Negotiate,NTLM 屬性值。
如果要確定 IIS 支援 Kerberos 通訊協定和 NTLM 通訊協定,您必須確認
NTAuthenticationProviders Metabase 屬性已設定交涉安全性標頭。如果要執行這項操作,請根據您的 IIS 版本,使用適當的方法。
IIS 6.0
- 按一下 [開始],再按一下 [執行],輸入
cmd,然後按下 ENTER。
- 找出 Adsutil.vbs 檔案所在的目錄。根據預設,這個目錄是
C:\Inetpub\Adminscripts。
- 使用下列命令擷取 NTAuthenticationProviders Metabase 屬性目前的值:
cscript adsutil.vbs get w3svc/WebSite/root/NTAuthenticationProviders
在這個命令中,WebSite
是網站識別碼的預留位置。預設網站的網站識別碼為 1。
警告
請勿執行「複製貼上」作業來貼上本文中的命令。這項作業可能會造成屬性設定出現問題。為避免這些問題,請在命令提示字元中輸入整個命令。
注意 如果未定義 NTAuthenticationProviders Metabase
屬性,這個命令就會失敗。如需詳細資訊,請參閱本節前面的注意事項。
如果啟用交涉程序,這個命令會傳回下列資訊:NTAuthenticationProviders :(STRING)
"Negotiate,NTLM"
- 如果步驟 3 中的命令沒有傳回字串「Negotiate,NTLM」,請使用下列命令啟用交涉程序:
cscript adsutil.vbs set w3svc/WebSite/root/NTAuthenticationProviders "Negotiate,NTLM"
- 重複執行步驟 3,以確認交涉程序已經啟用。
IIS 5.1 或 IIS 5.0
- 按一下 [開始],再按一下 [執行],輸入
cmd,然後按下 ENTER。
- 找出 Adsutil.vbs 檔案所在的目錄。根據預設,這個目錄是
C:\Inetpub\Adminscripts。
- 使用下列命令擷取 NTAuthenticationProviders Metabase 屬性目前的值:
cscript adsutil.vbs get w3svc/NTAuthenticationProviders
警告
請勿執行「複製貼上」作業來貼上本文中的命令。這項作業可能會造成屬性設定出現問題。為避免這些問題,請在命令提示字元中輸入整個命令。
注意 如果未定義 NTAuthenticationProviders Metabase
屬性,這個命令就會失敗。如需詳細資訊,請參閱本節前面的注意事項。
如果啟用交涉程序,這個命令會傳回下列資訊:NTAuthenticationProviders :(STRING) "Negotiate,NTLM"
注意 根據預設,當您安裝 IIS 5.1 或 IIS 5.0 時,NTAuthenticationProviders Metabase 屬性會設定為 Negotiate,NTLM。 - 如果步驟 3 中的命令沒有傳回字串「Negotiate,NTLM」,請使用下列命令啟用交涉程序:
cscript adsutil.vbs set w3svc/NTAuthenticationProviders "Negotiate,NTLM"
- 重複執行步驟 3,以確認交涉程序已經啟用。
您可以停用交涉程序,以強制 IIS 使用 NTLM 通訊協定進行網路驗證。這個程序可防止 IIS 使用 Kerberos
通訊協定。如果要停用交涉程序,請使用下列命令。
注意 在這個命令中,「NTLM」必須是大寫字母,以避免產生任何負面影響。
cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
注意 如果要確認已經順利完成變更,則在變更此 Metabase 值時,一定要重複執行步驟 3。