配置方法

  1. 配置环境变量 ISUDA_TAKEOVER_RUNTIME_ACL=true 开启可配置发布环境权限接管;
  2. 在 API 中心,新建一个用于接管权限的接口;
  3. 来到 应用 -> 应用设置 -> 权限接管接口 选中创建权限托管接口,可配置权限点缓存时间用于调试。

组织级别权限接管接口

该接口主要在工作台,返回用户有权限的应用以及入口。

配置方法:

  1. 来到组织界面,设置 -> 基本设置 -> 权限接管 API
  2. 配置权限接管接口:例如:http://xxxxxxx:8888/api/acl-com,默认为 GET 请求
  3. 选择自定义签名,需提前注册好自定义签名;
  4. 添加签名环境变量。

当用户访问工作台时,爱速搭会 GET 请求该接口,同样经过代理,会附上爱速搭中的 header,详情,这里是组织级别的代理,所以部分应用相关信息会没有,这里主要用到的是下面 header:

  • x-isuda-oauth-id:oauth id,如果启用了 oauth 登录的话

接口返回示例:

  1. {
  2. "apps": [
  3. {
  4. "key": "d44c728c77ec", // 应用的短路径key
  5. "envs": ["qa", "latest"] // 当前应用可访问的环境,可选 devqasandboxlatest
  6. },
  7. {
  8. "key": "d660498b0a1a", // 应用的短路径key
  9. "envs": ["qa"] // 当前应用可访问的环境,可选 devqasandboxlatest
  10. }
  11. ]
  12. }

正确返回后,工作台会显示返回的应用以及对应的环境入口。

应用级别权限接管接口

访问发布环境应用中,涉及到权限判断时,会请求选中的该 API 中心接口,因为经过了代理,因此请求中会附上爱速搭中的 header,详情;这里主要用到以下三个:

  • x-isuda-appkey,应用短路径
  • x-isuda-oauth-id,oauth id,如果启用了 oauth 登录的话
  • x-isuda-env,应用环境,开发环境是 dev,也可能是 qasandbox或者latest

接口返回参数:

  1. {
  2. "perms": [
  3. "app.877f21d1cc5a.read", // 应用发布环境的访问权限
  4. "app.877f21d1cc5a.edit", // 应用发布环境的管理权限
  5. "app.877f21d1cc5a.dataManage", // 应用发布环境的数据管理
  6. "page.4Qyw7pEgGd.read", // 页面的可读权限
  7. "page.4Qyw7pEgGd.print", // 比如添加了一个自定义权限标识为「print
  8. "page.4Qyw7pEgGd.export", // 比如添加了一个自定义权限标识为「export
  9. // 页面内api的调用权限
  10. "page.4Qyw7pEgGd.api.2iowtJ2eJUyBxj6HTSxSjW.call", // "2iowtJ2eJUyBxj6HTSxSjW" 为页面内 api key
  11. "page.4Qyw7pEgGd.api.muEb9u9DdpbaGiFMhWqdjm. call" // "muEb9u9DdpbaGiFMhWqdjm" 为页面内 api key
  12. ]
  13. }

返回参数格式:

  • perms:页面权限点数组,权限点格式是:
    • 页面的权限点:「page:pageId:aclValue」
      • pageId:页面的 hashId
      • aclValue:具体的权限能力点,例如:read、print、api:xxx:call 等
    • 应用的权限点:「app:appKey:aclValue」
      • appKey:app 的 key
      • aclValue:具体的权限能力点,例如:read、edit、dataManage

备注:

  1. 支持以 . 为分隔符
  2. 支持 * 通配符的能力 类似 app:877f21d1cc5a:* 会递归,甚至可以支持根节点
  3. 权限点和描述必须要有

可以通过 openApi:

  • 获取页面相关权限信息:接口
  • 获取应用下可配置权限点:接口