XAuth 对接应用程序的方法是基于 OAuth2.0、OIDC 和 SAML2.0 等标准协议来实现的,因此在对接应用之前首先需要了解 OAuth2.0、OIDC、SAML 协议的流程特点以及与 XAuth 对接应用的方法。
以下主要概述的介绍下什么是 OAuth2.0 协议
什么是 OAuth 2.0
OAuth2.0 协议提供了一整套授权访问受保护资源的方法,它允许用户通过颁发 access token 作为凭证委托/授权第三方应用访问该用户托管在其它服务中的资源。
OAuth2.0 有四个主要参与角色:
- 资源所有者(RO,Resource Owner):通常是最终用户,由他来决定是否允许给应用(客户端 client)颁发 access token
- 客户端 Client:希望代表数据资源所有者 RO 访问的服务,通常是应用程序、网站等,
- 授权服务器(AS,Authorization Server):颁发授权凭证 access token 的服务方,在当前的场景中 XAuth 是授权服务器
- 资源服务器(RS,Resource Server):access token 的消费者,资源服务器鉴别 access token 有效后返回客户端所请求的资源
重要术语
- grant:是用户授予客户端的一种委托。委托的方式(grant type)包括是
authorization_code
和client_credentials
, 不同的委托方式都有各不相同的流程。如果期望快速的学习 Ouath2.0 协议的流程,请查看 XAuth 的电子书《现代身份管理指南》的第六章——深入学习 OAuth2.0 - access token:是访问资源使用的授权凭证,由授权服务器 (XAuth) 颁发
- refresh token:为可选的 token 类型,如果 access token 过期,则将使用 refresh token 向授权服务器请求新的 access token
关于上述 token 的生命周期的配置和管理问题,请阅读文档授权服务器
常用流程
通常的 OAuth 2.0 授权流程如下所示:
- 客户端向资源所有者(通常是用户)请求授权。
- 如果用户同意授权,客户端将用户的委托发送给( XAuth)授权服务器。
- 如果客户端提供的委托凭证有效,授权服务器返回 access token(还可能包括 refresh token)。
- 客户端使用 access token 来访问资源服务器。
OAuth 2.0 的核心是授权服务器。授权服务器是用于签发 token 的引擎,每个授权服务器都有一个唯一的 issuer URI 和用于对 token 签名的密钥。
参考资料
有关授权服务器本身及其原理和使用的问题,请阅读文档授权服务器
如果需要深入了解 OAuth2.0 协议的具体细节,请阅读Oauth2.0 协议标准