网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl
网关控制台: https://apigateway.console.aliyun.com/?spm=5176.doc42740.2.2.Q4z5ws#/cn-hangzhou/apis/list
一、安全认证:无认证
在阿里云的文档【API 网关 > 开放 API 接入 API 网关 > 2. 前端配置】说明:https://help.aliyun.com/document_detail/48805.html?spm=5176.doc48805.6.546.YPtFTr :
二、安全认证:阿里云APP
三、安全认证:OpenConnect
1、获取授权 api
- 获取授权API:向客户端颁发Token的接口。配置这个API时您需要告知API网关,您Token对应的Key和解析Token使用的公钥。
2、业务类接口
- 业务类接口,是您实际的业务接口,比如获取用户息、进行某个操作等。配置这类API时,你需要告知API网关你请求中表示Token的参数名称。请求到达API网关后,API网关自动认证这个请求是否合法。
四、附录 - OpenID Connect 如何使用
OpenID Connect 是一套基于 OAuth 2.0 协议的轻量级规范,提供通过 API 进行身份交互的框架。较 OAuth 而言, OpenID Connect 方式除了认证请求之外,还标明请求的用户身份。
API 网关依据 OpenConnect 的标准,对用户请求进行 Appkey+Token 校验,Token 由 API 提供者的系统颁发,网关颁发 Appkey,并负责 Appkey、Token 的真伪校验。
实现原理
使用 OpenID Connect认证,将 API 分为 获取授权 API 和 业务 API 两类。
- 获取授权API:向客户端颁发Token的接口。配置这个API时您需要告知API网关,您Token对应的Key和解析Token使用的公钥。
- 业务类接口,是您实际的业务接口,比如获取用户息、进行某个操作等。配置这类API时,你需要告知API网关你请求中表示Token的参数名称。请求到达API网关后,API网关自动认证这个请求是否合法。
认证方式
-
客户端调用 获取授权 API
- 客户端使用您的 Appkey 签名+用户名/密码 调用 获取授权 API 获取授权。
-
API 网关收到请求后,先认证您的 Appkey,认证通过后,调用后端服务的账号系统认证您传递的 用户名/密码。
-
后端服务认证通过后,返回 Token 给您,您可凭 Token 来调用 业务 API。
-
客户端调用业务 API
-
客户端使用 获取授权 API 得到的 Token 和 签名后的 Appkey 来调用 业务API。
-
API 网关认证、解析 Token 的内容,并将 Token 中包含的用户信息传递给后端。
-
在此阶段的操作中,API 的提供者需要事先进行如下操作:
- 开放账号系统,允许 API 网关对请求中 用户名/密码 进行验证,并依据网关提供的加密方式,颁发 Token。详细内容请参照下文 如何实现 AS 模块。
- 在 API 网关定义 API。详细内容参照下文 在 API 网关配置 API。
注意:用户名/密码 是极为敏感的信息,在网络中明文传输存在风险,建议在传输前对用户名密码再次加密,并使用 HTTPS 协议传输。
-
实现方案简介
实现方案分为两个重要的部分:
1. Authorization server(AS):认证服务器,负责生成 id_Token 并管理公钥私钥对。
这一步需要您自行实现。实现方法,请参照下文 在 API 网关配置 API。
参考上图,流程简述如下:
- Consumer(调用者)向API网关发送获取 id_token 认证请求,比如:通过用户名和密码(U+P)的方式。
- API 网关透传该请求到 AS。
- AS 向 Provider(服务提供方)发送认证用户信息请求。
- Provider 响应认证结果,若失败则直接响应错误信息。
- 认证结果成功,AS 生成 id_token,id_token 中包含了 User 信息(可扩展,也可包含其他必要信息)。
-
API 网关将 AS 返回的 id_token 响应给 Consumer。
说明:AS 不用必须是单独部署的应用,完全可以集成在 Provider 中,在整个体系中担任 id_token 生产者角色,所生成的 id_token 必须符合 OIDC(1.0版本)协议中的