这是关于下一个《Grafana》的版本。有关最新的稳定版本,请转到最新版本.
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 | 日志含义重置基本角色失败 |
相关Grafana资源
开幕主题演讲:《Grafana 9》有什么新内容?
Raj Dutt, Myrle Krantz和Torkel Ödegaard揭开了Grafana 9的新内容。观看2022年GrafanaCONline开幕式主题演讲。随需应变。
使用Grafana插件统一您的数据:Datadog, Splunk, MongoDB等
在本次网络研讨会中,学习如何利用Grafana的插件生态系统访问80多个数据源,包括Datadog、Splunk、MongoDB等的插件。
从Grafana Enterprise和可观察性开始
加入Grafanabob电竞频道实验室团队,进行30分钟的演示,演示如何开始使用Grafana堆栈,这样您就可以在短短几分钟内从零到可观察性。