F5 术语

OAuth

什么是 OAuth?

OAuth 是一种用于交换授权信息的协议,使多个在线服务能够在用户的许可下进行交互。 “OAuth 1.0”于 2010 年 4 月作为 RFC 5849 发布,“OAuth 2.0”于 2012 年 10 月作为 RFC 6749 发布。

想象一下,您想在 Instagram 上发布一张照片并自动在 Twitter 上分享。 手动访问这两项服务来发布同一篇文章可能会很繁琐。 相反,Instagram 提供了一项称为交叉发布的功能,该功能允许使用其 API 自动在其他社交网络(例如 Twitter)上分享您的 Instagram 帖子。 此过程由 OAuth 促进。

要在 Twitter 上发帖,典型的身份验证需要用户 ID 和密码,称为基本身份验证。 但是,与其他服务共享这些敏感凭证是有风险的。 OAuth 通过交换授权信息而不是身份验证凭证来解决此问题,为任务授予有限的权限。

用 OAuth 术语来说:

  • 接收授权的服务(例如 Instagram)称为 OAuth 客户端。
  • 授予授权的服务(例如 Twitter)称为 OAuth 服务器。
  • 该用户被称为资源所有者。

要启动该过程,OAuth 客户端必须首先通过提供其应用名称和域等详细信息向 OAuth 服务器注册。 如果 OAuth 服务器认为客户端值得信赖,它会分配一个客户端 ID。

当用户(资源所有者)给予授权时,OAuth 客户端会将用户重定向到 OAuth 服务器。 OAuth 服务器对用户进行身份验证并询问是否应向 OAuth 客户端授予指示的权限。 一旦用户批准,服务器就会将用户重定向回 OAuth 客户端,并授予访问令牌。 此令牌作为授权证明,允许 OAuth 客户端访问 OAuth 服务器的 API。令牌将一直有效,直至过期或被明确撤销。