gpt4 book ai didi

web-services - 身份验证和资源服务器之间的 OAuth v2 通信

转载 作者:行者123 更新时间:2023-12-03 05:14:40 24 4
gpt4 key购买 nike

我在理解 OAUTH-v2 的工作原理时遇到了一些困难。

OAuth version 2 spec内容如下:

  1. Accessing Protected Resources

    The client accesses protectedresources by presenting the access
    token to the resource server. Theresource server MUST validate the
    access token and ensure it has notexpired and that its scope covers
    the requested resource. The methodsused by the resource server to
    validate the access token (as well asany error responses) are beyond thescope of this specification, butgenerally involve an interaction orcoordination between the resourceserver and the authorization
    server
    .

资源服务器和授权服务器之间的交互在实践中是如何工作的?

  • 资源服务器如何确定它是一个访问 token 收到的信息有效吗?
  • 如何资源服务器提取允许的从 token 的范围来查看是否应该授予对特定资源的访问权限?范围是否编码在访问 token 中,还是资源服务器必须首先联系授权服务器?
  • 资源服务器和授权服务器之间的信任是如何建立的?

Access token attributes and themethods used to access protectedresources are beyond the scope of thisspecification and are defined bycompanion specifications.

有人可以举例说明 token 属性吗?

最佳答案

这超出了规范的范围,因为在两个实体之间实现这种连接的方法有很多种。主要问题是您的部署有多复杂。

例如,您是否有一个服务器管理身份验证和访问,以及一组独立的服务,每个服务都有自己的服务器为 API 调用提供服务?或者,您是否只有一台机器和一台 Web 服务器来处理身份验证/授权和 API 调用?

在单个盒子的情况下,不需要太多,因为发行代币的实体与验证代币的实体相同。您可以实现 token 以使用数据库表 key 并在每次请求时在数据库(或内存缓存)中查找记录,或者您可以将范围、用户 ID 和其他信息直接编码到 token 中并使用对称或非对称加密算法。

处理分布式环境时,事情会变得有点复杂,但也不会复杂太多。您仍然在授权服务器上颁发 token ,但资源服务器需要一种方法来验证这些 token 。它可以通过向资源服务器提供内部 API 来要求授权服务器“解析” token (这在本地环境中可以很快)来实现,或者两者可以建立公钥/私钥对或对称 key 并用它来将资源服务器所需的所有内容加密到 token 中。

自包含 token 更长,但每个请求的性能要好得多。然而,它们是有代价的——当它们仍然有效(未过期)时,你无法真正撤销它们。因此,自包含 token 的生命周期应该非常短(无论您可以接受什么,在撤销后仍保持访问开放状态 - 例如,许多网站使用一小时),而刷新 token 则可以在一年或更长时间内获得新 token 。

关于web-services - 身份验证和资源服务器之间的 OAuth v2 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255104/

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