代码之家  ›  专栏  ›  技术社区  ›  Morgan Cheng

为什么OAuth设计为具有请求令牌和访问令牌?

  •  35
  • Morgan Cheng  · 技术社区  · 14 年前

    在OAuth协议中,服务使用者将要求用户授权 请求令牌 在服务提供者域中,然后交换 请求令牌 对于一个 访问令牌 来自服务提供商。

    我想知道为什么OAuth设计在协议中有两个令牌。

    为什么不在这个过程中只使用一个令牌呢?也就是说,用户将授权 信物 ,服务使用者将使用 信物 .

    2 回复  |  直到 7 年前
        1
  •  28
  •   Bert F    7 年前

    出于可用性和安全性的考虑。

    Beginner’s Guide to OAuth :

    https://hueniverse.com/beginners-guide-to-oauth-part-iii-security-architecture-e9394f5263b5

    …虽然主要是OAuth规范如何演变的人工制品, 两个令牌设计提供了一些可用性和安全性功能 这使得它值得留在规范中。OAuth在两个通道上运行:一个用于吸引用户并请求授权的前通道,一个用于消费者直接与服务提供商交互的后通道。 通过将访问令牌限制到后台通道,令牌本身对用户保持隐藏。这允许访问令牌具有特殊含义,并且其大小大于请求授权时向用户公开的前通道请求令牌,并且在某些情况下需要手动输入(移动设备或机顶盒)。

    = =

    注意这个问题是重复的

    Why must we "change temporary credentials for token credentials" in OAuth?

    如果解释来自 初学者指南 不清楚,那就去读吧 @npdoty's take on it .

        2
  •  1
  •   Conceited Code    14 年前

    The Official OAuth 1.0 Guide

    OAuth协议启用网站或 访问的应用程序(使用者) 受Web服务保护的资源 (服务提供商)通过API,无 要求用户披露 服务提供商凭据 消费者。一般来说,OAuth 创建一个可自由实现的 API通用方法 身份验证。

    一个示例用例允许 打印服务printer.example.com (消费者),访问私人 存储在photos.example.net上的照片 (服务提供商)没有 要求用户提供 photos.example.net凭据 printer.example.com.

    OAuth不需要特定用户 界面或交互模式,nor 它是否规定了服务提供商 验证用户身份,使 协议非常适合案例 身份验证凭据所在的位置 对消费者不可用,例如 使用OpenID。

    Oauth的目标是将经验和 委托网络的实现 将服务身份验证转换为单个, 社区驱动的协议。奥瑙 基于现有协议和最佳 独立的实践 通过各种网站实现。安 开放式标准,由大和 小供应商一样,促进 一致可信的经验 应用程序开发人员和 这些应用程序的用户。

    为了总结这一点,用户为OAuth请求令牌提供了用户名和密码。您使用OAuth请求令牌为想要连接到某个对象的服务提供服务,它们将接收访问令牌。这使得服务永远不会看到/使用用户名和密码。