- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- APIG业务使用流程
- 创建用户并授权使用APIG
- 创建APIG实例
- 开放API
- 配置API调用授权(可选)
- 调用API
-
管理API
- 管理API概述
- 查看或编辑APIG的API信息
- 配置API的自定义认证
- 配置API的参数编排规则
- 自定义API的错误响应信息
- 克隆APIG的API
- 下线APIG的API
- 导入导出API
-
APIG的API设计文件扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-is-send-fg-body-base64
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- x-apigateway-auth-opt
- x-apigateway-result-normal-sample
- x-apigateway-result-failure-sample
- x-apigateway-authorizer
- x-apigateway-response
- x-apigateway-responses
- x-apigateway-pass-through
- x-apigateway-sample
- x-apigateway-content-type
- x-apigateway-orchestrations
- 配置API策略
- 配置凭据策略
- 管理APIG实例
- 查看监控指标与配置告警
- 查看APIG审计日志
- 共享版操作指导(仅存量用户使用)
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-微服务中心管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 专享版-编排规则管理
- 专享版-实例自定义入方向端口管理
- 共享版API(仅存量用户使用)
- 专享版API(V1)(待下线)
- 权限策略和授权项
- 附录
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门咨询
- 产品咨询
- 开放API
- 发布API
-
调用API
- 调用API失败的可能原因
- 调用API报“414 Request URI too large”
- 调用API报“The API does not exist or has not been published in the environment”
- 调用API报“No backend available”
- API的后端服务报“Backend unavailable”或“Backend timeout”
- API的后端服务报“Backend domain name resolution failed”
- 调用API报“Incorrect IAM authentication information”
- 调用API报“Incorrect app authentication information”
- 修改API后端服务的超时时间上限“backend_timeout”后未生效
- APIG对API请求体的大小是否有限制?
- API调用对请求的响应消息体限制
- 使用iOS系统时,如何使用APP认证调用API?
- 新建一个华为IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- APIG是否支持WebSocket数据传输?
- API的策略后端有多个时,怎么匹配和执行API请求?
- 如何通过APIG访问公网后端服务?
- API认证
- API策略
- 导入导出API
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置API的第三方认证
您可以通过第三方认证策略配置自己的鉴权服务为API的访问进行认证。API网关先调用用户的鉴权服务,收到鉴权服务的鉴权成功响应后再继续调用后端服务。
第三方认证原理图如下,第三方认证策略绑定API后,您可以参考调用APIG开放的API调用。
前提条件
- 同一个环境中,一个API只能被一个第三方认证策略绑定,但一个第三方认证策略可以绑定多个API。
- 策略和API本身相互独立,只有为API绑定策略后,策略才对API生效。为API绑定策略时需指定发布环境,策略只对指定环境上的API生效。
- 策略的绑定、解绑、更新会实时生效,不需要重新发布API。
- API的下线操作不影响策略的绑定关系,再次发布后仍然会带有下线前绑定的策略。
- 如果策略与API有绑定关系,则策略无法执行删除操作。
创建第三方认证策略
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API策略”。
- 在“策略管理”页面,单击“创建策略”。
- 在“选择策略类型”弹窗中,选择“插件策略 > 第三方认证”。
- 在“创建策略”弹窗中,根据下表参数说明,配置策略信息。
表1 第三方认证参数说明 参数
说明
策略名称
填写策略的名称,根据业务规划自定义。建议您按照一定的命名规则填写策略名称,方便您快速识别和查找。
支持中文、英文、数字、下划线,且只能以英文或中文开头,长度为3~255个字符。
策略类型
固定为“第三方认证”。
描述
填写策略的描述信息。长度为1~255个字符。
策略内容
策略的配置内容,支持表单配置和脚本配置两种方式。
负载通道
是否使用负载通道作为第三方接口的鉴权服务。
- 选择“使用”时,配置鉴权服务的负载通道。
- 选择“不使用”时,配置鉴权服务的访问地址。
后端URL
后端超时(ms)
鉴权服务请求的超时时间。超时时间不超过后端响应超时时间上限,超时时间上限可在API网关控制台的“配置参数”中查看。
自定义host头域
仅在使用负载通道时配置。
自定义后端服务请求中的Host头域,默认使用请求中原始的host头域。
防暴力拦截阈值
当源IP访问在5分钟内进行第三方认证失败的次数达到此处配置的阈值时,将触发源IP请求拦截,在这5分钟后解除请求拦截。
例如,5分钟内,源IP访问在第三分钟进行第三方认证失败的次数达到此处配置的阈值,触发源IP请求拦截,再过2分钟解除请求拦截。
身份来源
将从API原始请求中获取此处配置的参数进行第三方鉴权接口鉴权(最大支持10个header参数和10个query参数)。身份来源信息为空时,携带API原始请求的请求参数(header参数和query参数)调用第三方鉴权接口进行鉴权。
宽松模式
开关开启后,当鉴权服务不可用(与鉴权服务建立连接失败或者鉴权服务返回5xx)时,API网关仍然接受客户端请求。
允许携带原始请求体
开关开启后,将携带API原始请求体调用鉴权接口鉴权。
请求体大小(字节)
仅在开启“允许携带原始请求体”时配置。
请求体大小不能超过实例允许的最大请求体大小。实例的最大请求体大小可在API网关控制台“配置参数”中查看。
允许携带原始请求路径
开关开启后,将API原始请求路径拼接到鉴权接口路径之后调用鉴权接口鉴权。
直接返回鉴权响应
开关开启后,鉴权失败时,将直接返回鉴权服务的响应。
允许携带的响应头部
鉴权成功时,原始请求将从鉴权服务返回的响应头中获取此处配置的头部,传到业务后端。
最大支持配置10个头部。
简易鉴权模式
开关开启后,鉴权服务返回状态码“2xx”时,表示认证通过。
鉴权结果匹配
仅在“简易鉴权模式”关闭后可配置。
根据鉴权服务返回的响应头中的参数名和参数值进行校验,响应头中存在此处配置的参数名,并且参数值相等则认证通过。
黑白名单配置
开关开启后,原始API请求匹配黑/白名单规则将进行/不进行第三方认证鉴权。
规则类型
定义参数
定义用于规则的参数。建议不要设置敏感信息,以防泄露。
- 参数位置:用于规则匹配的参数位置。
- path:API请求的URI,系统默认配置。
- method:API请求方法,系统默认配置。
- header:请求头的key值。
- query:QueryString的key值。
- system:系统参数。
- 参数:用于判断与规则中的参数值是否匹配。
定义规则
定义用于规则的判断条件。
单击“添加规则”,编辑规则名称和规则条件。在“条件表达式”弹窗中,选择“定义参数”中的参数名和判断条件,以及输入参数值。建议不要设置敏感信息,以防泄露。
- =为等于
- !=为不等于
- pattern为正则表达式
- enum为枚举值,多个参数值之间用英文逗号分隔
- 单击“确定”。
如果您需要复制已创建的策略,请在已创建策略的“操作”列中单击“克隆”配置参数即可。克隆策略的名称不能与已创建的策略名称重复。
- 策略创建后,您还需要为策略绑定API,才能使策略对API生效。
脚本配置示例
{ "auth_request": { "method": "GET", "protocol": "HTTPS", "url_domain": "192.168.10.10", "timeout": 5000, "path": "/", "vpc_channel_enabled": false, "vpc_channel_info": null }, "custom_forbid_limit": 100, "carry_body": { "enabled": true, "max_body_size": 1000 }, "auth_downgrade_enabled": true, "carry_path_enabled": true, "return_resp_body_enabled": false, "carry_resp_headers": [], "simple_auth_mode_enabled": true, "match_auth": null, "rule_enabled": false, "rule_type": "allow" }