2009-02-09 50 views
1

我在Windows 2003上的IIS 6.0中運行Web服務。它的身份驗證模式爲集成Windows安全(匿名禁用),授權通過授權管理器和XML授權存儲進行。我的測試用戶是具有授權角色成員資格的域用戶(實際上是管理員)。無法使用不同服務器名稱授權

我在Web服務器(本地主機)上測試這個(現在),並使用(現在)Internet Explorer訪問Web服務(.asmx)。

我可以成功地通過本地主機打開Web Service(WSDL)頁,像這樣:

http://localhost:8080/MyService/MyService.asmx 

使用此URL,集成Windows身份驗證成功(默默),和我成功地通過AzMan的授權訪問服務。這同樣適用於服務器名稱:

http://myserver:8080/MyService/MyService.asmx 

現在我需要使用外部主機名(www.mysite.no)訪問服務(這是爲了讓SSL與頒發給證書工作網站名稱)。要做到這一點,我添加主機名到我的HOSTS文件,像這樣:

127.0.0.1 www.mysite.no 

...然後輸入到這個IE:

http://www.mysite.no:8080/MyService/MyService.asmx 

會發生什麼事,然後就是授權失敗。我得到IE/Windows登錄框並輸入三次我的正確憑據。然後我得到一個401.1:

HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials. 
Internet Information Services (IIS) 

通過AzMan的授權如何受主機名的影響?

編輯:我有理由相信AzMan與它無關 - 它似乎是認證失敗。

我在另一臺服務器上重現了這個問題。其實質似乎是通過本地主機文件中的條目訪問本地主機以某種方式混淆了瀏覽器和IIS之間的集成Windows身份驗證。

我已經解決該問題的工作,現在我的好奇心是所有剩下的...

回答

1

啓用審計登錄失敗審計&檢查主機上的安全事件日誌。
1)在Web服務器上,轉到控制面板,管理工具,本地安全策略。 2)去當地的政策,審計政策。爲「審覈登錄事件」添加失敗。
3)關閉MMC。打開命令提示符並鍵入gpupdate。 4)瀏覽到http://www.mysite.no。你會再次得到錯誤。 5)啓動事件查看器(控制面板,管理工具,事件查看器)。導航到安全事件日誌並查找登錄失敗。他們會告訴您一些描述性的內容,例如「用戶尚未被授予指定的登錄類型」。不幸的是,登錄類型本身並不具有描述性。登錄類型2是交互式(本地),3是'通過網絡訪問此計算機',5是'登錄爲服務'(NT服務,而不是WCF服務)。所需的權利可以在本地安全策略中授予。

此外,請檢查您是否在IE中啓用了代理。如果您的流量正在路由到代理,則代理可能不支持NTLM。在使用IE進行測試時,將主機添加爲代理異常。

1

我的第一個猜測是,它不是主機名。

首先要做的事情是縮小問題的範圍,因爲有些事情可能會出錯。

首先將IIS站點設置爲匿名訪問,並確保您可以啓動Web服務。這將驗證您是否正在訪問正確的IIS網站,並確實將其縮小爲授權問題。

此外,請檢查應用程序池憑據以及包含Web服務的文件文件夾上的安全設置,因爲這些可能是貢獻者。

+0

但是主機名是所有不同的.. – 2009-05-28 11:11:45

相關問題