Методы авторизации#

API Astra Automation поддерживает авторизацию следующими способами:

  • авторизация сеанса (session authorization);

  • базовая авторизация (basic authorization);

  • авторизация через токен OAuth 2 (OAuth 2 token authorization).

Для доступа к API рекомендуется использовать авторизацию через токен OAuth 2.

Примечание

По умолчанию без авторизации доступны следующие точки доступа API:

  • /api/;

  • /api/gateway/v1/login/;

  • /api/gateway/v1/ui_auth/;

  • /api/gateway/v1/ping/;

  • /api/controller/v2/;

  • /api/controller/v2/ping/;

  • /api/galaxy/.

Авторизация сеанса#

Авторизация сеанса используется при входе в API или пользовательский интерфейс Astra Automation. С помощью утилиты curl можно увидеть активность, которая происходит при входе в Astra Automation:

  1. Получите X-CSRFToken с помощью команды:

    curl -k -c - https://<address>/api/geteway/v1/login/
    

    Пример вывода:

    192.168.56.11   FALSE   /       TRUE    0       csrftoken       n97Hk5MjncJ45qHYmPFoqx8dLy8MPQMtfOafEZZlO9oPTJIztoD8qXRVuJY1OVsQ
    

    Здесь:

    • FALSE – указывает, что cookie не требует безопасного соединения (HTTPS);

    • / – URI, к которому относится установленный cookie;

    • TRUE – указывает, что cookie доступен для всех поддоменов этого домена;

    • 0 – срок действия cookie (в секундах) отсутствует, поэтому cookie действителен только в рамках текущей сессии;

    • csrftoken – название cookie;

    • n97Hk5MjncJ45qHYmPFoqx8dLy8MPQMtfOafEZZlO9oPTJIztoD8qXRVuJY1OVsQ – CSRF-токен.

  2. Выполните запрос авторизации:

    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
         --referer https://<address>/api/geteway/v1/login/ \
         -H 'X-CSRFToken: <your_CSRFToken>' \
         --data 'username=<username>&password=<password>' \
         --cookie 'csrftoken=<your_CSRFToken>' \
         https://<address>/api/geteway/v1/login/ -k -D - -o /dev/null
    

    Здесь:

    • <your_CSRFToken> – CSRF-токен, полученный ранее;

    • <username> – название учетной записи пользователя;

    • <password> – пароль.

    Если авторизация прошла успешно, сервер возвращает заголовок Set-Cookie, в котором создает cookie с именем gateway_sessionid. Значение этого cookie является идентификатором сессии (<session_ID>).

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

    server: envoy
    date: Wed, 19 Nov 2025 13:59:11 GMT
    content-type: text/html; charset=utf-8
    content-length: 0
    location: /api/gateway/v1/
    expires: Wed, 19 Nov 2025 13:59:11 GMT
    cache-control: max-age=0, no-cache, no-store, must-revalidate, private
    vary: Cookie, Accept-Language
    x-frame-options: DENY
    content-language: en
    x-content-type-options: nosniff
    referrer-policy: same-origin
    cross-origin-opener-policy: same-origin
    set-cookie: csrftoken=9C9myzRBzbGZoTdEPdgtAElJJjBsddBW; expires=Wed, 18 Nov 2026 13:59:11 G
    set-cookie: gateway_sessionid=zxtqte7xgpj7hsj9xbfui98pbg7sae52; expires=Wed, 19 Nov 2025 14
    strict-transport-security: max-age=63072000
    x-frame-options: DENY
    x-envoy-upstream-service-time: 304
    

    После успешной авторизации можно использовать cookie gateway_sessionid при обращении к API. Пример использования:

    curl -X GET --cookie "gateway_sessionid=<session_ID>" https://<address>/api/<component>/<api_endpoint> -k -L | jq
    

    Здесь:

    • <session_ID> – идентификатор сеанса, полученный ранее.

    • <component> – компонент к которому необходимо обратиться, например, gateway. API поддерживает следующие компоненты:

      • шлюз – gateway;

      • Automation Controller – controller;

      • Private Automation Hub – galaxy;

      • Event-Driven Automation – eda.

    • <api_endpoint> – точка доступа API (URI), к которой делается запрос, например, v1/users/. Полный список поддерживаемых точек доступа смотри в спецификации конкретного компонента.

    Примечание

    По умолчанию сеанс длится 900 секунд. Изменить длительность сеанса можно в графическом интерфейсе с помощью настройки Время жизни cookie сессии (Session cookie age).

