2010-04-07 58 views
0

我正在編寫一個基於Web的應用程序,它將擁有自己的授權/身份驗證機制(基於傳統cookie /會話的用戶/通行證)。但是,根據該授權軟件的組織,我希望他們能夠在自己現有的內部認證系統堵塞,以此來代替我的。理想情況下,他們最終必須儘可能少運行代碼;我試圖讓這個主要託管服務。我意識到OAuth的存在,但並不完全瞭解如何在更高層次上實施該系統。任何提示將不勝感激。將我的應用程序與現有的身份驗證系統連接

回答

2

什麼平臺,你開發? PHP,Java,.NET或其他?

除了OAuth,您還應該查看SAML和OpenID。這些協議用於網站到網站的身份驗證,而OAuth則主要用於桌面/手機上的客戶端應用程序。它可以被使用,但這是人們傾向於使用它的原因。

一般來說,你被認爲是服務提供商。其他組織是身份提供者。在SAML中,您會將用戶重定向到身份驗證提供程序,該身份驗證提供程序將對用戶進行身份驗證(並可能授權)。他們會被重定向到服務提供商,然後這將能夠登錄他們。

見從我的another post的鏈接協議文檔的鏈接。谷歌企業應用套件也有單點登錄的good diagram與SAML在行動。

+0

感謝您的回覆。模板是用PHP完成的,但大部分數據處理都是用Java完成的。我可能會使用PHP的身份驗證的東西。我希望有大多數主流語言的客戶端庫嗎? 我注意到你的其他帖子,並希望你會回覆:) 另外,我應該提到這是一個移動網絡應用程序,最終還需要支持本地應用程序。 – Karan 2010-04-07 23:18:45

0

你的問題糾纏在你想解開的東西(authn/authz,即策略和應用程序)。你正在尋找的答案需要分開這些問題。

「標準」答案是分離authn/authz策略,通常使用PEP(策略執行點)來執行PDP(策略決策點)所做的決策。 SAML爲兩者之間的通信提供了標準。

您最終得到了PEP保護的您的應用程序(通常還有許多其他應用程序)。這可以被嵌入在應用程序(例如,作爲一個Tomcat攔截器)內,但更好的,在作爲代理的單獨容器中運行。從外面可以得到的唯一東西是PEP。這會檢查每個請求,確保用戶通過身份驗證,並且(對於SSO)確保每個請求都包含安全令牌。

如果不是,則PEP將該請求轉發給PDP進行認證(登錄屏幕)。 PDP附加安全令牌並將請求轉發回PEP。由於請求現在具有有效的令牌,因此PEP將其轉發給防火牆後的應用程序。

相關問題