2011-01-12 68 views
20

在允許SaaS產品根據承租人的內部Active Directory(或其他LDAP)服務器對用戶進行認證的最佳方法提供了一些理論上的幫助之後。SaaS產品的Active Directory認證

應用託管,但要求存在住戶可以委託認證他們的現有用戶管理提供商,如AD或OpenLDAP的等工具,如微軟在線的託管的Exchange支持企業AD同步。

假設客戶不想轉發端口389到他們的域控制器,究竟是什麼最好的方法?

+0

好問題。我也想知道 – 2011-01-12 00:31:24

+0

這個問題是非常類似於http://stackoverflow.com/questions/8934753/how-to-authenticate-users-with-a-customers-remote-active-directory-server和http:/ /stackoverflow.com/questions/2567919/single-sign-on-for-a-web-app – 2015-07-16 06:33:59

回答

14

做一些研究和交談幾句系統管理員會是誰管理這之後,我們已經談妥上的兩個選項,這應該滿足大多數人。我會在這裏描述他們對那些也對結果感興趣的人。

驗證服務安裝在origanisation的DMZ

如果用戶希望使用與它們將被要求在他們的DMZ中安裝代理內部部署活動目錄服務器所開放的端口443到它的認證。我們的服務將被配置爲打這個服務來執行認證。

此服務將位於DMZ中,並接收來自SaaS應用程序的身份驗證請求。該服務將嘗試使用這些憑據綁定到活動目錄,並返回狀態以指示成功或失敗。

在這種情況下應用程序的基於表單的身份驗證不會改變,而用戶不會察覺幕後的身份驗證。

的OpenID

第一種方法類似,服務將被安裝在客戶端的DMZ和端口443將被打開。這將是一個OpenId提供者。

SaaS應用程序將是一個OpenId消費者(已經用於Facebook,Twitter,Google等登錄)。

當用戶希望登錄,OpenID提供方將提出,要求他們輸入自己的用戶名和密碼。該登錄屏幕將從客戶端的DMZ提供。用戶永遠不會輸入他們的用戶名或密碼到SaaS應用程序中。

在這種情況下,基於現有的窗體身份驗證替換爲在客戶端的DNZ服務的OpenID身份驗證。

我們正在研究的第三個選項是Active Directory聯合服務,但這是Active Directory專有的。另外兩種解決方案支持通過互聯網進行的任何基於LDAP的認證。

+4

這個信息真的很有幫助。我很好奇,如果你最終實施任何這些解決方案。如果您可以分享有關SaaS的AD認證的任何經驗教訓,那將是非常好的。 – Justin 2011-12-27 19:16:49

2

如何將LDAPS連接到客戶的用戶目錄?他們可以對此進行防火牆處理,以便只有您的服務器才能訪問,如果他們擔心公開的話。由於它是SSL,因此它是安全的端到端。你所需要的只是他們頒發的CA證書(如果它不是公共證書)。我努力爭取在DMZ的一個內部Web項目中工作,並且真正缺乏任何在線指南。所以我寫了一個,當我會得到它的工作:

http://pcloadletter.co.uk/2011/06/27/active-directory-authentication-using-ldaps/

+0

感謝您花時間編寫本指南。 – rodolfoag 2017-11-16 18:03:08

4

也許這可以幫助...

該供應商,Stormpath,提供了一個服務提供:用戶認證,用戶帳戶管理,以進行連接到您的客戶的本地目錄。

2

最好的辦法是爲您的SaaS應用程序實施SAML身份驗證,然後使用Okta或OneLogin等身份提供程序註冊。完成後,您還可以將其與ADFS連接,通過Active Directory爲您的Web應用程序提供單點登錄。

我只是自己做這個研究,這是我碰到的,一旦實現完成後會有更多的更新。希望這給你足夠的關鍵字做其他的谷歌搜索

0

我的理解是,有三種可能的解決方案:

  1. 在域控制器上安裝一些捕捉到所有用戶更改(添加,刪除,密碼更改)並將更新發送到遠程服務器。不幸的是,網站無法知道最初的用戶密碼 - 只有在新密碼被更改後纔會有新密碼。

  2. 爲Web服務器提供訪問權限,以通過LDAP/WIF/ADFS連接到域控制器。這可能意味着在公司的防火牆中打開傳入端口以允許特定的IP。

  3. 否則,請繞過用戶名/密碼並改爲使用email-based authentication。用戶只需每3-6個月通過電子郵件進行一次驗證即可。

我必須開始爲即將到來的項目實施此項目,爲了簡化,我正在認真傾向於選項#3。