hat*_*enn 7 authentication ruby-on-rails oauth oauth-2.0 rails-api
我正在使用Rails 5为移动应用程序创建API.目前,我不需要三脚授权,因为API只会由我们自己的移动应用程序使用.
我正在考虑选择以下两个选项之一:
ActionController::HttpAuthentication::Token模块+设计:这似乎是更简单的方法.老实说,我看不到令牌访问身份验证方法和OAuth 2.0的密码凭据授权之间的区别.
如何选择一个而不是另一个?还有其他需要考虑的选择吗?
两者在概念上是不同的:
从某种意义上说,您可以使用密码凭据授予来使用 OAuth 获取令牌,然后在Token授权标头中使用此令牌来获取访问权限。
那么问题就变成了——当我们可以使用存储在应用程序中的(永久和秘密)令牌来立即授权时,进行额外的往返以将(永久和秘密)凭证交换为(临时)令牌是否有用。
在我看来,使用完整的 OAuth 流程有两个潜在的好处。首先,它可以让您自然地为第三方添加其他授权方式。其次,它允许您随时撤销令牌并使用这些其他方式强制重新授权(当然,如果您实现它们),而无需发明任何轮子。
另一方面,您可以随时在需要时添加任何其他“令牌生成”部分。因此,如果您当前的计划是在代码中硬编码凭据,我怀疑您最好依赖Token授权。
它不仅缩短了一个请求,而且还可能比BearerOAuth 中使用的身份验证稍微安全一些:如果攻击者嗅探到Bearer令牌,他们(通常)将获得对服务器的完整令牌访问权限,直到其过期。令牌的情况并非如此Token(通常)。当然,如果攻击者无论如何都能从您的应用程序中提取共享秘密,那么这一切并不是那么重要。
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |