一尘不染

适用于具有最简单的客户端-服务器架构的移动应用程序的OAuth2吗?

flutter

我们拥有经典的CS(客户端-服务器)架构,即移动应用程序和业务服务器。我们拥有 自己的 帐户系统(不使用第三方帐户,例如Google /
Facebook帐户)。我知道我应该使用OAuth2进行身份验证。问题是,
我该如何实施

我在Internet上找不到两件事:

  1. 我们正在使用 自己的 帐户系统-没有Google / Facebook帐户。
  2. 用户应在本 应用程序UI中而非在应用程序中嵌入的浏览器网页中输入密码。

问题:

  1. 我认为我们可以使用“资源所有者密码授予”模式。用户在本机UI中输入密码,然后我们收集HTTPS请求并将其发送到服务器,等等。但是我已经看到有人说它不安全…所以我应该使用它吗?
  2. 如果我们应该使用“授权码”模式,我应该如何让用户在本 UI中输入密码?

非常感谢!

ps如果我们没有自己的帐户系统,而只是依靠Google /
Facebook的帐户,那么一切就很简单。我们只能在Internet上使用任何博客或文章或答案。但是,我们需要
自己的帐户系统


阅读 312

收藏
2020-08-13

共1个答案

一尘不染

与第三方身份验证一起使用时,资源所有者流被认为是不安全的,例如,您的移动应用正在尝试访问用户的Dropbox或Gmail电子邮件中的文件。如果您拥有系统帐户系统,资源和应用程序的所有部分,那么资源所有者密码流应该是安全的。

这是一个简单得多的流程,但是它有一些缺点。就像您将无法与其他第三方或企业系统联合一样,也无法从单一登录中受益。如果这些都不适合您,请继续使用资源所有者密码流。

您可以在这里找到关于此主题的好方法:https : //auth0.com/blog/oauth-2-best-practices-for-native-
apps/

2020-08-13