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

Entity Alias

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

1. Создание псевдонима сущности

Перед созданием любого псевдонима важно учесть уникальность имени псевдонима, поскольку существуют потенциальные проблемы безопасности. Основная проблема связана с повторным использованием псевдонима. Существует возможность связать несколько аутентифицированных сущностей с одним и тем же псевдонимом, и таким образом они получат доступ ко всем его привилегиям. Рекомендуется, когда это возможно, создавать уникальный псевдоним для каждой сущности. Это особенно актуально в случае машинно созданных сущностей.

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

Метод Путь

POST

/identity/entity-alias

1.1. Параметры

  • name (string: <обязательно>) - имя псевдонима. Имя должно быть идентификатором клиента в источнике аутентификации. Например, если псевдоним принадлежит к бекенду userpass, имя должно быть действительным именем пользователя в методе аутентификации userpass. Если псевдоним принадлежит ldap, это должно быть имя пользователя ldap. Если псевдоним принадлежит методу аутентификации approle, имя должно быть действительным RoleID.

  • id (string: <необязательно>) - ID псевдонима сущности. Если установлен, обновляет соответствующий псевдоним сущности.

  • canonical_id (string: <обязательно>) - ID сущности, к которой принадлежит этот псевдоним.

  • mount_accessor (string: <обязательно>) - accessor монтирования, к которому должен принадлежать псевдоним.

  • custom_metadata (map<string|string>: <необязательно>) - словарь пользовательских метаданных, предоставленных пользователем и предназначенных для описания псевдонима.

Пример тела запроса:
{
  "name": "testuser",
  "canonical_id": "404e57bc-a0b1-a80f-0a73-b6e92e8a52d3",
  "mount_accessor": "auth_userpass_e50b1a44",
  "custom_metadata": {
    "contact_email": "james_updated@example.com"
  }
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity-alias
Пример ответа:
{
  "data": {
    "canonical_id": "404e57bc-a0b1-a80f-0a73-b6e92e8a52d3",
    "id": "34982d3d-e3ce-5d8b-6e5f-b9bb34246c31"
  }
}

2. Чтение псевдонима сущности по ID

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

Метод Путь

GET

/identity/entity-alias/id/:id

2.1. Параметры

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

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/identity/entity-alias/id/34982d3d-e3ce-5d8b-6e5f-b9bb34246c31
Пример ответа:
{
  "request_id": "633b6915-8549-a91c-da62-3f5f554bc4b5",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "canonical_id": "404e57bc-a0b1-a80f-0a73-b6e92e8a52d3",
    "creation_time": "2025-07-29T09:39:49.497867144Z",
    "custom_metadata": {
      "contact_email": "james_updated@example.com"
    },
    "id": "34982d3d-e3ce-5d8b-6e5f-b9bb34246c31",
    "last_update_time": "2025-07-29T09:39:49.497867144Z",
    "local": false,
    "merged_from_canonical_ids": null,
    "metadata": null,
    "mount_accessor": "auth_userpass_e50b1a44",
    "mount_path": "auth/userpass/",
    "mount_type": "userpass",
    "name": "testuser",
    "namespace_id": "root"
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}

3. Обновление псевдонима сущности по ID

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

Метод Путь

POST

/identity/entity-alias/id/:id

3.1. Параметры

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

  • name (string: "") - имя псевдонима. Имя должно быть идентификатором клиента в источнике аутентификации. Например, если псевдоним принадлежит к бекенду userpass, имя должно быть действительным именем пользователя в бекенде userpass. Если псевдоним принадлежит ldap, это должно быть имя пользователя ldap.

  • canonical_id (string: "") - ID сущности, к которой принадлежит этот псевдоним.

  • mount_accessor (string: "") - accessor монтирования, к которому должен принадлежать псевдоним.

  • custom_metadata (map<string|string>: <необязательно>) - карта пользовательских метаданных, предоставленных пользователем и предназначенных для описания псевдонима.

3.2. Обновление с помощью CLI

Пример тела запроса:
{
  "name": "testuser",
  "canonical_id": "404e57bc-a0b1-a80f-0a73-b6e92e8a52d3",
  "mount_accessor": "auth_userpass_e50b1a44",
  "custom_metadata": {
    "contact_email": "james@example.com"
  }
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/identity/entity-alias/id/34982d3d-e3ce-5d8b-6e5f-b9bb34246c31
Пример ответа:
{
  "data": {
    "canonical_id": "404e57bc-a0b1-a80f-0a73-b6e92e8a52d3",
    "id": "34982d3d-e3ce-5d8b-6e5f-b9bb34246c31"
  }
}

3.3. Обновление с помощью веб-интерфейса

  1. В интерфейсе StarVault перейдите на вкладку AccessEntities.

    entities
  2. Перейдите ко вкладке Aliases и выберите из списка псевдоним сущености для редактирования.

    aliases
  3. Для редактирования параметров псевдонима сущности нажмите кнопку Edit entity aliases. Внесите свои изменения и для сохранения нажмите Save.

    edit entity aliases

4. Удаление псевдонима сущности по ID

Эта конечная точка удаляет псевдоним из соответствующей сущности.

Метод Путь

DELETE

/identity/entity-alias/id/:id

4.1. Параметры

  • id (string: <обязательно>) - Идентификатор псевдонима сущности.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/identity/entity-alias/id/34982d3d-e3ce-5d8b-6e5f-b9bb34246c31

5. Список псевдонимов сущностей по ID

Конечный пункт списка по ID возвращает доступные псевдонимы сущностей и ключевые данные по их идентификаторам.

Метод Путь

LIST

/identity/entity-alias/id

GET

/identity/entity-alias/id?list=true

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request LIST \
    http://127.0.0.1:8200/v1/identity/entity-alias/id
Пример ответа:
{
    "data": {
        "key_info": {
            "35405f3c-884a-a3ff-4176-bac57f220811": {
                "canonical_id": "0c34f097-6313-9597-3b22-91e34072ad28",
                "custom_metadata": null,
                "local": false,
                "mount_accessor": "auth_jwt_e47c5220",
                "mount_path": "auth/tfc_jwt/",
                "mount_type": "jwt",
                "name": "app-alias-1"
            },
            "4065d8c7-4fa6-db9d-e190-f9644c09638a": {
                "canonical_id": "21c6f2bf-b9b0-db44-242f-18bf76cb9ff0",
                "custom_metadata": null,
                "local": false,
                "mount_accessor": "auth_ns_token_79c4d932",
                "mount_path": "auth/token/",
                "mount_type": "ns_token",
                "name": "app-alias-2"
            }
        },
        "keys": [
            "35405f3c-884a-a3ff-4176-bac57f220811",
            "4065d8c7-4fa6-db9d-e190-f9644c09638a"
        ]
    }
}