Методы авторизации#
API Automation Controller поддерживает авторизацию следующими способами:
авторизация сеанса (session authorization);
базовая авторизация (basic authorization);
авторизация через токен OAuth 2 (OAuth 2 token authorization).
Примечание
Для доступа к API рекомендуется использовать авторизацию через токен OAuth 2.
Авторизация сеанса#
Авторизация сеанса используется при входе в API или пользовательский интерфейс Automation Controller.
С помощью утилиты curl
можно увидеть активность, которая происходит при входе в Automation Controller:
Получите X-CSRFToken с помощью команды:
curl -k -c - https://<address>/api/login/
Пример вывода:
Здесь:
FALSE
– указывает, что cookie не требует безопасного соединения (HTTPS);/
– URI, к которому относится установленный cookie;TRUE
– указывает, что cookie доступен для всех поддоменов этого домена;0
– срок действия cookie (в секундах) отсутствует, поэтому cookie действителен только в рамках текущей сессии;csrftoken
– название cookie;n97Hk5MjncJ45qHYmPFoqx8dLy8MPQMtfOafEZZlO9oPTJIztoD8qXRVuJY1OVsQ
– CSRF-токен.
Выполните запрос авторизации:
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ --referer https://<address>/api/login/ \ -H 'X-CSRFToken: <your_CSRFToken>' \ --data 'username=<username>&password=<password>' \ --cookie 'csrftoken=<your_CSRFToken>' \ https://<address>/api/login/ -k -D - -o /dev/null
Здесь:
<your_CSRFToken> – CSRF-токен, полученный ранее;
<username> – название учетной записи пользователя;
<password> – пароль.
Если пользователь успешно авторизован, сервер возвращает ответ, в заголовке которого в поле
X-API-Session-Cookie-Name
указывает название ключа, определяющего идентификатор сеанса связи, в составе cookie. По умолчанию значение этого параметра равноawx_sessionid
.Пример ответа:
Базовая авторизация#
При использовании базовой авторизации состояние не сохраняется. Поэтому название учетной записи пользователя (username) и пароль (password) в формате Base64 должны отправляться вместе с каждым запросом через заголовок авторизации. Это применимо для локальных записей и для учетных записей LDAP.
Пример запроса:
curl -X GET --user '<username>:<password>' https://<address>/api/v2/credentials -k -L
В целях безопасности вы можете отключить базовую авторизацию в графическом интерфейсе. Для этого выполните следующие действия:
Перейдите в раздел Настройки (Settings).
На панели Система (System) нажмите на ссылку Общие параметры аутентификации (Miscellaneous Authentication settings).
Нажмите кнопку Редактировать (Edit).
Выключите флаг Включить HTTP Basic Auth (Enable HTTP Basic Auth).
Нажмите кнопку Сохранить (Save).
Авторизация через токен OAuth 2#
Авторизация через токен OAuth 2 обычно используется при программном взаимодействии с API Automation Controller. Как и при базовой авторизации, токен OAuth 2 предоставляется с каждым запросом API через заголовок авторизации. Токены имеют настраиваемый срок действия и при необходимости могут быть отозваны администратором для одного пользователя или для всей системы. По умолчанию внешним пользователям, например, созданным с помощью единого входа, не разрешено создавать токены OAuth 2 в целях безопасности.
Чтобы разрешить внешним пользователям создавать токены OAuth 2, выполните следующие действия в графическом интерфейсе контроллера:
Перейдите в раздел Настройки (Settings).
На панели Система (System) нажмите на ссылку Общие параметры аутентификации (Miscellaneous Authentication settings).
Нажмите кнопку Редактировать (Edit).
Включите флаг Разрешить внешним пользователям создавать токены OAuth2 (Allow External Users to Create OAuth2 Tokens).
Нажмите кнопку Сохранить (Save).
Создать токен доступа OAuth 2 можно с помощью следующих средств:
графический интерфейс;
запрос API.
Создание токена в графическом интерфейсе#
Пошаговые инструкции по управлению токенами через графический интерфейс доступны в секции Управление токенами.
Создание токена с помощью запроса#
Создайте токен с помощью команды:
curl -u <username>:<password> -k -X POST https://<address>/api/v2/tokens/
Пример вывода команды:
Здесь <your_token> – токен авторизации, который теперь можно использовать для выполнения запроса, например:
curl -k -X POST \
https://<address>/api/v2/hosts/ \
-H “Content-Type: application/json” \
-H “Authorization: Bearer <your_token>`