代码之家  ›  专栏  ›  技术社区  ›  David Carek

当应用程序和API是第一方时,使用资源所有者密码凭证流的缺点是什么?

  •  0
  • David Carek  · 技术社区  · 6 年前

    我刚刚开始了解Identity Server、OAuth 2和OpenID Connect。在这样做的同时,我花了一些时间查看不同的OAuth流及其应用程序。我了解当客户端是第三方或不受信任时使用资源所有者密码凭据流的风险。但是,当客户机(移动应用程序)和API是可信的第一方时,我还没有真正找到它的使用方法。在这个场景中使用这个流程的潜在风险是什么?如果你能指出具体的安全漏洞,那将是非常有帮助的。

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  1
  •   starlight54    6 年前

    如果你说的正是以下几点…

    1. 您自己的移动应用程序(使用可信库)
    2. 收集用户凭据(就好像他们正在登录您的网站,假设您有一个)
    3. 通过TLS将它们发送到认证服务器
    4. 如果正确,返回普通令牌响应

    然后我会争辩说没有安全性惩罚,至少,这并不比首先使用用户名/密码认证更糟糕。


    然而,这种性质的移动认证存在着更广泛的问题。

    无法判断是您的应用程序发送请求,这适用于所有OAuth2流(即使您使用更安全的流,用户也可以简单地分离移动应用程序并提取凭据)。

    谷歌和苹果都有一些功能试图解决这个问题,但我不确定它们目前有多成熟或安全,这可能值得研究。

    因此,您依赖于用户不会被欺骗安装假应用程序,但是,这是在社会工程下进行的,并且它适用于所有OAuth2流。