gpt4 book ai didi

api - 如果客户端与资源所有者相同,OAuth 2.0 是否多余/不必要?

转载 作者:行者123 更新时间:2023-12-05 04:16:13 27 4
gpt4 key购买 nike

1.1部分在RFC 6749中,有四种角色:资源拥有者、资源服务器、客户端和授权服务器。

如果客户端和资源所有者是同一实体,OAuth 是否变得多余或不必要?

例如,我有一个封闭的 API 和一个面向前端的 Web 服务器。 (前置 Web 服务器既是客户端又是资源所有者。)我正在尝试决定是否切换到 OAuth 2 身份验证,而不是使用当前的用户名/密码身份验证方法。如果 API 仍然对第三方应用程序关闭,那么迁移到 OAuth 2 是否会增加安全性? (也就是说,任何第三方都无法访问 API。)

谢谢!

最佳答案

在资源所有者和客户端/资源服务器角色重合的情况下,从安全的角度来看,OAuth 2.0 可能变得不那么重要,因为 OAuth 的主要目标之一是不向客户端公开用户的主要凭据变得没有实际意义。这也是为什么所谓的资源所有者密码凭证授予被认为是遗留/弃用流程的原因。

但是,出于多种原因,遵循 OAuth 2.0 模式可能仍然有意义:

  • 能够通过股票库和不依赖自定义代码的框架
  • 事实上,在您的情况下,资源服务器仍然严格符合 OAuth 2.0,处理提供访问 token 的客户端,而不管客户端/资源所有者的关系/实现是什么;这将使在未来的情况下更容易允许第 3 方客户端访问
  • 事实上,您将用户凭据的验证集中在客户端和授权服务器之间的单一路径上,因此您的每个资源服务器都不需要为单独检查用户凭据而烦恼,可能需要处理不同的身份验证机制
  • 也许最重要的是,也是安全方面的:一旦用户使用他的主要凭据通过客户端进行身份验证,授权服务器就可以发布刷新 token 和访问 token ;当旧的访问 token 过期时,客户端可以将刷新 token 存储并使用到新的访问 token ;如果客户端想要在不需要显式用户交互和身份验证的情况下长时间访问 API,这将使客户端免于存储主要用户凭据,并使生成的系统不易因用户凭据而泄露/丢失用户凭据(密码)不存储在客户端

关于api - 如果客户端与资源所有者相同,OAuth 2.0 是否多余/不必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28612196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com