2015-09-06 54 views
0

我最近正在處理Go REST服務,但我不知道是否有任何可用的生產就緒的OAUTH2服務器?如何在產品環境中保護我的GO REST服務?

由於我的服務將由單一分頁的web應用程序以及移動客戶端使用,並且用戶應該能夠註冊自己的賬號,所以我想OAuth2用戶服務器。

我一直在尋找了一圈,發現該標準包只包含客戶端代碼https://github.com/golang/oauth2/blob/master/oauth2.go

有內置的圍棋(https://github.com/RangelReale/osin)OAuth2用戶服務器,但我沒有太多的專業知識進行審查。

因此,生產應用程序有哪些可用選項?我是否應該使用其他技術(如nodejs)實現的OAUTH服務器,因爲它們的成熟度?

編輯:在.NET中的空間存在於https://github.com/identityserver/IdentityServer3

服務器實現。然而,我寧願東西GO。

+0

一個開源的OpenID提供商你說的是正常用戶訪問或OAuth訪問的情況? – inf

+0

HI inf,我正在談論他們兩人。該服務必須對普通用戶進行身份驗證和授權。可能支持由第三方公司開發的移動應用程序。在.Net空間中有一個OAUTH2實現https://github.com/identityserver/IdentityServer3 –

回答

0

雖然Oauth2是非常安全和很好的實現。

用於保護Web應用程序的常用過程如下。

用戶註冊到應用程序並將註冊數據發送到後端。 服務器處理註冊信息。 將未來令牌請求和其他請求的用戶密碼存儲在一起 創建訪問令牌以傳回給用戶(通常爲32-64位) 散列訪問令牌並將其存儲在數據庫中用於認證平安請求 向用戶返回任何數據需要以及訪問令牌。 將訪問令牌存儲在客戶端計算機上(可能使用localstorage.set()) 未來的請求會將訪問令牌附加到它們以進行身份​​驗證。

始終檢查訪問令牌是否仍然可以訪問,並且它的散列值與數據庫中的散列值相匹配。

其他實現涉及智威湯遜等。

+0

OAuth2只與實現一樣安全:僅HTTPS,更正驗證和過期令牌等。 – elithrar

0

如果你沒有在審查的OAuth 2.0庫足夠的專業知識,那麼我會建議使用可靠的第三方OAuth作爲一種服務提供商。

一個例子我所知道的是微軟的Azure ACS,您可以與您的golang應用程序集成,他們將處理OAuth的過程以及身份驗證和授權給你。

您可以瞭解它是如何工作here