Метод работы с учётными записями пользователей API

Для работы с учётными записями пользователей API выполните запросы с помощью API-метода accounts (перед выполнением запроса определите токен администратора):

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": <максимальный период действия пароля (в днях)>
}'

В подстановках:

В зависимости от типа аутентификации пользователя определяется доступность параметров password, confirmed_password, full_name, is_active, . Параметры password, confirmed_password и full_name доступны только для пользователя с типом аутентификации «Локально». Параметр is_active доступен только для пользователя с типом аутентификации «Локально» или «Сервер <название источника данных в проекте>».

Примечание. Если пользователь API будет состоять в группе пользователей с заданными учётными данными для источника, то учётные данные для конкретного пользователя API на тот же источник не задаются. Также пользователь не может состоять в нескольких группах с заданными учётными данными для одного и того же источника.

Параметр project_id можно заменить двумя параметрами:

Пример ответа:

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

Значения параметров содержат следующую дополнительную информацию о пользователе:

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
}

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
}

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

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:

Для фильтрации ответа используйте в запросе query-параметры:

curl -X DELETE '<IP-адрес или DNS-имя сервера>/api/v2/accounts/users/<идентификатор запрашиваемого пользователя>/' --header 'Content-Type: application/json' -H 'Authorization: Bearer <токен администратора>'

В подстановке <идентификатор запрашиваемого пользователя> используйте значение параметра id, которое возвращается при получении списка всех учётных записей пользователей API.

Пример ответа:

204 No Content

См. также:

API сервера