在 OAuth 中,当用户授权客户端时,客户端会获得一个授权码,然后客户端将其交换为用于访问资源的令牌。
为什么我们需要为访问令牌进行这种额外的授权码交换?不能直接使用 Authzcode 来获取资源吗?这种交换带来了哪些额外的安全性?
在 OAuth 中,当用户授权客户端时,客户端会获得一个授权码,然后客户端将其交换为用于访问资源的令牌。
为什么我们需要为访问令牌进行这种额外的授权码交换?不能直接使用 Authzcode 来获取资源吗?这种交换带来了哪些额外的安全性?
分离autzcode和 令牌允许解耦身份验证和会话处理。优点包括无需调整会话处理代码就可以使用多种身份验证服务,以及在合法用户身份验证后检测恶意或受损提供商的滥用。
有关详细信息,请参阅https://stackoverflow.com/questions/8666316/facebook-oauth-2-0-code-and-token
“Authzcode”通常被称为“OAuth 授权码”,用于授权授予过程。当应用程序需要确保资源所有者的凭据永远不会与客户端共享时,将使用此特定的 OAuth 过程。当客户端运行不受信任的代码(例如需要特权访问的应用程序)时,此特定用例可能会发挥作用。以下是来自 RFC-6749 的引用:
授权代码提供了一些重要的安全优势,例如验证客户端的能力,以及将访问令牌直接传输到客户端,而无需通过资源所有者的用户代理传递它并可能将其暴露给其他人,包括资源所有者。