Api OAuth2流理解

Api OAuth2流理解,api,security,oauth,oauth-2.0,auth0,Api,Security,Oauth,Oauth 2.0,Auth0,我试图了解如何保护我的应用程序。 我选择使用Auth0来管理我的用户和应用程序 我看到了这个流程: 我试图理解这个流程,但我错过了一些东西。 假设我有一个web应用程序,一个API网关,它试图调用一个内部应用程序,即资源服务器 我从图像流中了解到: API网关应用程序使用Auth0进行身份验证,并获取访问令牌 API网关应用程序使用访问令牌计算资源服务器 现在我错过了一些东西,难道不应该有另一个箭头,从资源服务器到Auth0,以及访问令牌,来验证它还是什么 另一个问题,检查我是否理解,如果我想

我试图了解如何保护我的应用程序。 我选择使用Auth0来管理我的用户和应用程序

我看到了这个流程:

我试图理解这个流程,但我错过了一些东西。 假设我有一个web应用程序,一个API网关,它试图调用一个内部应用程序,即资源服务器

我从图像流中了解到:

  • API网关应用程序使用Auth0进行身份验证,并获取访问令牌

  • API网关应用程序使用访问令牌计算资源服务器

  • 现在我错过了一些东西,难道不应该有另一个箭头,从资源服务器到Auth0,以及访问令牌,来验证它还是什么

    另一个问题,检查我是否理解,如果我想验证用户: 1.使用Auth0登录的用户将获取令牌

  • 用户使用令牌调用API网关

  • API网关正在使用Auth0验证令牌

  • API网关调用资源服务器

  • 资源服务器是否使用Auth0验证令牌


  • 谢谢:)

    通常,API网关会处理身份验证,然后通过向内部服务器执行附加请求(如果适用)来重定向/处理请求。这里的前提是,由于某种类型的网络约束,内部服务器只能通过API网关访问,因此不必对经过身份验证的身份执行任何额外的验证——它们信任网关传递的身份,并假设已经执行了任何必要的验证

    在此场景中,API网关是一个资源服务器,它接收和验证令牌,并通过发出额外的内部请求来履行职责,这是一个实现细节

    此外,令牌的验证可以通过两种方式之一完成,只有一种方式意味着资源服务器和授权服务器之间的通信:

    • 通过对令牌的颁发者进行额外调用来验证令牌,并根据其响应执行任何决策
    • 验证资源服务器本身中的令牌;实现这一点的最常见方法是使用令牌格式,该格式可以在令牌本身中包含信息(想想),并由授权服务器(Auth0)对该令牌进行签名这样,资源服务器就可以验证签名,并确信令牌内容由授权服务器提供且未被篡改
    如前所述,这是最常见的设置,并假设API网关之后的任何下游服务器都不公开,因此不需要执行身份验证决策(也称为令牌验证)。这些下游服务器可能仍然需要用户身份才能做出额外的授权决策,但它们可以以不同于令牌的方式接收此信息,并隐式信任接收到的信息


    如果您的下游服务器也可以从一个不受信任的网络直接访问,这种类型的方法将不起作用,但是如果是这样的话,您可能还想考虑通过API网关到位所带来的好处。p>