Для работы с учётными записями пользователей API выполните запросы с помощью API-метода accounts (перед выполнением запроса определите токен администратора):
добавление учётной записи пользователя API:
curl -X POST '<IP-адрес
или DNS-имя сервера>/api/v2/accounts/<тип
аутентификации пользователя>/' --header'Content-Type: application/json'
-H 'Authorization: Bearer <токен
администратора>' -d '{
"username": "<логин
пользователя>",
"password": "<пароль
пользователя>",
"confirmed_password": "<повторный пароль пользователя>",
"full_name": "<ФИО
пользователя>",
"is_active": <признак
активности пользователя (true/false)>,
"project_id": <идентификатор
проекта>,
"api_groups": [<массив
идентификаторов групп, в которых будет состоять пользователь>],
"ds_credentials": [<массив
идентификаторов учётных данных>],
"dss_username": "<логин
учётной записи DSS при необходимости>",
"is_blocked": <признак
блокировки пользователя (true/false)>,
"ttl": <срок
действия учётной записи (в днях)>,
"max_password_ttl": <максимальный
период действия пароля (в днях)>
}'
В подстановках:
<тип аутентификации пользователя>. Используйте значения:
local-users. Локально;
ldap-users. Сервер LDAP;
datasource-users. Сервер <название источника данных в проекте>.
В зависимости от типа аутентификации пользователя определяется доступность параметров password, confirmed_password, full_name, is_active, . Параметры password, confirmed_password и full_name доступны только для пользователя с типом аутентификации «Локально». Параметр is_active доступен только для пользователя с типом аутентификации «Локально» или «Сервер <название источника данных в проекте>».
<массив идентификаторов групп, в которых будет состоять пользователь>. Используйте значения параметров id, которые возвращаются при получении списка всех групп пользователей в проекте;
<массив идентификаторов учётных данных>. Используйте значения параметров id, которые возвращаются при получении списка всех учётных данных в проекте;
Примечание. Если пользователь API будет состоять в группе пользователей с заданными учётными данными для источника, то учётные данные для конкретного пользователя API на тот же источник не задаются. Также пользователь не может состоять в нескольких группах с заданными учётными данными для одного и того же источника.
<идентификатор проекта>. Используйте значение параметра id, которое возвращается при получении списка всех проектов.
Параметр project_id можно заменить двумя параметрами:
project_name. Название проекта, в котором содержится пользователь;
environment_name. Название среды, в которой содержится проект.
Пример ответа:
{
"username": "new_local",
"full_name": "new_local_FIO",
"is_active": true,
"project_id": 9,
"api_groups": [
19
],
"ds_credentials": [
297
],
"dss_username": "",
"project_name": "proj",
"environment_name": "env",
"is_blocked": false,
"ttl": 1,
"max_password_ttl": 1,
"lock_expire_date": null,
"expire_date": null,
"password_expire_date": "2024-01-27",
"id": 727
}
Значения параметров содержат следующую дополнительную информацию о пользователе:
lock_expire_date. Дата, до которой заблокирован пользователь. Если пользователь не заблокирован, то возвращается «null»;
expire_date. Дата, до которой действительна учётная запись пользователя. Если учётная запись пользователя является бессрочной, то возвращается «null»;
password_expire_date. Дата, до которой действителен пароль пользователя;
id. Идентификатор пользователя.
получение информации о конкретной учётной записи пользователя API:
curl -X GET '<IP-адрес или DNS-имя сервера>/api/v2/accounts/<тип аутентификации пользователя>/{<идентификатор запрашиваемого пользователя>}/' --header 'Content-type: application/json' -H 'Authorization: Bearer <токен администратора>'
В подстановке <идентификатор запрашиваемого пользователя> используйте значение параметра id, которое возвращается при получении списка всех учётных записей пользователей API.
Пример ответа:
{
"username": "user",
"full_name": "",
"is_active": true,
"project_id": 9,
"api_groups": [],
"ds_credentials": [],
"dss_username": "",
"project_name": "my_proj",
"environment_name": "my_env",
"is_blocked": false,
"ttl": null,
"max_password_ttl": null,
"lock_expire_date": null,
"expire_date": null,
"password_expire_date": null,
"id": 725
}
изменение учётной записи пользователя API:
curl -X PATCH '<IP-адрес
или DNS-имя сервера>/api/v2/accounts/<тип
аутентификации пользователя>/{<идентификатор
запрашиваемого пользователя>}/' --header 'Content-Type: application/json'
-H 'Authorization: Bearer <токен
администратора>' -d '{
"username": "<логин
пользователя>",
"password": "<пароль
пользователя>",
"confirmed_password": "<повторный пароль пользователя>",
"full_name": "<ФИО
пользователя>",
"is_active": <признак
активности пользователя (true/false)>,
"api_groups": [<массив
идентификаторов групп, в которых будет состоять пользователь>],
"ds_credentials": [<массив
идентификаторов учётных данных>],
"dss_username": "<логин
учётной записи DSS при необходимости>",
"is_blocked": <признак
блокировки пользователя (true/false)>,
"ttl": <срок
действия учётной записи (в днях)>,
"max_password_ttl": <максимальный
период действия пароля (в днях)>
}'
В подстановке <идентификатор запрашиваемого пользователя> используйте значение параметра id, которое возвращается при получении списка всех учётных записей пользователей API.
В зависимости от типа аутентификации пользователя определяется доступность параметров password, confirmed_password, full_name, is_active. Параметры password, confirmed_password и full_name доступны только для пользователя с типом аутентификации «Локально». Параметр is_active доступен только для пользователя с типом аутентификации «Локально» или «Сервер <название источника данных в проекте>».
Пример ответа:
{
"username": "new_user",
"full_name": "new_name",
"is_active": true,
"project_id": 9,
"api_groups": [
19
],
"ds_credentials": [
297
],
"dss_username": "",
"project_name": "proj",
"environment_name": "env",
"is_blocked": false,
"ttl": 1,
"max_password_ttl": 1,
"lock_expire_date": null,
"expire_date": "2024-01-27",
"password_expire_date": "2024-01-27",
"id": 725
}
поиск пользователя в подключенном каталоге LDAP:
curl -X GET '<IP-адрес или DNS-имя сервера>/api/v1/admin/ldap/search-user/?username=<логин или часть логина пользователя>' --header 'Content-Type: application/json' -H 'Authorization: Bearer <токен администратора>'
Пример ответа:
[
{
"email": "",
"fullName": "user01",
"isActive": true,
"label": "test\\user01",
"sid": "S-1-5-21-4010739491-1455226807-1877500552-1110",
"value": "test\\user01"
},{
"email": "",
"fullName": "user02",
"isActive": true,
"label": "test\\user02",
"sid": "S-1-5-21-817733621-3753459759-1615796639-1107",
"value": "test\\user02"
}
]
получение списка всех учётных записей пользователей API:
curl -X GET '<IP-адрес или DNS-имя сервера>/api/v2/accounts/users/' --header 'Content-type: application/json' -H 'Authorization: Bearer <токен администратора>'
Пример ответа:
{
"count": 2,
"next": null,
"previous": null,
"results": [{
"id": 647,
"username": "ds_user",
"full_name":
"",
"is_active":
false,
"is_ldap": false,
"is_blocked":
false,
"api_groups":
[],
"auth_data_source":
12,
"project": "proj_demo",
"environment":
"env_dev",
"devices_count":
0
},{
"id": 721,
"username": "user01",
"full_name":
"user01",
"is_active":
true,
"is_ldap": true,
"is_blocked":
false,
"api_groups":
[],
"auth_data_source":
null,
"project": "proj_demo",
"environment":
"env_dev",
"devices_count":
0
}]
}
Значения параметров содержат следующую дополнительную информацию о каждой учётной записи пользователей API:
is_ldap. Признак пользователя с типом аутентификации «Сервер LDAP»;
auth_data_source. Идентификатор источника данных при использовании типа аутентификации пользователя «Сервер <название источника данных в проекте>»;
devices_count. Количество мобильных устройств, связанных с пользователем.
Для фильтрации ответа используйте в запросе query-параметры:
environment. Фильтрация по названию среды;
project. Фильтрация по названию проекта;
full_name. Фильтрация по ФИО пользователя;
username. Фильтрация по логину пользователя;
search. Фильтрация по ФИО и логину пользователя;
is_active. Фильтрация по признаку активности пользователя в системе;
page_size. Фильтрация по количеству объектов на одной странице;
page. Фильтрация по порядковому номеру страницы для отображения результатов.
удаление учётной записи пользователя API:
curl -X DELETE '<IP-адрес или DNS-имя сервера>/api/v2/accounts/users/<идентификатор запрашиваемого пользователя>/' --header 'Content-Type: application/json' -H 'Authorization: Bearer <токен администратора>'
В подстановке <идентификатор запрашиваемого пользователя> используйте значение параметра id, которое возвращается при получении списка всех учётных записей пользователей API.
Пример ответа:
204 No Content
См. также: