这是关于下一个《Grafana》的版本。有关最新的稳定版本,请转到最新版本

;开发人员;HTTP API;Rbac HTTP API

RBAC API

基于角色的访问控制API仅在Grafana Enterprise中可用。阅读更多Grafana企业

该API可用于创建、更新、删除、获取和列出角色。

查看哪些基本角色或固定角色具有所需的权限,请参见RBAC角色定义

获得地位

/ api /访问控制/状态

返回一个指示器,用于检查是否启用了基于角色的访问控制。

需要的权限

行动 范围
状态:accesscontrol 服务:accesscontrol

示例请求

GET /api/access-control/status Accept: application/json Content-Type: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"enabled": true}

状态码

代码 描述
200 返回一个标志,指示是否启用基于角色的访问控制。
403 拒绝访问
404 未找到,表明基于角色的访问控制根本不可用。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

创建和管理自定义角色

获取所有角色

GET / api /访问控制角色

获取所有现有角色。响应包含用户所登录的组织的所有全局角色和组织本地角色。

查询参数:

  • includeHidden:可选的。设置为真正的包含的角色隐藏的

需要的权限

行动 范围
角色:读 角色:*

示例请求

GET /api/access-control/roles Accept: application/json Content-Type: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"version": 3, "uid": "XvHQJq57z", "name": "fixed:reports:reader", "displayName": "Report reader", "description": "Read all Report and shared Report settings.", "group": " reports ", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00", "global": false}, {"version": 5, "uid": "vi9mlLjGz", "name": "fixed:datasources. "permission:writer", "description: "Create, read or delete data source permissions.", "global": true, "updated": "2021-05-13T22:41:49+02:00", "created": "2021-05-13T16:24:26+02:00"}]

状态码

代码 描述
200 返回全局角色和组织本地角色。
403 拒绝访问
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

找一个角色

GET / api /访问控制/角色/:uid

获取给定UID的角色。

需要的权限

行动 范围
角色:读 角色:*

示例请求

GET /api/access-control/roles/PYnDO3rMk Accept: application/json Content-Type: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"version": 4, "uid": "6dNwJq57z", "name": "fixed:reports:writer", "displayName": "Report writer", "description": "创建、读取、更新或删除所有报告和共享报告设置。","group": "reports ", "permissions": [{"action": "reports:delete", "scope": "reports:*", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00"}, {"action": "reports:read", "scope": "reports:*", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00":“2021 - 11 - 19 t10:48:00 + 01:00”},{“行动”:报告:“送出去”,“范围”:“报告:*”,“更新”:“2021 - 11 - 19 t10:48:00 + 01:00”,“创建”:“2021 - 11 - 19 t10:48:00 + 01:00 "},{"行动”:“报告:创建”,“范围”:“”,“更新”:“2021 - 11 - 19 t10:48:00 + 01:00”,“创建”:“2021 - 11 - 19 t10:48:00 + 01:00 "},{"行动”:“报告:写”,“范围”:“报告:*”,“更新”:“2021 - 11 - 19 t10:48:00 + 01:00”,“创建”:“2021 - 11 - 19 t10:48:00 + 01:00”},{“行动”:“报告。设置:阅读”、“范围”:“”、“更新”:“2021 - 11 - 19 - t10:48:00 + 01:00”、“创建”:“2021 - 11 - 19 t10:48:00 + 01:00”},{“行动”:“报告。设置:write", "scope": "", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00"}], "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00", "global": false}

状态码

代码 描述
200 返回Role。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

创建一个新的自定义角色

POST / api /访问控制角色

创建一个新的自定义角色,并将赋予的权限映射到该角色。请注意具有相同前缀的角色固定的角色不能被创造。

需要的权限

权限:类型:委托作用域确保用户只能创建具有相同权限的自定义角色,或者用户拥有的权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法创建允许这样做的自定义角色。这样做是为了防止特权升级。

行动 范围
角色:写 权限:类型:委托

示例请求

POST /api/access-control/roles Accept: application/json Content-Type: application/json {"version": 1, "uid": "jZrmlLCGka", "name": "custom:delete:roles", "displayName": "custom delete roles", "description": "我的自定义角色,赋予用户删除角色的权限","group":"我的组","displayName": "我的自定义角色","global": false, "permissions": [{"action": "roles:delete", "scope": "permissions:type:delegate"}]}

JSON主体模式

