2015-09-06 91 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

相关问题