更新时间:2024-10-28 GMT+08:00

创建后端自定义认证

如果您需要把自己的认证系统用于后端服务请求的认证鉴权,可以使用自定义认证来实现。

自定义认证包括前端和后端两种类型:

  • 前端自定义认证:指ROMA Connect使用自定义的认证函数,对收到的API请求进行安全认证。
  • 后端自定义认证:指API的后端服务使用自定义的认证函数,对来自ROMA Connect转发的后端服务请求进行安全认证。

本章节主要介绍如何创建一个后端自定义认证。您需要先创建一个函数后端作为认证函数,并在自定义认证中使用该函数后端作为认证后端。

创建用于后端认证的函数后端

  1. 登录ROMA Connect控制台,在“实例”页面单击实例上的“查看控制台”,进入实例控制台。
  2. 在左侧的导航栏选择“服务集成 APIC > 自定义后端”,在“后端列表”页签中单击“创建后端”。
  3. 在创建后端页面配置后端信息,完成后单击“立即创建”。
    • “后端请求方法”必须为“POST”。
    • 入参无需设置,Header和Query参数在用于后端自定义认证的函数后端中无效。
    • 其他参数请参考创建函数后端进行设置。

    后端创建完成后,页面自动跳转到该后端的编辑器页面,后端类型默认为数据后端。

  4. 开发函数后端的功能实现。

    在编辑器的左上角单击“文件 > 新建函数后端 > 空白模板”,在弹窗中单击“确定”,然后编写用于安全认证的函数脚本,完成后单击“保存”。

    用于后端自定义认证的函数脚本应满足如下条件:

    • 函数脚本支持调用的请求参数:

      Body参数:自定义认证中定义的用户数据,参数值在创建自定义认证时设置。函数脚本中调用参数的格式为:body["user_data"]。

    • 函数脚本定义的响应消息:

      响应消息体不能大于1M,响应内容必须满足如下格式:

      {
        "status": "allow/deny",
        "context": {
          "user": "abc"
        }
      }
      • status:必选字段,用于标识认证结果。只支持“allow”或“deny”,“allow”表示认证成功,“deny”表示认证失败。
      • context:必选字段,为认证的响应结果。只支持字符串类型键值对,键值不支持JSON对象或数组。

        context中的数据为您自定义的字段,认证通过后可作为系统参数(后端认证参数)映射到API的后端服务请求参数中。其中API后端服务中填写的“系统参数名称”与context中的参数名称必须完全一致,且区分大小写。context中的参数名称必须以英文字母开头,支持英文大小写字母、数字、下划线和中划线,且长度为1-32个字符。

    用户数据定义脚本示例

    function execute(data){
      data=JSON.parse(data)
      body=data.body
      if(body["user_data"]=='abc'){
        return{
          "status": "allow",
          "context": {
            "user": "abcd"
          }
        }
      }else{
        return{
          "status": "deny"
        }
      }
    }
  5. 测试函数后端的功能。

    在页面右上角单击“测试”,在下方的“测试参数”处,根据函数后端中的脚本定义,增加认证所需的请求参数,然后单击“立即测试”,发送请求。

    以上一步的用户数据定义脚本示例为例,需要在Body参数中填写请求内容{"user_data": "abc"},作为后端服务请求的认证参数。

    当测试结果返回的status值为“allow”时,表示测试成功。

  6. 部署函数后端。

    后端测试完成后,在页面右上角单击“部署”,在确认弹窗中单击“确定”,部署函数后端。

创建后端自定义认证

在创建后端自定义认证前,请确保已有用于后端自定义认证的函数后端,否则请提前创建用于后端认证的函数后端

  1. 在实例控制台左侧的导航栏选择“服务集成 APIC > API策略”,在“自定义认证”页签下单击“创建自定义认证”。
  2. 在创建自定义认证弹窗中配置后端自定义认证信息,完成后单击“确定”。
    表1 后端自定义认证配置

    参数

    说明

    认证名称

    填写自定义认证的名称,根据规划自定义。建议您按照一定的命名规则填写自定义认证名称,方便您快速识别和查找。

    集成应用

    选择自定义认证所属的集成应用。

    类型

    创建后端自定义认证时,选择“后端”。

    函数地址

    选择用于后端自定义认证的函数后端,仅可以选择状态为“已部署”的函数后端。

    缓存时间(秒)

    填写认证结果的缓存时间。值为0时代表不缓存,最大支持3600秒。

    宽松模式

    开启后,当自定义函数服务不可用(与自定义函数服务建立连接失败或者自定义函数服务返回5xx响应)时,ROMA Connect仍然接受客户端请求。

    是否发送body

    是否把后端请求的body信息发送给认证函数。

    用户数据

    自定义的认证请求参数。