📜  解释 OAuth(开放授权)

📅  最后修改于: 2022-05-13 01:56:29.881000             🧑  作者: Mango

解释 OAuth(开放授权)

OAuth 是一个开放的授权标准(不是身份验证,可以使用 OpenID 进行身份验证)。因此,OAuth 不是身份验证协议。另一方面,委托协议用于在启用 Web 的应用程序和 API 之间传达权限选择。它广泛用于获取用户认可的网站、在线服务和应用程序的用户信息。因此,用户授予服务访问信息的权限,但您不需要向这些服务提供您的用户凭据,例如密码。

启用第三方服务登录的应用程序通常通过提供“ Login With Facebook ”或“ Login With Google ”等选项来请求用户进行身份验证,允许用户使用其凭据登录第三方服务.结果,该服务向请求应用程序提供访问令牌,证明寻求访问的人的身份。然后使用令牌向最终所需用户的资源发出请求。

身份验证

工作:假设一个人之前已经注册了一个网站或服务(OAuth 只能使用 HTTPS)。然后,用户开始需要访问不同站点或服务的功能/事务。发生以下情况(非常简化):

  • 第一个网站使用 OAuth 代表用户连接到第二个网站,显示用户已确认的身份。
  • 第二个站点创建一个一次性令牌和一个专用于交易和相关各方的一次性秘密。
  • 第一个站点将此令牌和机密发送到初始用户的客户端软件。
  • 请求令牌和秘密由客户端程序(可能是也可能不是第二个站点)提供给授权提供者。
  • 如果客户端之前没有通过授权提供者进行身份验证,他或她可能会被提示这样做。在认证之后,提示客户授权与第二网站的授权交易。
  • 访问令牌由第一个网站发送到第二个网站,作为代表用户的身份验证证明。
  • 第二个网站允许第一个网站代表用户访问其网站。

OAuth 并不是第一个最终以这种方式行事的身份验证/授权机制。用户的 实际上,几个身份验证系统,尤其是 Kerberos,以类似的方式运行。 OAuth 的独特之处在于它函数在网络上运行以及广泛使用。当早期的举措失败时(由于各种原因),它在采用率方面是成功的。

OAuth机制包含三个组件:

  • OAuth 提供者:这是 OAuth 提供者,如GoogleFacebook等。
  • OAuth 客户端:这是我们共享或验证使用我们的信息的网页。例如,GeeksforGeeks.com
  • Owner:登录验证信息共享的用户。

注意:对于网络应用程序上的“使用 Google 登录/注册”,可以使用 Google 控制台启用 OAuth。

  • OAuth 2.0 客户端 ID 可以通过 Google API 控制台获得。
  • 然后,要使用 API,请从 Google 授权服务器获取访问令牌。
  • 将请求与访问令牌一起发送到 API。
  • 如果您需要更多时间,请获取刷新令牌。