OAuth身份验证与授权标准简述

各种授权和身份验证标准(如OAuth、OpenID连接和SAML)简述:

系统中有:

  • 资源(应用程序、API 等)
  • 需要访问资源的人(称为身份)。

这些人可以是用户,也可以是其他软件。

验证与授权区别:

  • 验证:验证需要访问我们资源的人的身份,看他们是不是符合其身份的人。
  • 授权:确定该身份是否可以访问哪些资源。

身份供应商创建并维护用户身份信息,并可将其提供给其他应用程序。身份供应商的例子有微软 AD 和 Twitter。

OAuth 2.0:是应用程序用来授予客户端应用程序访问权限的行业标准。它通常用于用户授予网站访问其在其他网站上的信息的权限,但无需向网站提供密码。亚马逊、谷歌和微软使用它允许用户与第三方应用程序共享账户信息。

OpenID连接是 OAuth 的基础层,它通过加密用户与应用程序或网站之间的连接增加了一层额外的安全性。我们可以使用它在使用安全令牌(ID 令牌)的应用程序之间启用单点登录(SSO)。

JSON web令牌:是客户端和服务器之间以 JSON 格式共享安全信息的开放标准。JWT 在 HTTP 请求中发送,并带有数字签名。可以使用密钥或公钥/私钥对进行签名。Jwt 只是一个用于应用 OAuth2 或标准的工具,而不是一个独立的标准。

SAML:是服务提供商和身份提供商(以 XML 格式)之间交换授权和身份验证信息的开放标准。它创建于 2002 年,是历史最悠久的协议之一。