这是资源所有者流程的有效用例吗?

Is this a valid use-case for the Resource Owner flow?

背景

我正在构建一个后端 api,它将被我的移动应用程序调用。这个 api 不会被制作成 public 并且只会被我的移动应用程序使用(至少这是目前的计划)。移动应用程序的用户将能够使用他们的 Facebook/Google 详细信息登录,或者他们可以在应用程序上创建本地帐户并使用该帐户登录

问题

第三种情况(本地帐户登录)是使用资源所有者密码流程的有效用例吗?我看到这个流程现在有一个不好的代表,但如果 API 只被我的移动应用程序(这是一个受信任的客户端)使用,可以使用这个流程吗?

对于资源所有者密码流作为授权流的替代方案,您打算使用 Facebook/Google 作为授权服务器,您将需要自己的授权服务器来发布令牌。 您打算在您的服务器中实现它吗?

在这种情况下,资源所有者密码流就足够了,因为您无论如何都在服务器端管理用户密码。

或者,您可以考虑同时进行基于令牌和基于用户名密码的身份验证。

如果信任不是问题,

ROPC 是一个有效的用例。我确实认为在你的情况下,可以考虑,假设你的用户 'trust you' 及其凭据。

如果您的应用程序未使用浏览器,则可能可以使用它(当然要考虑许多其他因素,例如信任、密码的存储方式等)

我认为避免 ROPC 授予的主要原因是因为存在(更多)网络钓鱼机会。消费者可能很容易被愚弄,因为您的登录屏幕不是 'that popular',不像 google 或 Facebook,他们在错误的地方输入凭据,并且您的应用程序存在风险。