Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Group

В данном разделе представлена документация API для управления группами в хранилище идентификации.

Будьте осторожны, предоставляя права на запись для конечных точек групп идентификации, не предназначенных только для чтения. Если пользователь может изменять членство в группе, он может добавить свою сущность в группу с более высокими привилегиями.

1. Создание группы

Эта конечная точка создает или обновляет группу.

Метод Путь

POST

/identity/group

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

Эта конечная точка запрашивает группу по ее идентификатору.

Метод Путь

GET

/identity/group/id/: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

Эта конечная точка используется для обновления существующей группы.

Метод Путь

POST

/identity/group/id/: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

4. Удаление группы по ID

Эта конечная точка удаляет группу.

Метод Путь

DELETE

/identity/group/id/:id

4.1. Параметры

  • id (string: <обязательно>) - идентификатор группы.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/group/id/363926d8-dd8b-c9f0-21f8-7b248be80ce1

5. Список групп по ID

Эта конечная точка возвращает список доступных групп по их идентификаторам.

Метод Путь

LIST

/identity/group/id

GET

/identity/group/id?list=true

Пример запроса:
$ 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. Создание/обновление группы по имени

Эта конечная точка используется для создания или обновления группы по ее имени.

Метод Путь

POST

/identity/group/name/:name

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. Чтение группы по имени

Эта конечная точка запрашивает группу по ее имени.

Метод Путь

GET

/identity/group/name/:name

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"
  }
}

8. Удаление группы по имени

Эта конечная точка удаляет группу, по заданному имени.

Метод Путь

DELETE

/identity/group/name/:name

8.1. Параметры

  • name (string: <обязательно>) - имя группы.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/group/name/testgroupname

9. Список групп по имени

Эта конечная точка возвращает список доступных групп по их именам.

Метод Путь

LIST

/identity/group/name

GET

/identity/group/name?list=true

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/identity/group/name
Пример ответа:
{
  "data": {
    "keys": ["testgroupname"]
  }
}