2016-08-17 61 views
0

我們有一些後端Web應用程序,我們希望通過公共因特網提供訪問。爲此,我們正在從DMZ中設置一個反向代理(IIS 7.5)。同時,我們希望這些Web應用程序能夠通過ADFS 2.0進行聲明。反向代理和ws-federation adfs 401問題

WEB1.MYCORP.COM/WFE1 is the other back-end web application, on our internal network 
WEB1.MYCORP.COM/WFE2 is the other back-end web application, on our internal network 
ADFS.MYCORP.COM is the ADFS 2.0 server, on our internal network 
FSPROXY.MYCORP.COM is the ADFS 2.0 proxy server, on our DMZ 
RPROXY1.MYCORP.COM is the reverse proxy for WFE1, on our DMZ 
RPROXY2.MYCORP.COM is the reverse proxy for WFE2, on our DMZ 

與ADFS的正確配置保持一致,我們的內部DNS解析ADFS.MYCORP.COM實際的內部服務器,而外部DNS點ADFS.MYCORP.COM到ADFS代理(FSPROXY)。

所以,這裏的情景:

End user browses to RPROXY.MYCORP.COM 
Reverse proxy forwards request to WEB1.MYCORP.COM/WFE1 
WFE1 redirects browser to ADFS.MYCORP.COM (actually FSPROXY) 
ADFS Proxy prompts for credentials and authenticates against ADFS server 
Upon successful authentication, browser redirected back to web app 

我有幾個問題。我是否需要在rp或應用程序中配置某些內容來允許這樣做。此外,adfs端點是RP網址是一個問題?

我是否需要爲反向代理設置一些東西? (我應該/可以)在IIS中設置啓用聲明的反向代理嗎?如何設置反向代理規則以不變地傳回ADFS請求?目前,當我嘗試訪問後端應用程序時,它會因401驗證錯誤而失敗。如果我刪除代理,只需點擊應用服務器,它就可以正常工作。

此外, 這種失敗: 的路徑是客戶端 - > RP - >程序 - > ADFS - > RP - >程序 - > RP - >客戶端機器

這個作品: 路徑是客戶端 - > rp - >應用程序 - > adfs - >應用程序 - > rp - >客戶端機器

任何建議,將不勝感激!

回答

0

不熟悉如何在IIS(ARR?)中啓用反向代理。類似這樣的事情http://blogs.iis.net/carlosag/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr

您的一個選擇是使用ADFS 2012R2(如果可能),因爲代理即Web應用程序代理處理ADFS身份驗證,並且可以處理您的聲明啓用應用程序的應用程序發佈。有兩種方法可以將您的應用發佈到互聯網上。有一次是傳遞,這是你正在嘗試做的事情。但它也允許聲明感知應用的預認證支持。這樣,您可以有一個不同的策略來決定應用程序是否可以在數據包發送到您的內部應用程序之前通過您的EDGE網絡。

+0

首先感謝您的回覆。我們正在使用ARR和大多數工作的IIS。身份驗證是不起作用的。不幸的是,我們不能使用任何其他身份設置。所以我們堅持使用聯合標識設置。我們從IDP獲取令牌,但不知道它是否是我們想要的。我們最終得到了我們自己的html 401錯誤。 – Momthemeatloaf

0

經過大量的挖掘和提琴手的痕跡,我發現這個問題。在測試idp設置時,令牌與stage env不同。提琴手的痕跡顯示該令牌讓它回到了應用服務器。問題在於它看起來像是無緣無故地丟棄了Cookie。這個問題是因爲舊的開發ipd值自然不同意階段值。一旦我從數據庫中清除了舊的令牌,一切正常。