在线演示(示例数据)

Speedle Cloud 为开发者提供托管访问控制。创建服务,用 SPDL 编写规则,再调用授权 API,判断用户能否对资源执行操作。

Speedle Cloud 首页

探索示例授权工作区

无需登录,直接查看策略管理工作区。演示使用内置示例数据,复用控制台的策略列表、SPDL 展示和 Playground 结果组件。演示只在浏览器中运行,不调用 API,也不能读取或修改真实账号。

示例服务: books-demo · 只读演示 · 示例数据

策略

授权策略 (2)

角色策略 (1)

reader-access

grant role reader get /books

策略试运行

选择示例请求,查看预先算好的 IsAllowed 结果。示例固定,不会实时调用 API。

示例授权请求
{
  "subject": {
    "principals": [
      {
        "type": "user",
        "name": "alice"
      }
    ]
  },
  "serviceName": "books-demo",
  "resource": "/books",
  "action": "get"
}

允许。 命中允许策略。

完整结果(JSON)
{
  "allowed": true,
  "reason": 0
}

判定原因代码:0 = 允许,1 = 拒绝,3 = 没有匹配的策略。

查看全部示例策略、请求和判定(无需 JavaScript)

reader-access

grant role reader get /books

protect-books

deny user bob delete /books

alice-reader

grant user alice reader on /books

Alice 读取图书,reader 角色放行

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "alice"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "get"
  },
  "response": {
    "allowed": true,
    "reason": 0
  }
}

Bob 删除图书,明确拒绝

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "bob"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "delete"
  },
  "response": {
    "allowed": false,
    "reason": 1
  }
}

Carol 读取图书,没有匹配的授权

{
  "request": {
    "subject": {
      "principals": [
        {
          "type": "user",
          "name": "carol"
        }
      ]
    },
    "serviceName": "books-demo",
    "resource": "/books",
    "action": "get"
  },
  "response": {
    "allowed": false,
    "reason": 3
  }
}