Базовая авторизация#

При использовании базовой авторизации состояние не сохраняется. Поэтому название учетной записи пользователя (username) и пароль (password) в формате Base64 должны отправляться вместе с каждым запросом через заголовок авторизации. Это применимо для локальных записей и для учетных записей LDAP.

Пример запроса:

curl -X GET --user '<username>:<password>' https://<address>/api/gateway/v1/users/ -k -L | jq

В целях безопасности вы можете отключить базовую авторизацию в графическом интерфейсе. Для этого выполните следующие действия:

  1. Перейдите в окно Шлюз платформы (Platform gateway) выбрав на панели навигации Настройки ‣ Шлюз платформы (Settings ‣ Platform gateway).

  2. Нажмите кнопку Изменить настройки шлюза платформы (Edit platform gateway settings).

  3. Установите в поле Базовая аутентификация шлюза включена (Gateway basic auth enabled) значение Неактивный (Disable).

  4. Нажмите кнопку Сохранить настройки шлюза платформы (Save platform gateway settings).

Авторизация через токен OAuth 2#

Авторизация через токен OAuth 2 обычно используется при программном взаимодействии с API Astra Automation. Как и при базовой авторизации, токен OAuth 2 предоставляется с каждым запросом API через заголовок авторизации. Токены имеют настраиваемый срок действия и при необходимости могут быть отозваны администратором для одного пользователя или для всей системы. По умолчанию внешним пользователям, например, созданным с помощью единого входа, не разрешено создавать токены OAuth 2 в целях безопасности.

Чтобы разрешить внешним пользователям создавать токены OAuth 2, выполните следующие действия в графическом интерфейсе контроллера:

  1. Перейдите в окно Шлюз платформы (Platform gateway) выбрав на панели навигации Настройки ‣ Шлюз платформы (Settings ‣ Platform gateway).

  2. Нажмите кнопку Изменить настройки шлюза платформы (Edit platform gateway settings).

  3. Установите в поле Разрешить внешним пользователям создавать OAuth2-токены (Allow external users to create OAuth2 tokens) значение Включенный (Enable).

  4. Нажмите кнопку Сохранить настройки шлюза платформы (Save platform gateway settings).

Создать токен доступа OAuth 2 можно с помощью следующих средств:

  • графический интерфейс;

  • запрос API.

Создание токена в графическом интерфейсе#

Пошаговые инструкции по управлению токенами через графический интерфейс доступны в секции Управление токенами.

Создание токена с помощью запроса#

Создайте токен с помощью команды:

curl -u <username>:<password> -k -X POST https://<address>/api/gateway/v1/tokens/ | jq

Пример вывода команды:

{
   "id": 2,
   "url": "/api/gateway/v1/tokens/2/",
   "related": {
      "activity_stream": "/api/gateway/v1/activitystream/?content_type=38&object_id=2",
      "created_by": "/api/gateway/v1/users/2/",
      "modified_by": "/api/gateway/v1/users/2/",
      "user": "/api/gateway/v1/users/2/"
   },
   "summary_fields": {
      "modified_by": {
         "id": 2,
         "username": "admin",
         "first_name": "",
         "last_name": ""
      },
      "created_by": {
         "id": 2,
         "username": "admin",
         "first_name": "",
         "last_name": ""
      },
      "user": {
         "id": 2,
         "username": "admin",
         "first_name": "",
         "last_name": ""
      }
   },
   "created": "2025-11-21T13:28:35.383157Z",
   "created_by": 2,
   "modified": "2025-11-21T13:28:35.413663Z",
   "modified_by": 2,
   "expires": "3025-03-24T13:28:35.378890Z",
   "user": 2,
   "application": null,
   "description": "",
   "last_used": null,
   "scope": "write",
   "token": "<your_token>",
   "refresh_token": null
}

Здесь <your_token> – токен авторизации, который теперь можно использовать для выполнения запроса, например:

curl -k -X GET \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer <your_token>" \
   https://<address>/api/controller/v2/hosts/ | jq