2013-09-30 104 views
1

我正在開發一個BaaS解決方案,爲開發人員提供他們的應用程序的一些REST API。 除了SSL之外,我還想保護REST API對應用程序(令牌?)和客戶端(用戶和密碼)進行身份驗證。REST API身份驗證用戶和Applicatoin

我在考慮基本身份驗證的客戶端和應用程序身份驗證的令牌,但我不能想到在註冊階段給予應用程序開發人員的簡單UUID令牌如何保護REST API和身份驗證應用程序。

我也閱讀了解OAuth,但我認爲它不適合作爲解決身份驗證機制。

我該如何以正確的方式實現這一點?

謝謝!

+0

請參閱我的答案,並檢查是否有幫助http://stackoverflow.com/questions/19010067/restful-login-proper-implementation/19024952#19024952。 – Satish

回答

0

最後我想出了適合我的安全模式的OAuth 2.0資源所有者密碼流。

謝謝!

1

它似乎是使用「基本身份驗證」用戶身份驗證的好(普通)的方法,然後在「令牌認證」對訪問資源(全SSL)。基本上爲了支持這個,你使用「基本認證」(用戶名/密碼)通過SSL進行用戶認證,並且基於積極的「認證」,用戶被賦予「持證人令牌」(或認證令牌)。用戶憑證通常存儲在數據庫中(散列和醃製),如身份驗證令牌。基於檢索到的令牌,用戶可以訪問API資源(也可以通過SSL授予通道的最大安全性)。不時(或每個設備)您可以更改令牌。

不確定您使用哪種技術開發您的RESTful Web服務。在Java中,我一直在使用Apache Shiro(http://shiro.apache.org/),它允許支持所有這些活動(基本認證,基於令牌的認證,加密數據(散列+鹽析)以存儲在數據庫中等) - 查看另一篇文章我寫了關於如何在shiro中設置這種方法:https://stackoverflow.com/a/17950339/1029673)。

HTH。