检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
后,作为自定义认证的后端函数,对API网关中的API进行认证鉴权。 本章节介绍如何将校验函数封装成一个“自定义认证”,以及封装成自定义认证过程中的操作注意事项。 图1 前端自定义认证示意图 使用自定义认证调用API的流程如下图所示: 图2 自定义认证调用API 自定义认证依赖函数
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 参数 是否必选
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 名称 是否必选
其中Header的参数名不区分大小写。 当“类型”为“前端”,且“缓存时间”不为0时,必须设置此参数。使用缓存时,此参数将作为搜索条件来查询认证结果。 缓存时间 设置认证结果缓存的时间。 值为0时代表不缓存,最大支持3600秒。 是否发送body 指是否将API请求的body体
API调用 API调用失败的可能原因有哪些? API调用返回错误码如何处理? API调用报错“414 Request URI too large” "The API does not exist or has not been published in the environment
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 名称 是否必选
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 id 是 String 自定义认证的ID
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 参数 是否必选
务。 检查后端服务对应的ECS安全组配置,查看是否已开放您需要的端口。 检查后端服务地址是否使用公网IP地址,如果使用,需要在APIG控制台的“实例管理 > 查看控制台 > 实例信息”界面开启出口地址。 检查VPC网络中的ACL配置,查看是否有相关ACL策略限制了API网关实例与后端服务所在子网的通信。
配置前端信息后,单击“下一步”。 表1 前端配置 参数 配置说明 API名称 填写API名称,建议您按照一定的命名规则填写,方便您快速识别和查找。 所属分组 默认“DEFAULT”。 URL 请求方法:接口调用方式,默认“POST”。 请求协议:选择API请求协议,默认“GRPCS”。
> 创建API”,配置前端信息。 表1 前端配置 参数 配置说明 API名称 填写API名称,建议您按照一定的命名规则填写,方便您快速识别和查找。 所属分组 默认“DEFAULT”。 URL 请求方法:接口调用方式,默认“GET”。 请求协议:选择API请求协议,默认“HTTPS”。
开启宽松模式存在安全风险,请谨慎操作。 身份来源 设置用于认证的请求参数。 当“类型”为“前端”,且“缓存时间”不为0时,必须设置此参数。使用缓存时,此参数将作为搜索条件来查询认证结果。 是否发送body 指是否将API请求的body体内容传递给认证函数。body体内容传给函数的方式,与header、query内容传递一致。
创建ACL策略 功能介绍 增加一个ACL策略,策略类型通过字段acl_type来确定(permit或者deny),限制的对象的类型可以为IP或者DOMAIN,这里的DOMAIN对应的acl_value的值为租户名称,而非“www.exampleDomain.com”之类的网络域名。
删除SSL证书 功能介绍 删除ssl证书接口,删除时只有没有关联域名的证书才能被删除。 调用方法 请参见如何调用API。 URI DELETE /v2/{project_id}/apigw/certificates/{certificate_id} 表1 路径参数 参数 是否必选
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 id 是 String VPC通道的编号。
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 名称 是否必选
名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 请求消息 表3 参数说明 参数 是否必选
是否支持HTTPS的双向认证? 专享版:支持。 前端双向认证。在绑定独立域名时,选择带有CA证书的SSL证书,开启客户端认证即双向认证。 后端双向认证。在创建API时,配置双向认证,在API网关和后端服务间启用双向认证。配置请参考创建API中的“TLS双向认证”参数说明。 共享版
创建ACL策略 功能介绍 增加一个ACL策略,策略类型通过字段acl_type来确定(permit或者deny),限制的对象的类型可以为IP或者DOMAIN,这里的DOMAIN对应的acl_value的值为您的租户名称, 而非“www.exampleDomain.com”之类的网络域名。
为什么分组跨域配置失败? 检查是否开启CORS。 进入API详情,单击“编辑”,查看是否开启CORS。如果没开启CORS,请开启。 检查是否创建OPTIONS方式的API,每个分组只需创建一个OPTIONS方式的API。 参数配置如下: 所属分组:选择已开启CORS的API所在分组。