Group
В данном разделе представлена документация API для управления группами в хранилище идентификации.
|
Будьте осторожны, предоставляя права на запись для конечных точек групп идентификации, не предназначенных только для чтения. Если пользователь может изменять членство в группе, он может добавить свою сущность в группу с более высокими привилегиями. |
1. Создание группы
Эта конечная точка создает или обновляет группу.
| Метод | Путь |
|---|---|
|
|
1.1. Параметры
-
name(string: entity-<UUID>)- имя группы. Если установлено (и ID не установлен), обновляет соответствующую существующую группу или создаёт новую. -
id(string: <необязательно>)- ID группы. Если установлен, обновляет соответствующую существующую группу. -
type(string: "internal")- тип группы,internalилиexternal. По умолчаниюinternal. -
metadata(key-value-map: {})- метаданные, которые будут ассоциироваться с группой. -
policies(list of strings: [])- политики, которые будут привязаны к группе. -
member_group_ids(list of strings: [])- ID групп, которые будут назначены в качестве членов группы. -
member_entity_ids(list of strings: [])- ID сущностей, которые будут назначены в качестве членов группы.
{
"metadata": {
"hello": "world"
},
"policies": ["grouppolicy1", "grouppolicy2"]
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/identity/group
{
"data": {
"id": "363926d8-dd8b-c9f0-21f8-7b248be80ce1",
"name": "group_ab813d63"
}
}
2. Чтение группы по ID
Эта конечная точка запрашивает группу по ее идентификатору.
| Метод | Путь |
|---|---|
|
|
2.1. Параметры
-
id(string: <обязательно>)- идентификатор группы.
$ curl \
--header "X-Vault-Token: ..." \
http://127.0.0.1:8200/v1/identity/group/id/363926d8-dd8b-c9f0-21f8-7b248be80ce1
{
"data": {
"alias": {},
"creation_time": "2025-07-29T11:20:54.306230965Z",
"id": "363926d8-dd8b-c9f0-21f8-7b248be80ce1",
"last_update_time": "2025-07-29T11:23:02.35164446Z",
"member_entity_ids": null,
"member_group_ids": null,
"metadata": {
"hello": "world"
},
"modify_index": 3,
"name": "group_ab813d63",
"namespace_id": "root",
"parent_group_ids": null,
"policies": [
"grouppolicy1",
"grouppolicy2"
],
"type": "internal"
}
}
3. Обновление группы по ID
Эта конечная точка используется для обновления существующей группы.
| Метод | Путь |
|---|---|
|
|
3.1. Параметры
-
id(string: <обязательно>)- идентификатор группы. -
name(string: entity-<UUID>)- имя группы. -
type(string: "internal")- тип группы,internalилиexternal. По умолчаниюinternal. -
metadata(key-value-map: {})- метаданные, которые будут ассоциироваться с группой. -
policies(list of strings: [])- политики, которые будут привязаны к группе. -
member_group_ids(list of strings: [])- ID групп, которые будут назначены в качестве членов группы. -
member_entity_ids(list of strings: [])- ID сущностей, которые будут назначены в качестве членов группы.
{
"name": "testgroupname",
"metadata": {
"hello": "everyone"
},
"policies": ["grouppolicy2", "grouppolicy3"]
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/identity/group/id/363926d8-dd8b-c9f0-21f8-7b248be80ce1
5. Список групп по ID
Эта конечная точка возвращает список доступных групп по их идентификаторам.
| Метод | Путь |
|---|---|
|
|
|
|
$ curl \
--header "X-Vault-Token: ..." \
--request LIST \
http://127.0.0.1:8200/v1/identity/group/id
{
"data": {
"keys": [
"052567cf-1580-6f20-50c8-d38bc46dae6e",
"26da8035-6691-b89e-67ac-ebf9ea7f9893",
"363926d8-dd8b-c9f0-21f8-7b248be80ce1",
"5c4a5720-7408-c113-1dcc-9ede725d0ac8",
"d55e0f34-5c16-38ae-87af-324c9b656c43",
"e4e56e04-0dec-9b68-9b20-a450975d898e"
]
}
}
6. Создание/обновление группы по имени
Эта конечная точка используется для создания или обновления группы по ее имени.
| Метод | Путь |
|---|---|
|
|
6.1. Параметры
-
name(string: entity-<UUID>)- имя группы. -
type(string: "internal")- тип группы,internalилиexternal. По умолчаниюinternal. -
metadata(key-value-map: {})- метаданные, которые будут ассоциироваться с группой. -
policies(list of strings: [])- политики, которые будут привязаны к группе. -
member_group_ids(list of strings: [])- ID групп, которые будут назначены в качестве членов группы. -
member_entity_ids(list of strings: [])- ID сущностей, которые будут назначены в качестве членов группы.
{
"metadata": {
"hello": "everyone"
},
"policies": ["grouppolicy2", "grouppolicy3"]
}
$ curl \
--header "X-Vault-Token: ..." \
--request POST \
--data @payload.json \
http://127.0.0.1:8200/v1/identity/group/name/testgroupname
{
"request_id": "b98b4a3d-a9f1-e151-11e1-ad91cfb08351",
"lease_id": "",
"lease_duration": 0,
"renewable": false,
"data": {
"id": "5a3a04a0-0c3a-a4c3-74e8-26b1adbeaece",
"name": "testgroupname"
},
"warnings": null
}
7. Чтение группы по имени
Эта конечная точка запрашивает группу по ее имени.
| Метод | Путь |
|---|---|
|
|
7.1. Параметры
-
name(string: <обязательно>)- имя группы.
$ curl \
--header "X-Vault-Token: ..." \
http://127.0.0.1:8200/v1/identity/group/name/testgroupname
{
"data": {
"alias": {},
"creation_time": "2025-07-29T11:25:04.395128091Z",
"id": "5a3a04a0-0c3a-a4c3-74e8-26b1adbeaece",
"last_update_time": "2025-07-29T11:25:04.395128091Z",
"member_entity_ids": [],
"member_group_ids": null,
"metadata": {
"foo": "bar"
},
"modify_index": 1,
"name": "testgroupname",
"parent_group_ids": null,
"policies": ["grouppolicy1", "grouppolicy2"],
"type": "internal"
}
}
9. Список групп по имени
Эта конечная точка возвращает список доступных групп по их именам.
| Метод | Путь |
|---|---|
|
|
|
|
$ curl \
--header "X-Vault-Token: ..." \
--request LIST \
http://127.0.0.1:8200/v1/identity/group/name
{
"data": {
"keys": ["testgroupname"]
}
}