OAuth2 - 将访问令牌返回给用户是否安全?

Ore*_*ren 7 .net security oauth oauth-2.0

我是 OAuth(1 和 2)的新手,我正在开发一个移动应用程序的服务器端,该应用程序有一个带有“从 Google 帐户填写详细信息”按钮的表单。我不需要任何远程身份验证\授权。

这里(清单 2)我了解到服务器应该有一个控制器:

在此阶段,我的服务器应该能够使用访问令牌从https://www.googleapis.com/plus/v1/people/me获取用户的详细信息- 然后将详细信息返回到用户的应用程序,填写其表格。

我(服务器开发人员)是否可以偷懒并将访问令牌返回给用户,而不是其详细信息?即,让用户应用程序向https://www.googleapis.com/plus/v1/people/me发出请求。

将来,这将允许为客户端应用程序提供更多功能,而无需更改服务器上的代码。

谢谢

Zól*_*ván 7

由于多种原因,您的服务器不应向客户端应用程序公开其访问令牌。

  1. OAuth 协议的重点是向第三方提供安全且有限的访问权限,而无需暴露您自己的凭据(例如标识符、密码等)。你不应该忽视这一点。

  2. 令牌被颁发给特定的 OAuth 客户端,在您的情况下它是服务器。共享令牌不会改变这一点。仍然代表您的服务器而不是客户端应用程序访问用户详细信息,如果出现任何问题,您将负责。

  3. 访问令牌的寿命应该很短,通常会在几分钟内过期。除非客户端立即获取数据,否则没有任何用处。刷新令牌用作永久授权,但您永远不应该共享它们,除非您故意想要破坏服务器安全。