
# 创建自定义认证
#### 操作场景
自定义认证包含两种认证：前端自定义认证和后端自定义认证。
- 前端自定义认证：如果您希望使用自己的认证系统，而不是APP认证/华为IAM认证对API的访问进行认证鉴权时，您可以使用自定义认证，通过您自定义的函数进行认证鉴权。
- 后端自定义认证：当不同的后端服务使用不同的认证系统时，导致您需要为不同的认证系统定制化开发API，而APIG通过自定义认证功能，将多种认证系统集成，简化API开发的复杂度。您只需要在APIG中创建自定义的函数认证，APIG通过此函数对接后端认证系统，获取后端服务的访问授权。
![](https://support.huaweicloud.com/usermanual-apig/public_sys-resources/note_3.0-zh-cn.png)
自定义认证依赖函数工作流服务。如果当前Region没有上线函数工作流服务，则不支持使用自定义认证。
自定义认证的具体使用指导，可参考《API网关开发指南》的自定义认证相关章节。
使用自定义认证调用API的流程如下图所示：
图1通过自定义认证调用API   
![](https://support.huaweicloud.com/usermanual-apig/zh-cn_image_0000001142758222.png)
#### 前提条件
- 已在函数工作流服务中完成函数创建。
- 用户还需具备FunctionGraph Administrator角色权限。
 
#### 操作步骤
1. [进入共享版控制台](https://support.huaweicloud.com/usermanual-apig/apig_03_0108.html#apig_03_0108)。
2. 在"开放API \> 自定义认证"页签，单击"创建自定义认证"，弹出"创建自定义认证"对话框。
3. 填写如[表1]所示信息。
   
   ![](https://support.huaweicloud.com/usermanual-apig/zh-cn_image_0000001199339061.png "点击放大")
    表1自定义认证参数 
   | 信息项      | 描述                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 认证名称     | 您自定义的认证名称，用于区分不同的自定义认证。                                                                                                                                                                                                                                                                                                                                                     |
   | 类型       | - 前端：对API的访问进行认证鉴权。  - 后端：对后端服务的访问授权。   |
   | 函数地址     | 选择在FunctionGraph中创建的函数。                                                                                                                                                                                                                                                                                                                                                     |
   | 身份来源     | 设置用于认证的请求参数，支持添加Header参数和Query参数，其中Header的参数名不区分大小写。 当"类型"为"前端"，且"缓存时间"不为0时，必须设置此参数。使用缓存时，此参数将作为搜索条件来查询认证结果。                                                                                                                                                                                                 |
   | 缓存时间     | 设置认证结果缓存的时间。 值为0时代表不缓存，最大支持3600秒。                                                                                                                                                                                                                                                                           |
   | 是否发送body | 指是否将API请求的body体内容传递给认证函数。body体内容传给函数的方式，与header、query内容传递一致。                                                                                                                                                                                                                                                                                                                |
   | 用户数据     | 您自定义的请求参数，APIG调用函数时，与"身份来源"一同作为请求参数。                                                                                                                                                                                                                                                                                                                                        |
      
   
   
4. 单击"创建"，完成自定义认证的创建。
 
