更新时间:2022-04-26 GMT+08:00
分享

如何控制接口访问权限

什么是业务权限凭证

业务权限凭证用于控制接口的访问权限。AppCube提供了两种方式对API接口访问权限的控制:配置权限脚本和配置API接口的业务权限凭证。优先通过权限脚本进行权限验证,根据脚本的返回值判断下一步的操作。

对于配置了业务权限凭证的接口,需要在权限的“业务权限凭证”页签中接入相应的业务权限凭证,才可调用API接口。若平台用户没有配置业务权限凭证,则继续校验Profile权限中的数据权限(例如执行服务编排、执行脚本、对象的增删改查、API读、API写权限)。若业务用户没有配置业务权限凭证,调用接口直接报错,不会继续校验Profile权限中的数据权限。

对于未配置了业务权限凭证的接口,则需要查看内置系统参数“bingo.permission.customapi.check”取值,该参数控制公共接口未绑定业务权限凭证时的逻辑。

  • 若该参数取值为“是”,公共接口未绑定业务权限凭证时,业务用户无法访问该接口;对于平台用户,则继续校验Profile权限中的数据权限。
  • 若该参数取值为“否”,公共接口未绑定业务权限凭证时,业务用户可直接访问该接口,无需鉴权;对于平台用户,则继续校验Profile权限中的数据权限。

例如:运行环境或者沙箱环境中,该内置参数配置为“是”,接口未绑定业务权限凭证,即使在权限设置中勾选“API读”与“API写”权限,业务用户也无法操作对象数据;若业务用户需要操作对象数据,请将该内置参数配置为“否”。

查看和配置该系统参数的方法为:在AppCube管理中心选择“系统管理 > 系统参数”,在“内置系统参数”查看和配置该参数。
图1 内置系统参数

如何配置业务权限凭证

  1. 在应用开发工作台,单击左下方的“配置”,进入配置页面。
  2. 在“业务权限凭证”页签,单击“新建”,新建业务权限凭证。

    图2 新建业务权限凭证

    新建业务权限凭证也可以通过菜单页面的“业务权限凭证”菜单进行创建,并通过导入按钮导入到应用中。

  3. 查看需要配置业务权限凭证的API接口,单击业务权限凭证的“编辑”,将相应的权限凭证添加到右侧选择框中,单击“保存”。

    图3 API接口绑定业务权限凭证

  4. 在开发环境首页,单击“管理”,进入管理控制台页面。
  5. 在左侧导航栏中,选择“用户管理 > 权限配置”。

    在权限列表中查看需要配置业务权限凭证的权限详情,在“业务权限凭证”页签,将相应的业务权限凭证进行编辑,勾选“可接入”选项。
    图4 权限绑定业务权限凭证

  6. 选择“用户管理 > 用户”或“用户管理 > 业务用户”,对平台用户或业务用户配置相应的权限,该用户即可获取调用相应API接口的权限,否则将无法通过API接口的业务权限凭证校验。

    AppCube对用户和业务用户在业务权限凭证校验的处理有所不同。平台用户在业务权限凭证校验失败后会进行下一步的权限校验,如果后续校验通过仍可以调通API接口,业务用户则在业务权限凭证校验失败时直接报错,终止操作。

如何通过脚本控制接口访问权限

  1. AppCube提供了示例权限脚本,可以仿造示例代码进行脚本的编写。

    图5 创建示例权限脚本
    您可以在权限脚本中进行自定义的权限校验,并根据校验结果返回相应的result值。
    export class Output {
        @action.param({ type: "Number"})
        result: decimal.Decimal;
    }
     
    const PASS     = decimal.newWithExponent(1, 0);
    const BANNED   = decimal.newWithExponent(0, 0);
    const FALLBACK = decimal.newWithExponent(-1, 0);
    权限脚本输出参数result含义如下:
    • PASS--{"result":1}:校验通过,直接放行。
    • BANNED--{"result":0}:校验不通过,无法调用。
    • FALLBACK--{"result":-1}:校验通过,但还需要进行后续权限校验。

    开发权限脚本时,出参可按照示例权限代码中的表达式也可自行定义,但必须确保出参为-1,0,1中的某一值,否则作为校验不通过处理。

  2. 单击左下角的“服务”,在服务管理页面,单击“编辑”,将校验方式改为“与脚本绑定”,并选择相应的权限脚本。

    图6 自定义访问控制
    图7 绑定权限脚本

分享:

    相关文档

    相关产品

close