Entity Alias
|
Будьте осторожны, предоставляя права на запись для конечных точек идентификации, не предназначенных только для чтения. Если пользователь может изменять сущность, он может предоставить ей дополнительные привилегии через политики. Если пользователь может изменять псевдоним, с которым он может войти, он может привязать его к сущности с более высокими привилегиями. |
1. Создание псевдонима сущности
|
Перед созданием любого псевдонима важно учесть уникальность имени псевдонима, поскольку существуют потенциальные проблемы безопасности. Основная проблема связана с повторным использованием псевдонима. Существует возможность связать несколько аутентифицированных сущностей с одним и тем же псевдонимом, и таким образом они получат доступ ко всем его привилегиям. Рекомендуется, когда это возможно, создавать уникальный псевдоним для каждой сущности. Это особенно актуально в случае машинно созданных сущностей. |
Эта конечная точка создает новый псевдоним для сущности.
| Метод | Путь |
|---|---|
|
|
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
Эта конечная точка запрашивает псевдоним сущности по его идентификатору.
| Метод | Путь |
|---|---|
|
|
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
Эта конечная точка используется для обновления существующего псевдонима сущности.
| Метод | Путь |
|---|---|
|
|
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. Обновление с помощью веб-интерфейса
-
В интерфейсе StarVault перейдите на вкладку Access → Entities.
-
Перейдите ко вкладке Aliases и выберите из списка псевдоним сущености для редактирования.
-
Для редактирования параметров псевдонима сущности нажмите кнопку Edit entity aliases. Внесите свои изменения и для сохранения нажмите Save.
4. Удаление псевдонима сущности по ID
Эта конечная точка удаляет псевдоним из соответствующей сущности.
| Метод | Путь |
|---|---|
|
|
5. Список псевдонимов сущностей по ID
Конечный пункт списка по ID возвращает доступные псевдонимы сущностей и ключевые данные по их идентификаторам.
| Метод | Путь |
|---|---|
|
|
|
|
$ 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"
]
}
}