字段名 日期类型 要求 描述
uid 字符串 没有 角色的UID。如果不存在,将自动为您创建UID并返回响应。请参阅自定义角色获取更多信息。
全球 布尔 没有 指示角色是否是全局角色的标志。如果设置为,通过身份验证的用户的默认org ID将从请求中使用。
版本 数量 没有 角色版本。如果不存在,版本0将被分配给该角色并在响应中返回。请参阅自定义角色获取更多信息。
的名字 字符串 是的 角色名称。指自定义角色获取更多信息。
描述 字符串 没有 角色的描述。
displayName 字符串 没有 显示角色的名称,在UI中可见。
集团 字符串 没有 角色所属的组名。
隐藏的 布尔 没有 指定角色是否隐藏。如果设置为真正的,则该角色不显示在角色选择器中。除非显式指定,否则API端点不会列出它。
权限 许可 没有 如果不存在,则创建角色时没有任何权限。

许可

字段名 数据类型 要求 描述
行动 字符串 是的 自定义角色操作和范围获取可用操作的完整列表。
范围 字符串 没有 如果不存在,则没有作用域映射到权限。指自定义角色操作和范围有关可用作用域的完整列表。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"version": 2, "uid": "jZrmlLCGka", "name": "custom:delete:create:roles", "displayName": "custom delete:create roles", "description": "我的自定义角色,赋予用户删除和创建角色的权限","group":"我的组","displayName": "我的自定义角色","global": false, "permissions": [{"action": "roles:delete", "scope": "permissions:type:delegate", "updated": "2021-05-13T23:19:46+02:00", "created": "2021-05-13T23:19:46+02:00"}], "updated": "2021-05-13T23:19:46+02:00":"2021-05-13T23:20:51.416518+02:00", "created": "2021-05-13T23:19:46+02:00"}

状态码

代码 描述
200 完成角色的更新。
400 错误的请求(无效的json,缺少内容类型,缺少或无效的字段,等等)。
403 拒绝访问
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

更新角色

把/ api /访问控制/角色/:uid

使用给定的UID更新角色及其权限。该操作是幂等的,角色的所有权限将根据请求内容被替换。您需要在每次更新时增加角色的版本,否则请求将失败。

你可以更新自定义角色和基本角色权限。然而固定角色不可更新。

需要的权限

权限:类型:委托作用域确保用户只能更新具有相同权限的自定义角色,或者用户拥有的权限子集。例如,如果用户没有创建用户所需的权限,他们将无法更新允许这样做的自定义角色。这样做是为了防止特权升级。

行动 范围
角色:写 权限:类型:委托

示例请求

PUT /api/access-control/roles/jZrmlLCGka Accept: application/json Content-Type: application/json {"version": 3, "name": "custom:delete:write:roles", "displayName": "custom delete:write roles", "description": "我的自定义角色,赋予用户删除和写入角色的权限","group":"My group", "displayName": "My custom role ", "global": false, "permissions": [{"action": "roles:delete", "scope": "permissions:type:delegate"}, {"action": "roles:write", "scope": "scope": "scope": "scope": "role:write":" scope": "scope": "scope": "role:write":" scope": "scope": "role:write":" scope": "scope": "role:write":"permission:type:delegate"}]}

JSON主体模式

字段名 数据类型 要求 描述
版本 数量 是的 角色版本。必须递增,更新才能工作。
的名字 字符串 是的 角色名称。
描述 字符串 没有 角色的描述。
displayName 字符串 没有 显示角色的名称,在UI中可见。
集团 字符串 没有 角色所属的组名。
隐藏的 布尔 没有 指定角色是否隐藏。如果设置为真正的,则该角色不显示在角色选择器中。除非显式指定,否则API端点不会列出它。
权限 权限列表 没有 更新后角色权限的完整列表。

许可

字段名 数据类型 要求 描述
行动 字符串 是的 自定义角色操作和范围获取可用操作的完整列表。
范围 字符串 没有 如果不存在,则没有作用域映射到权限。指自定义角色操作和范围有关可用作用域的完整列表。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"version":3, "uid":"jZrmlLCGka", "name":"custom:delete:write:roles", "displayName":"custom delete:write roles", "description":"我的自定义角色,赋予用户删除和写入角色的权限","group":"我的组","displayName":“我的自定义角色”,“权限”:[{“action”:“角色:删除”,“scope”:“权限:类型:委托”,“updated”:“2021-08-06T18:27:40+02:00”,“created”:“permissions:type:delegate”},{“action”:“roles:write”,“scope”:“permissions:type:delegate”,“updated”:“2021-08-06T18:27:41+02:00”,“created”:“2021-08-06T18:27:41+02:00”}],“updated”:“2021-08-06T18:27:41+02:00”,“created”:“2021-08-06T18:27:40+02:00”,“global”:false}

