Link Search Menu Expand Document

XAuth 对接应用程序的方法是基于 OAuth2.0、OIDC 和 SAML2.0 等标准协议来实现的,因此在对接应用之前首先需要了解 OAuth2.0、OIDC、SAML 协议的流程特点以及与 XAuth 对接应用的方法。

以下主要概述的介绍下什么是 OAuth2.0 协议

什么是 OAuth 2.0

OAuth2.0 协议提供了一整套授权访问受保护资源的方法,它允许用户通过颁发 access token 作为凭证委托/授权第三方应用访问该用户托管在其它服务中的资源。

OAuth2.0 有四个主要参与角色:

  1. 资源所有者(RO,Resource Owner):通常是最终用户,由他来决定是否允许给应用(客户端 client)颁发 access token
  2. 客户端 Client:希望代表数据资源所有者 RO 访问的服务,通常是应用程序、网站等,
  3. 授权服务器(AS,Authorization Server):颁发授权凭证 access token 的服务方,在当前的场景中 XAuth 是授权服务器
  4. 资源服务器(RS,Resource Server):access token 的消费者,资源服务器鉴别 access token 有效后返回客户端所请求的资源

重要术语

  • grant:是用户授予客户端的一种委托。委托的方式(grant type)包括是authorization_codeclient_credentials, 不同的委托方式都有各不相同的流程。如果期望快速的学习 Ouath2.0 协议的流程,请查看 XAuth 的电子书《现代身份管理指南》的第六章——深入学习 OAuth2.0
  • access token:是访问资源使用的授权凭证,由授权服务器 (XAuth) 颁发
  • refresh token:为可选的 token 类型,如果 access token 过期,则将使用 refresh token 向授权服务器请求新的 access token

关于上述 token 的生命周期的配置和管理问题,请阅读文档授权服务器

常用流程

通常的 OAuth 2.0 授权流程如下所示:oauth_flow

  1. 客户端向资源所有者(通常是用户)请求授权。
  2. 如果用户同意授权,客户端将用户的委托发送给( XAuth)授权服务器。
  3. 如果客户端提供的委托凭证有效,授权服务器返回 access token(还可能包括 refresh token)。
  4. 客户端使用 access token 来访问资源服务器。

OAuth 2.0 的核心是授权服务器。授权服务器是用于签发 token 的引擎,每个授权服务器都有一个唯一的 issuer URI 和用于对 token 签名的密钥。

参考资料

有关授权服务器本身及其原理和使用的问题,请阅读文档授权服务器

如果需要深入了解 OAuth2.0 协议的具体细节,请阅读Oauth2.0 协议标准