
# 开发自定义认证
 #### 创建用于前端认证的函数后端
通过自定义后端开发自定义认证函数，然后调用该函数进行访问认证，实现自定义认证。
1. 登录[ROMA Connect控制台](https://console.huaweicloud.com/roma3)，在左侧导航栏选择"资源管理"，在实例页面单击实例，进入实例控制台。
2. 创建集成应用。
   1. 在左侧的导航栏选择"集成应用"，单击页面右上角的"创建集成应用"。
   
   2. 在创建集成应用弹窗中填写集成应用的"名称"，然后单击"确认"。
    
3. 在左侧的导航栏选择"服务集成 APIC \> 自定义后端"，在"后端列表"页签中单击"创建后端"。
4. 在创建后端页面配置后端信息，完成后单击"立即创建"。
   图1自定义后端配置   
   ![](https://support.huaweicloud.com/bestpractice-roma/zh-cn_image_0000001676193249.png "点击放大")
   表1后端配置 
   | 参数     | 说明                                          |
   |:---|:---|
   | 后端名称   | 填写后端的名称，自定义。                                |
   | 集成应用   | 选择[2]创建的集成应用。 |
   | 后端请求方法 | 后端的请求方法必须选择"POST"。                          |
   | 后端请求路径 | 填写后端的请求路径，格式如：/getUserInfo/userId。          |
   | 后端安全认证 | 选择后端的安全认证方式，此处选择"无认证"。                      |
   | 描述     | 填写后端的描述信息。                                  |
   | 高级设置   | 高级设置保持默认设置。                                 |
      
   后端创建完成后，页面自动跳转到该后端的编辑器页面，后端类型默认为数据后端。
   
5. 开发自定义认证函数的功能实现。 在编辑器的左上角单击"文件 \> 新建函数后端 \> 前端自定义认证示例"，在弹窗中单击"确定"，然后编写用于安全认证的函数脚本。
   修改示例中的认证参数名称和认证参数值，此处使用API请求的Header参数"x-auth"作为认证参数，当"x-auth"的值为"user1:xxxx"时将认证通过。
   ```
   function execute(data) {
     data = JSON.parse(data)
     body = data.body
     if (body["headers"]["x-auth"] === 'user1:xxxx') {
         result = {
             "status": "allow",
             "context": {
                 "user_name":"user1"
             }
         }
     }
     else {
         result = {
             "status": "deny",
             "context": {
                 "error_code":"1001",
                 "error_message":"incorrect token input"
             }
         }
     }
     return result
   }
   ```
   
6. 完成函数编辑后，在页面右上角单击"保存"，保存函数后端配置。
7. 在页面右上角单击"部署"，在确认弹窗中单击"确定"，部署函数后端。
 
 #### 创建前端自定义认证
1. 在实例控制台左侧的导航栏选择"服务集成 APIC \> API策略"，在"自定义认证"页签下单击"创建自定义认证"。
2. 在创建自定义认证弹窗中配置前端自定义认证信息。
   图2自定义认证配置   
   ![](https://support.huaweicloud.com/bestpractice-roma/zh-cn_image_0000001627593512.png "点击放大")
   表2前端自定义认证配置 
   | 参数       | 说明                                                              |
   |:---|:---|
   | 认证名称     | 填写自定义认证的名称，自定义。                                                 |
   | 集成应用     | 选择[2]创建的集成应用。                     |
   | 类型       | 创建前端自定义认证时，选择"前端"。                                              |
   | 函数地址     | 选择[创建用于前端认证的函数后端]中创建的函数后端。 |
   | 缓存时间(秒)  | 保持默认设置。                                                         |
   | 身份来源     | 保持默认设置。                                                         |
   | 是否发送body | 保持默认设置。                                                         |
   | 用户数据     | 保持默认设置。                                                         |
      
   
3. 完成后单击"确定"。
 
