检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用FunctionGraph服务实现APIG的自定义认证 简介 本手册基于华为云API网关实践所编写,用于指导如何为API添加自定义认证。 在API的安全认证方面,API网关提供IAM认证、APP认证等方式,帮助用户快速开放API,同时API网关也支持用户使用自己的认证方式(以下简称自定义认证),以便更好地兼容已有业务能力。
IAM认证信息错误 IAM认证信息错误有: Incorrect IAM authentication information: verify aksk signature fail Incorrect IAM authentication information: AK access
需的认证信息。函数作为自定义认证的后端函数,对API网关中的API进行认证授权。 图1 后端自定义认证示意图 使用自定义认证调用API的流程如下图所示: 图2 使用自定义认证调用API 自定义认证依赖函数服务。如果当前Region没有上线函数服务,则不支持使用自定义认证。 操作步骤
创建自定义认证 操作场景 自定义认证包含两种认证:前端自定义认证和后端自定义认证。 前端自定义认证:如果您希望使用自己的认证系统,而不是APP认证/华为IAM认证对API的访问进行认证鉴权时,您可以使用自定义认证,通过您自定义的函数进行认证鉴权。 后端自定义认证:当不同的后端服务
得到签名消息头后,将其增加到原始HTTP请求内容中,请求将被发送给API网关,由API网关完成身份认证。身份认证通过后,该请求才会发送给后端服务进行业务处理。 父主题: 使用APP认证调用API
删除自定义认证 操作场景 当自定义的认证已不再需要时,可以删除自定义认证。 自定义认证依赖函数工作流服务。如果当前Region没有上线函数工作流服务,则不支持使用自定义认证。 已在API中使用的自定义认证无法被删除。 前提条件 已创建自定义认证。 操作步骤 进入共享版控制台。 在“开放API
配置API的前端自定义认证 如果您需要把自己的认证系统用于API调用的认证鉴权,可以使用自定义认证来实现。 自定义认证包括前端和后端两种类型: 前端自定义认证:指APIG使用自定义的认证函数,对收到的API请求进行安全认证。 后端自定义认证:指API的后端服务使用自定义的认证函数,对来自APIG转发的后端服务请求进行安全认证。
安全认证签名的内容是否包括Body体 包括。除了几个必选的请求头部参数,Body体也是签名要素之一。例如有一个使用POST方法上传文件的API,那么在签名过程中,会取这个文件的hash值,参与生成签名信息。 关于签名的详细指导,可参考:签名认证算法详解。 父主题: API认证鉴权
“无认证”方式的API该怎么鉴权与调用? “无认证”即API网关对收到的调用请求不做身份认证,您只需要按照API提供者提供的接口说明,封装规范的HTTP请求,发送给API网关即可。 无认证方式下,API网关把请求内容透传给后端服务。因此,如果您希望在API后端服务进行鉴权,可以使
自定义认证 创建自定义认证 删除自定义认证 父主题: 共享版操作指导(仅存量用户使用)
删除自定义认证 功能介绍 删除自定义认证 URI HTTP/HTTPS请求方法以及URI如下表所示。 表1 HTTP/HTTPS请求方法以及URI 请求方法 URI DELETE /v1.0/apigw/authorizers/{id} URI中的参数说明如下表所示。 表2 参数说明
配置API的后端自定义认证 如果您需要把自己的认证系统用于API调用的认证鉴权,可以使用自定义认证来实现。 自定义认证包括前端和后端两种类型: 前端自定义认证:指APIG使用自定义的认证函数,对收到的API请求进行安全认证。 后端自定义认证:指API的后端服务使用自定义的认证函数,对来自APIG转发的后端服务请求进行安全认证。
String 自定义认证的名称 type String 自定义认证类型: FRONTEND:前端 BACKEND:后端 authorizer_type String 只能为:FUNC authorizer_uri String 函数urn identities Array 认证来源 ttl
API认证鉴权 是否支持HTTPS的双向认证? “无认证”方式的API该怎么鉴权与调用? TLS加密协议支持什么版本? API签名认证是否支持自定义认证方式? 安全认证签名的内容是否包括Body体 调用服务提示AK/SK过期如何处理 IAM认证信息错误 APP认证信息错误
String 自定义认证的ID 请求消息 表3 参数说明 名称 是否必选 类型 说明 name 是 String 自定义认证的名称。 长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、“_”组成,且只能以英文或中文开头。 type 是 String 自定义认证类型: FRONTEND:前端
创建自定义认证 功能介绍 创建自定义认证 调用方法 请参见如何调用API。 URI POST /v2/{project_id}/apigw/instances/{instance_id}/authorizers 表1 路径参数 参数 是否必选 参数类型 描述 project_id
修改自定义认证 功能介绍 修改自定义认证 调用方法 请参见如何调用API。 URI PUT /v2/{project_id}/apigw/instances/{instance_id}/authorizers/{authorizer_id} 表1 路径参数 参数 是否必选 参数类型
删除自定义认证 功能介绍 删除自定义认证 URI HTTP/HTTPS请求方法以及URI如下表所示。 表1 HTTP/HTTPS请求方法以及URI 请求方法 URI DELETE /v1/{project_id}/apigw/instances/{instance_id}/authorizers/{id}
String 自定义认证的名称 type String 自定义认证类型: FRONTEND:前端 BACKEND:后端 authorizer_type String 只能为:FUNC authorizer_uri String 函数urn identities Array 认证来源 ttl
删除自定义认证 功能介绍 删除自定义认证 调用方法 请参见如何调用API。 URI DELETE /v2/{project_id}/apigw/instances/{instance_id}/authorizers/{authorizer_id} 表1 路径参数 参数 是否必选 参数类型