自定义认证
自定义认证包含两种认证:前端自定义认证和后端自定义认证。
- 前端自定义认证:如果您希望使用自己的认证系统,而不是APP认证/华为IAM认证对API的访问进行认证鉴权时,您可以使用自定义认证,通过您自定义的函数进行认证鉴权。
- 后端自定义认证:当不同的后端服务使用不同的认证系统时,导致您需要为不同的认证系统定制化开发API,而APIG通过自定义认证功能,将多种认证系统集成,简化API开发的复杂度。您只需要在APIG中创建自定义的函数认证,APIG通过此函数对接后端认证系统,获取后端服务的访问授权。
自定义认证依赖函数工作流服务。如果当前Region没有上线函数工作流服务,则不支持使用自定义认证。
自定义认证的具体使用指导,可参考《API网关开发指南》。
使用自定义认证调用API的流程如下图所示:
前提条件
已在函数工作流服务中完成函数创建。
创建自定义认证
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > API策略”。
- 在“自定义认证”页面,单击“创建自定义认证”。
配置自定义认证参数。
表1 自定义认证参数说明 参数
说明
认证名称
您自定义的认证名称,用于区分不同的自定义认证。
类型
- 前端:对API的访问进行认证鉴权。
- 后端:对后端服务的访问授权。
函数地址
选择在FunctionGraph中创建的函数。
版本或别名
选择函数的版本或别名,函数的版本或别名功能请参考《函数工作流 FunctionGraph用户指南》。
缓存时间(秒)
设置认证结果缓存的时间。
取值范围为0s~3600s,值为0时代表不缓存,最大支持3600s。
宽松模式
开关开启后,当函数服务不可用(与函数服务建立连接失败或者函数服务返回5xx)时,API网关仍然接受客户端请求。如果有重试请求,以最后一次返回结果为准。
开关开启后,如果API的后端认证使用了自定义认证,那么后端认证参数获取到的值为空。
开启宽松模式存在安全风险,请谨慎操作。
身份来源
设置用于认证的请求参数。
当“类型”为“前端”,且“缓存时间”不为0时,必须设置此参数。使用缓存时,此参数将作为搜索条件来查询认证结果。
是否发送body
指是否将API请求的body体内容传递给认证函数。body体内容传给函数的方式,与header、query内容传递一致。
用户数据
您自定义的请求参数,APIG调用函数时,与“身份来源”一同作为请求参数。
- 单击“确定”,完成自定义认证的创建。