状态码

代码 描述
200 完成角色的更新。
400 错误的请求(无效的json,缺少内容类型,缺少或无效的字段,等等)。
403 拒绝访问
404 没有发现角色要更新。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

删除自定义角色

删除/ api /访问控制/角色/:uid吗?力= false

删除具有给定UID的角色及其权限。如果分配了角色,删除操作将失败,除非查询参数设置为真正的,在这种情况下,所有的赋值也将被删除。

需要的权限

权限:类型:委托作用域确保用户只能删除具有相同权限的自定义角色或用户拥有的权限子集。例如,如果用户没有创建用户所需的权限,他们将无法删除允许这样做的自定义角色。

行动 范围
角色:删除 权限:类型:委托

示例请求

删除/ api /访问控制/角色/ jZrmlLCGka吗?力=true&global=false Accept: application/json

查询参数

参数 类型 要求 描述
布尔 没有 当设置为真正的,该角色将连同它的所有赋值一起被删除。
全球 布尔 没有 指示角色是否是全局角色的标志。如果设置为false,将从请求中使用经过身份验证的用户的默认org ID。请参阅对RBAC获取更多信息。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "Role deleted"}

状态码

代码 描述
200 完成角色的删除。
400 错误的请求(无效的json,缺少内容类型,缺少或无效的字段,等等)。
403 拒绝访问
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

创建和删除用户角色分配

列出分配给用户的角色

GET / api /访问控制/用户/:userId /角色

列出已直接分配给给定用户的角色。该列表不包括基本角色(查看器、编辑器、管理员或Grafana管理员),也不包括从团队继承的角色。

查询参数:

  • includeHidden:可选的。设置为真正的包含的角色隐藏的

需要的权限

行动 范围
users.roles:阅读 用户:id:<用户名>

示例请求

GET /api/access-control/users/1/roles Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"version": 4, "uid": "6dNwJq57z", "name": "fixed:reports:writer", "displayName": "Report writer", "description": "创建、读取、更新或删除所有报告和共享报告设置。","group": " reports ", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00", "global": false}]

状态码

代码 描述
200 返回已分配角色的集合。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

列出你的权限

GET / api /访问控制/用户/权限

列出授予登录用户的权限。

需要的权限

不需要权限。

查询参数

参数 类型 要求 描述
reloadcache 布尔 没有 用于重新加载权限缓存的标志。

示例请求

GET /api/access-control/user/permissions Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"dashboards:read": ["dashboards:uid:70KrY6IVz"], "dashboards:write": ["dashboards:uid:70KrY6IVz"], "数据源。Id:read": ["datasources:*"], "datasources:read": ["datasources:*"], "datasources:explore": ["" "], "datasources:query": ["datasources:uid:grafana"], "datasources:read": ["datasources:uid:grafana"], "org:read": ["" "}

状态码

代码 描述
200 返回已分配的权限集。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

列出分配给用户的权限

GET / api /访问控制/用户/:userId /权限

列出授予给定用户的权限。

需要的权限

行动 范围
users.permissions:阅读 用户:id:<用户名>

示例请求

GET /api/access-control/users/1/permissions Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"action": "ldap. conf "]状态:read", "scope": "}, {"action": "ldap。用户:read", "scope": "}]

状态码

代码 描述
200 返回已分配的权限集。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

添加用户角色分配

POST / api /访问控制/用户/:userId /角色

为用户指定角色。

对于批量更新,请考虑设置用户角色分配

需要的权限

权限:类型:委托作用域确保用户只能分配与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:添加 权限:类型:委托

示例请求

POST /api/access-control/users/1/roles Accept: application/json Content-Type: application/json {"global": false, "roleUid": "XvHQJq57z"}

JSON主体模式

字段名 数据类型 要求 描述
roleUid 字符串 是的 角色的UID。
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将用于请求创建组织本地分配。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "已添加给用户的角色。"}

状态码

代码 描述
200 角色被分配给用户。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

删除用户角色分配

删除/ api /访问控制/用户/:userId /角色/:roleUID

撤销用户的角色。

对于批量更新,请考虑设置用户角色分配

需要的权限

权限:类型:委托作用域确保用户只能取消与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法取消分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:删除 权限:类型:委托

查询参数

参数 类型 要求 描述
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将用于删除分配的请求。

示例请求

