创建或更新应用程序权限 API
编辑创建或更新应用程序权限 API
编辑添加或更新应用程序权限。
请求体
编辑请求体是一个 JSON 对象,其中字段名称是应用程序名称,每个字段的值是一个对象。此内部对象中的字段是权限名称,每个值是一个包含以下字段的 JSON 对象:
-
actions
- (字符串数组)此权限授予的操作名称列表。此字段必须存在,并且不能是空数组。
-
metadata
- (对象)可选的元数据。在
metadata
对象中,以_
开头的键保留供系统使用。
验证
编辑- 应用程序名称
-
应用程序名称由前缀和一个可选的后缀组成,它们符合以下规则:
- 前缀必须以小写 ASCII 字母开头
- 前缀必须仅包含 ASCII 字母或数字
- 前缀的长度必须至少为 3 个字符
- 如果后缀存在,则必须以
-
或_
开头 - 后缀不能包含以下任何字符:
\
、/
、*
、?
、"
、<
、>
、|
、,
、*
- 名称的任何部分都不能包含空格。
- 权限名称
- 权限名称必须以小写 ASCII 字母开头,并且必须仅包含 ASCII 字母和数字以及字符
_
、-
和.
- 操作名称
- 操作名称可以包含任意数量的可打印 ASCII 字符,并且必须包含以下字符中的至少一个:
/
、*
、:
响应体
编辑成功的调用返回一个 JSON 结构,显示权限是否已创建或更新。
示例
编辑要添加单个权限,请向 /_security/privilege/
端点提交 PUT 或 POST 请求。例如
resp = client.security.put_privileges( privileges={ "myapp": { "read": { "actions": [ "data:read/*", "action:login" ], "metadata": { "description": "Read access to myapp" } } } }, ) print(resp)
const response = await client.security.putPrivileges({ privileges: { myapp: { read: { actions: ["data:read/*", "action:login"], metadata: { description: "Read access to myapp", }, }, }, }, }); console.log(response);
PUT /_security/privilege { "myapp": { "read": { "actions": [ "data:read/*" , "action:login" ], "metadata": { "description": "Read access to myapp" } } } }
这些字符串在 "myapp" 应用程序中具有意义。Elasticsearch 不会为它们分配任何含义。 |
|
此处使用通配符 ( |
|
metadata 对象是可选的。 |
要添加多个权限,请向 /_security/privilege/
端点提交 POST 请求。例如
resp = client.security.put_privileges( privileges={ "app01": { "read": { "actions": [ "action:login", "data:read/*" ] }, "write": { "actions": [ "action:login", "data:write/*" ] } }, "app02": { "all": { "actions": [ "*" ] } } }, ) print(resp)
const response = await client.security.putPrivileges({ privileges: { app01: { read: { actions: ["action:login", "data:read/*"], }, write: { actions: ["action:login", "data:write/*"], }, }, app02: { all: { actions: ["*"], }, }, }, }); console.log(response);
PUT /_security/privilege { "app01": { "read": { "actions": [ "action:login", "data:read/*" ] }, "write": { "actions": [ "action:login", "data:write/*" ] } }, "app02": { "all": { "actions": [ "*" ] } } }
成功的调用返回一个 JSON 结构,显示权限是否已创建或更新。
{ "app02": { "all": { "created": true } }, "app01": { "read": { "created": true }, "write": { "created": true } } }