0

我有一個關於IIS配置的問題,至少我認爲。從ASP.NET應用程序到Dynamics CRM Web服務的授權和模仿

我有兩臺不同的服務器,其中一臺安裝了Microsoft Dynamics CRM 2011,在第二臺服務器上,我有ASP.NET應用程序與Microsoft Dynamics CRM 2011 Web服務交談。問題出在那裏,我無法配置ASP.NET應用程序。

應用已經需要在以下工作:

  1. 我誰開啓用Windows授權
  2. 與Active Directory用戶,其在同一時間,爲用戶在動態登錄ASP.NET應用程序CRM 2011系統
  3. 當我登錄,應用程序啓動將請求發送到動態CRM Web服務,我在

現在我CON我登錄相同的憑據配置是啓用Windows授權,啓用ASP.NET模擬,應用程序池作爲網絡服務運行。

問題是,當我通過地址本地主機在ASP.NET服務器上打開此應用程序時,它們會自動獲取憑據登錄到此服務器的憑據,但沒關係,但是當我嘗試通過地址some-hostname打開應用程序時。 com他們需要登錄,這也可以,但是當我登錄並且應用程序開始向Dynamics CRM Web服務發送請求時。使用401未授權的CRM Web服務響應,從此推斷出來自IIS的憑證存在問題。

我嘗試在主機CRM服務器所在的同一臺服務器上安裝和配置此ASP.NET應用程序,那裏一切正常。

回答

0

你看到的是double hop限制。

除非您配置委派,否則無法將客戶端的憑據從您的ASP.NET應用程序Web服務器轉發到CRM服務器。爲此,您的AD必須已經設置爲Kerberos身份驗證。

您的代碼將嘗試使用應用程序池標識連接到CRM。您可以將此配置爲CRM內的用戶,然後使用CRM模擬(與Kerberos或AD無關),方法是將代理上的CallerID設置爲始發用戶的guid(您必須撥打CRM才能獲得這個)。有關於如何在SDK文檔中執行此操作的信息。

+0

打我3分鐘!好的建議,如果你不想混亂Kerberos! –

0

對於ASP.NET應用程序來模擬登錄用戶,特別是從完全限定的域名,您需要配置兩件事情。

  1. ASP.NET應用程序的應用程序池標識。這是作爲網絡服務還是作爲特定用戶運行?運行應用程序的身份必須「啓用授權」。這是Active Directory中該用戶帳戶的一個選項。如果您的應用程序以網絡服務運行,則您需要在AD中的計算機帳戶上啓用委派,而不是用戶帳戶。

  2. 應用程序域的SPN(服務主體名稱)。 SPN就像是用於身份驗證的DNS,並且是模擬所必需的。如果只使用計算機名稱(例如http://server/app),並且您使用網絡服務作爲身份,則不需要配置SPN,因爲服務器加入Active Directory時默認爲您設置了一個SPN。但是,如果您使用ASP.NET身份的特定用戶帳戶,則希望用戶使用完全限定的域名(例如http://www.server.com),則需要告訴Active Directory有關此情況的信息,並且您可以使用一個SPN。您的Active Directory管理員應該熟悉SPN和setspn.exe命令。

請注意,您可能還需要爲您的CRM服務器添加一個SPN,因爲它只是另一個ASP.NET應用程序。如果您的內部CRM網站使用用戶帳戶作爲標識,或者您使用完全限定的域名訪問內部CRM,則應該只需執行此操作,就像您的自定義ASP.NET應用程序一樣。

希望有幫助!