Oauth 2.0 当您可以直接分发令牌时,为什么需要授权授予?

Oauth 2.0 当您可以直接分发令牌时,为什么需要授权授予?,oauth-2.0,Oauth 2.0,在OAuth2中,它详细说明了客户机应用程序必须首先从授权服务器获得授权,然后使用该授权来获取令牌,然后才能访问资源服务器。补助金的用途是什么?为什么不在用户使用用户名和密码登录后立即向客户端提供令牌?,因为对于某些应用程序类型,令牌更安全 您描述的是所谓的授权代码流。它通常用于“经典”web应用程序,其中只有后端需要访问资源服务器。访问令牌的授权代码交换发生在后端,并且访问令牌从不离开后端。交换只能进行一次,此外,还需要客户端id和密码(存储在后端) 单页应用程序通常使用隐式流,其中访问令牌直

在OAuth2中,它详细说明了客户机应用程序必须首先从授权服务器获得授权,然后使用该授权来获取令牌,然后才能访问资源服务器。补助金的用途是什么?为什么不在用户使用用户名和密码登录后立即向客户端提供令牌?

,因为对于某些应用程序类型,令牌更安全

您描述的是所谓的授权代码流。它通常用于“经典”web应用程序,其中只有后端需要访问资源服务器。访问令牌的授权代码交换发生在后端,并且访问令牌从不离开后端。交换只能进行一次,此外,还需要客户端id和密码(存储在后端)

单页应用程序通常使用隐式流,其中访问令牌直接在URL中传递到前端

请参阅此处的更多信息:


编辑:Q:“我仍然不知道如何更安全,因为您必须获得授权才能获得令牌。为什么需要2件东西而不是1件东西来访问资源?如果有人偷了令牌,他们仍然可以访问资源–stackjlei”

“窃取”访问令牌将独立于应用程序获取它的方式。然而,在后端窃取访问令牌比在前端要困难得多

授权代码也通过前端传送到后端,但有人截获和使用授权代码的风险很小:

  • 只能交换一次
  • 您需要客户端id和客户端机密才能进行交换。客户端机密仅在后端可用
  • 通常,授权代码将由后端交换以立即访问令牌。所以它的寿命只有几秒钟。如果有人在事后获得使用过的授权码,这并不重要

  • 因为对于某些应用程序类型,它更安全

    您描述的是所谓的授权代码流。它通常用于“经典”web应用程序,其中只有后端需要访问资源服务器。访问令牌的授权代码交换发生在后端,并且访问令牌从不离开后端。交换只能进行一次,此外,还需要客户端id和密码(存储在后端)

    单页应用程序通常使用隐式流,其中访问令牌直接在URL中传递到前端

    请参阅此处的更多信息:


    编辑:Q:“我仍然不知道如何更安全,因为您必须获得授权才能获得令牌。为什么需要2件东西而不是1件东西来访问资源?如果有人偷了令牌,他们仍然可以访问资源–stackjlei”

    “窃取”访问令牌将独立于应用程序获取它的方式。然而,在后端窃取访问令牌比在前端要困难得多

    授权代码也通过前端传送到后端,但有人截获和使用授权代码的风险很小:

  • 只能交换一次
  • 您需要客户端id和客户端机密才能进行交换。客户端机密仅在后端可用
  • 通常,授权代码将由后端交换以立即访问令牌。所以它的寿命只有几秒钟。如果有人在事后获得使用过的授权码,这并不重要

  • 您有不同类型的OAuth。在类型上,不需要使用“授予”授权。它取决于用户/应用程序、资源所有者和服务器API

    这样,作为用户,您就不会向应用程序发送密码。应用程序将仅使用授权令牌访问您的资源

    如果你想了解更多细节,我认为这首芭蕾舞是一件很好的事情


    您有不同类型的OAuth。在类型上,不需要使用“授予”授权。它取决于用户/应用程序、资源所有者和服务器API

    这样,作为用户,您就不会向应用程序发送密码。应用程序将仅使用授权令牌访问您的资源

    如果你想了解更多细节,我认为这首芭蕾舞是一件很好的事情


    在您的场景中,可能有两台服务器,一台是授权服务器,另一台是资源服务器。 也可能只有一个,但让我们想象一下这个场景

    授权服务器的目的是向已知客户机颁发短期访问令牌。客户通过其CLientID和CLientSecret识别自己

    授权服务器(AS)保存客户端及其机密列表,并首先检查以确保传递的值与其列表匹配。如果他们这样做,它就会发出一个短期令牌

    然后,当令牌有效时,客户端可以与资源服务器(RS)对话。一旦令牌过期,可以请求一个新的令牌,或者如果授权服务器允许,可以刷新过期的令牌


    这里的重点是安全性,通常,访问令牌在请求的授权头中传递,该请求需要通过https来确保数据不会被窃取。如果有人以某种方式获得访问令牌,他们只能使用它,直到它过期,因此,令牌的短寿命实际上非常重要。这就是为什么您不发布一个永不过期的令牌。

    在您的场景中,可能有两个服务器,一个是授权服务器,一个是资源服务器。 也可能只有一个,但让我们想象一下这个场景

    授权服务器的目的是向已知客户机颁发短期访问令牌。客户通过其CLientID和CLientSecret识别自己

    授权服务器(AS)保存列表o