2012-10-19 92 views
0

我有一個主要網站(其中包含所有數據)和多個客戶網站從主網站獲取數據。每個客戶網站都可以訪問主網站上的不同數據集。我想爲此創建一個基於PHP的Web API。這是我的第一個API,所以我不確定什麼是最好和最安全的方法來做到這一點。如何安全地使用API​​與兩個Web應用程序進行通信?

經過一番谷歌搜索之後,我發現OAuth是最常用的API驗證方法。但在我的情況下,我希望客戶端網站配置一次,然後通信應該是自動的,即通信應該在後臺進行,不會有任何用戶干擾。此場景是否需要OAuth?

或者還有其他的方法可以在這裏實現嗎?

回答

0

後一些谷歌上搜索和研究,我發現給我的回答:

我解釋的情況是兩方模式OAuth的(一個可以找到約2條腿和3條腿OAuth的許多文章)

爲例

另外,OAuth並不難實現,事實上,對於API和Auth系統非常瞭解的開發人員來說非常簡單。

下面是一個非常好的PHP OAuth庫的鏈接,示例代碼爲http://code.google.com/p/oauth-php/

1

oauth是一種複雜的方式來滿足您的需求。

如果您正在使用休息,我建議在標頭中使用basic-auth並使用SSL,以便您的通信被加密。

你可以做一個小SecurityFilter類,檢查是否具有URL模式/API/,基本-AUTH是正確的,它使用SSL的請求......

1

這真的取決於你如何暴露您的API。

如果您使用REST,通過HTTPS進行HTTP基本身份驗證就足夠了。我看到很多人試圖在所提供的方法足夠時實施他們自己的解決方案。

如果您使用SOAP,您可以使用基於SOAP的方法:WS-Security(這只是使用SAML斷言到OAuth令牌的任何標準)。

如果通過HTTPS傳遞基本身份驗證憑據對您來說太「開放」,因爲憑據保存在客戶端服務器的某個配置中,OAuth2可能是最佳解決方案。在服務器端進行OAuth不需要任何用戶交互。您只需將您的令牌存儲在服務器配置中,然後讓OAuth庫負責其餘部分。 PHP有一個這個PHP OAuth Library的庫。 PHP有很多OAuth2庫。只是谷歌它。

相關問題