【问题标题】:Is this a valid use-case for the Resource Owner flow?这是资源所有者流程的有效用例吗?
【发布时间】:2021-01-28 21:25:53
【问题描述】:
背景
我正在构建一个将由我的移动应用程序调用的后端 api。这个 api 不会公开,只会被我的移动应用程序使用(至少这是目前的计划)。移动应用程序的用户将能够使用他们的 Facebook/Google 详细信息登录,或者他们可以在应用程序上创建一个本地帐户并使用该帐户登录
问题
第三种情况(本地帐户登录)是使用资源所有者密码流程的有效用例吗?我看到这个流程现在有一个不好的代表,但是如果 API 只被我的移动应用程序(这是一个受信任的客户端)使用,那么可以使用这个流程吗?
【问题讨论】:
标签:
authentication
oauth-2.0
oauth
authorization
【解决方案1】:
如果信任没有问题,ROPC 是一个有效的用例。我确实认为在您的情况下,可以考虑,假设您的用户“信任您”他们的凭据。
如果您的应用程序没有使用浏览器,那么使用它可能是可以的(当然要考虑许多其他事实,例如信任、密码的存储方式等)
我认为避免 ROPC 授权的主要原因是网络钓鱼的(更多)机会。消费者可能很容易上当,因为您的登录屏幕不像 google 或 Facebook 那样“流行”,而且他们在错误的地方输入了凭据,您的应用程序就有风险。
【解决方案2】:
对于作为授权流程的替代方案的资源所有者密码流程,您打算将 Facebook/Google 用作授权服务器,您将需要自己的授权服务器来发布令牌。
你打算在你的服务器中实现它吗?
在这种情况下,资源所有者密码流程完全足够,因为您无论如何都在服务器端管理用户密码。
或者,您可以考虑并行使用基于令牌和基于用户名密码的身份验证。