DELETE /api/access-control/users/1/roles/AFUXBHKnk Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "从用户中删除的角色。"}

状态码

代码 描述
200 角色未分配。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

设置用户角色分配

把/ api /访问控制/用户/:userId /角色

更新用户的角色分配以匹配所提供的uid集。这将删除任何不在请求中的已分配角色,并添加在集合中但尚未分配给用户的角色。

如果您想添加或删除单个角色,请考虑使用添加用户角色分配删除用户角色分配代替。

需要的权限

权限:类型:委托作用域确保用户只能分配或取消分配具有相同权限的角色,或具有用户权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配或取消分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:添加 权限:类型:委托
users.roles:删除 权限:类型:委托

示例请求

PUT /api/access-control/users/1/roles Accept: application/json Content-Type: application/json {"global": false, "roleUids": ["ZiHQJq5nk", "GzNQ1357k"]}

JSON主体模式

字段名 日期类型 要求 描述
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将从请求中使用。
roleUids 列表 是的 角色uid列表。
includeHidden 布尔 没有 指定是否应该更新隐藏角色分配。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "User roles have been updated."}

状态码

代码 描述
200 角色已分配。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

创建和删除服务帐户角色分配

列出分配给服务帐户的角色

GET / api /访问控制/用户/:serviceAccountId /角色

列出已直接分配给给定服务帐户的角色。该列表不包括基本角色(查看器,编辑器,管理员或Grafana管理员)。

查询参数:

  • includeHidden:可选的。设置为真正的包含的角色隐藏的

需要的权限

行动 范围
users.roles:阅读 用户:id:<服务帐户ID>

示例请求

GET /api/access-control/users/1/roles Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"version": 4, "uid": "6dNwJq57z", "name": "fixed:reports:writer", "displayName": "Report writer", "description": "创建、读取、更新或删除所有报告和共享报告设置。","group": " reports ", "updated": "2021-11-19T10:48:00+01:00", "created": "2021-11-19T10:48:00+01:00", "global": false}]

状态码

代码 描述
200 返回已分配角色的集合。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

列出分配给服务帐户的权限

GET / api /访问控制/用户/:serviceAccountId /权限

列出给定服务帐户具有的权限。

需要的权限

行动 范围
users.permissions:阅读 用户:id:<服务帐户ID>

示例请求

GET /api/access-control/users/1/permissions Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"action": "ldap. conf "]状态:read", "scope": "}, {"action": "ldap。用户:read", "scope": "}]

状态码

代码 描述
200 返回已分配的权限集。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

添加服务帐户角色分配

POST / api /访问控制/用户/:serviceAccountId /角色

为指定的服务帐户分配角色。

对于批量更新,请考虑设置服务帐户角色分配

需要的权限

权限:类型:委托作用域确保用户只能分配与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:添加 权限:类型:委托

示例请求

POST /api/access-control/users/1/roles Accept: application/json Content-Type: application/json {"global": false, "roleUid": "XvHQJq57z"}

JSON主体模式

字段名 数据类型 要求 描述
roleUid 字符串 是的 角色的UID。
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将用于请求创建组织本地分配。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "已添加给用户的角色。"}

状态码

代码 描述
200 角色被分配给用户。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

删除服务帐户角色分配

删除/ api /访问控制/用户/:serviceAccountId /角色/:roleUID

从服务帐户撤销角色。

对于批量更新,请考虑设置服务帐户角色分配

需要的权限

权限:类型:委托作用域确保用户只能取消与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法取消分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:删除 权限:类型:委托

查询参数

参数 类型 要求 描述
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将用于删除分配的请求。

示例请求

DELETE /api/access-control/users/1/roles/AFUXBHKnk Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "从用户中删除的角色。"}

状态码

代码 描述
200 角色未分配。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

设置服务帐户角色分配

把/ api /访问控制/用户/:serviceAccountId /角色

更新服务帐户的角色分配,以匹配所提供的uid集。这将删除请求中未分配的任何角色,并添加集合中但尚未分配给服务帐户的角色。

如果您想添加或删除单个角色,请考虑使用添加服务帐户角色分配删除服务帐户角色分配代替。

需要的权限

权限:类型:委托作用域确保用户只能分配或取消分配具有相同权限的角色,或具有用户权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配或取消分配允许这样做的角色。这样做是为了防止特权升级。

行动 范围
users.roles:添加 权限:类型:委托
users.roles:删除 权限:类型:委托

示例请求

PUT /api/access-control/users/1/roles Accept: application/json Content-Type: application/json {"global": false, "roleUids": ["ZiHQJq5nk", "GzNQ1357k"]}

JSON主体模式

字段名 日期类型 要求 描述
全球 布尔 没有 指示赋值是否为全局的标志。如果设置为,通过身份验证的用户的默认org ID将从请求中使用。
roleUids 列表 是的 角色uid列表。
includeHidden 布尔 没有 指定是否应该更新隐藏角色分配。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "User roles have been updated."}

状态码

代码 描述
200 角色已分配。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

创建和删除团队角色分配

列出分配给团队的角色

GET / api /访问控制/团队/:teamId /角色

列出直接分配给给定团队的角色。

查询参数:

  • includeHidden:可选的。设置为真正的包含的角色隐藏的

需要的权限

行动 范围
teams.roles:阅读 团队:id:<团队ID >

示例请求

GET /api/access-control/teams/1/roles Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 [{"version": 4, "uid": "j08ZBi-nk", "name": "fixed:licensing:reader", "displayName": " licensing reader", "description": "读取授权信息和授权报告。","group": "Licenses", "updated": "2022-02-03T14:19:50+01:00", "created": "0001-01- 01t00:00:00 - 00z ", "global": false}]

状态码

代码 描述
200 返回已分配角色的集合。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

添加一个团队角色分配

POST / api /访问控制/团队/:teamId /角色

为一个特定的团队分配一个角色。

对于批量更新,请考虑设置团队角色分配

需要的权限

权限:类型:委托作用域确保用户只能分配与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配包含这些权限的角色。这样做是为了防止特权升级。

行动 范围
teams.roles:添加 权限:类型:委托

示例请求

POST /api/access-control/teams/1/roles Accept: application/json Content-Type: application/json {"roleUid": "XvHQJq57z"}

JSON主体模式

字段名 数据类型 要求 描述
roleUid 字符串 是的 角色的UID。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "已添加到团队的角色。"}

状态码

代码 描述
200 角色被分配给一个团队。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

删除一个团队角色分配

删除/ api /访问控制/团队/:团队/角色/:roleUID

撤销团队中的角色。

对于批量更新,请考虑设置团队角色分配

需要的权限

权限:类型:委托作用域确保用户只能取消与用户具有相同权限的角色或权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法分配包含这些权限的角色。这样做是为了防止特权升级。

行动 范围
teams.roles:删除 权限:类型:委托

示例请求

DELETE /api/access-control/teams/1/roles/AFUXBHKnk Accept: application/json

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8{"消息":"角色已从团队中移除。"}

状态码

代码 描述
200 角色未分配。
403 拒绝访问。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

设置团队角色分配

把/ api /访问控制/团队/:teamId /角色

更新团队的角色分配以匹配所提供的uid集。这将删除任何不在请求中的已分配角色,并添加在集合中但尚未分配给用户的角色。

如果您想添加或删除单个角色,请考虑使用添加一个团队角色分配删除一个团队角色分配代替。

需要的权限

权限:类型:委托作用域确保用户只能分配或取消分配具有相同权限的角色,或具有用户权限的子集。例如,如果用户没有创建用户所需的权限,他们将无法将角色分配或取消分配给允许这样做的团队。这样做是为了防止特权升级。

行动 范围
teams.roles:添加 权限:类型:委托
teams.roles:删除 权限:类型:委托

示例请求

PUT /api/access-control/teams/1/roles Accept: application/json Content-Type: application/json {"roleUids": ["ZiHQJq5nk", "GzNQ1357k"]}

JSON主体模式

字段名 日期类型 要求 描述
roleUids 列表 是的 角色uid列表。
includeHidden 布尔 没有 指定是否应该更新隐藏角色分配。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "Team roles have been updated."}

状态码

代码 描述
200 角色已分配。
403 拒绝访问。
404 未找到角色。
500 意想不到的错误。更多细节请参考正文和/或服务器日志。

将基本角色重置为默认值

POST / api /访问控制/角色/硬复位

权限:类型:升级作用域允许用户重置基本角色权限。这可能导致基本角色的权限超过调用者的权限。

将基本角色的权限重置为默认权限。

需要的权限

行动 范围
角色:写 权限:类型:升级

示例请求

POST /api/access-control/roles/hard-reset Accept: application/json Content-Type: application/json {"BasicRoles": true}

JSON主体模式

字段名 数据类型 要求 描述
BasicRoles 布尔 没有 选项来重置基本角色权限。

示例响应

HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"message": "Reset performed"}

状态码

代码 描述
200 重新执行
500 日志含义重置基本角色失败