Перейти к основному содержимому
Версия: Indeed Access Manager 9.7

Windows Authentication Reverse Proxy (WARP)

Indeed AM Windows Authentication Reverse Proxy (WARP) — это сервис, предназначенный для Windows-аутентификации пользователей в Access Manager. WARP преобразует данные Windows-аутентификации (Kerberos, NTLM) в JWT-токен, который используется компонентами Access Manager.

WARP обеспечивает прозрачную аутентификацию для автоматизированных клиентов, например PowerShell-скриптов, обращающихся к API Access Manager: клиент аутентифицируется через WARP и получает JWT-токен без необходимости вводить логин и пароль.

Предварительные настройки​

Перед установкой WARP выполните следующие действия:

  1. Убедитесь, что хост с ОС Windows добавлен в домен.
  2. Установите версию .NET 10, запустив утилиты:
    • Indeed-am-<номер версии>\windows\modules\warp\dotnet-runtime-10.0.x-win-x64.exe
    • Indeed-am-<номер версии>\windows\modules\warp\aspnetcore-runtime-10.0.x-win-x64.exe

Подготовка сертификатов​

Важно

WARP по умолчанию запускается от имени учетной записи Network Service (Сетевая служба). Предоставьте этой учетной записи права на чтение закрытых ключей всех указанных ниже сертификатов, чтобы сервис WARP использовал эти сертификаты для обработки входящих соединений.

Для корректной работы WARP требуются следующие сертификаты:

Подробнее о том, где указывать отпечатки сертификатов, — в разделе Редактирование конфигурационного файла.

Сертификат для подписи JWT-токенов​

Для работы WARP требуется сертификат для подписи JWT-токенов (алгоритм RS256), который позволяет Core Server проверить целостность и подлинность токена.

Чтобы использовать встроенный сертификат, в программе установки WARP включите опцию Выпустить и установить сертификат для JWT-токенов.

Примечание

При использовании балансировщика нагрузки установите сертификат для JWT-токенов на каждом сервере кластера. Подробнее о балансировке WARP — в базе знаний технической поддержки Indeed Access Manager.

Сертификат сервера WARP​

  1. Выпустите собственный сертификат сервера с закрытым ключом на имя хоста, где планируется установка WARP.
  2. Импортируйте сертификат в хранилище сертификатов Windows: Локальный компьютер → Личное.

Клиентский сертификат для соединения с Core Server​

По умолчанию WARP использует встроенный клиентский сертификат для исходящих соединений с Core Server.

Установка WARP​

Чтобы установить WARP, запустите Indeed AM <номер версии>\Indeed AM Proxies.Warp\IndeedAM.Proxies.Warp-<номер версии>.ru-ru.msi и следуйте шагам программы установки.

Редактирование конфигурационного файла​

  1. Откройте конфигурационный файл C:\Program Files\Indeed-Id\Indeed-Id WARP\app-settings.json.

  2. В секции JwtSettings в параметре Thumbprint укажите отпечаток сертификата для подписи JWT-токенов.

    Если при установке вы выбрали опцию Выпустить и установить сертификат для JWT-токенов, отпечаток прописывается автоматически.

    Пример
    "JwtSettings": {
    "Issuer": "am_warp",
    "Audience": "am_core",
    "Expiration": "00:01:00",
    "Certificate": {
    "Thumbprint": "57FEB0A03A6D9A2826CCB5E4A92522111419E490",
    "Validate": true
    }
    }
  3. В секции IncomingConnectionCertificate в параметре Thumbprint укажите отпечаток сертификата сервера WARP.

    Пример
    "IncomingConnectionCertificate": {
    "Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",
    Проверка срока действия сертификата

    По умолчанию WARP проверяет срок действия сертификата клиентского приложения при установлении входящего mTLS-соединения. Если сертификат истек, а новый еще не выпущен, проверку можно временно отключить с помощью параметра Validate: false.

    Важно

    Даже при отключенной проверке соединение продолжает использовать TLS и клиентский сертификат, поэтому уровень безопасности выше, чем при незашифрованном HTTP-соединении.

    "IncomingConnectionCertificate": {
    "Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",
    "Validate": false,
    "ValidClientThumbprints": [
    "82DBDE65BF2C19E01B46D59F4978AB518591A70F"
    ]
    }

    Параметр ValidClientThumbprints задает список доверенных отпечатков клиентских сертификатов, которые WARP принимает при установлении входящего mTLS-соединения. Если клиентский сертификат не входит в этот список, соединение отклоняется.

    Чтобы настроить несколько доверенных клиентских сертификатов, добавьте их значения через запятую:

    "IncomingConnectionCertificate": {
    "Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",
    "Validate": false,
    "ValidClientThumbprints": [
    "82DBDE65BF2C19E01B46D59F4978AB518591A70F",
    "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0",
    "B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0U1"
    ]
    }

    Отпечатки указываются без пробелов, в верхнем регистре, в формате SHA-1.

  4. Если вы используете собственный клиентский сертификат для соединения с Core Server, в секции OutgoingConnectionCertificate в параметре Thumbprint укажите его отпечаток. Если параметр не указан, WARP использует встроенный клиентский сертификат.

    Пример
    "OutgoingConnectionCertificate": {
    "Thumbprint": "F924A027B2A2B15AC18CCB8F6E82A67BA870D2B0"
    }
  5. В секции Clusters в параметре Address укажите адрес Core Server.

    Пример
    "Clusters": {
    "web-client-cluster": {
    "Destinations": {
    "destination1": {
    "Address": "https://am.core.test"
    }
    }
    }
    }

Настройка Core Server​

Важно

Время на сервере, где установлен WARP, и время в контейнере сервера Core должно быть синхронизировано. Рассинхронизация может привести к ошибкам валидации JWT-токенов и сбоям аутентификации.

Чтобы Core Server мог проверить подпись JWT, экспортируйте открытый ключ сертификата для подписи JWT-токенов. Файл должен называться warp.cer.

Откройте мастер конфигурации Access Manager и в разделе Сертификаты добавьте сертификат warp.cer.

Результат: создается сертификат am/ssl/ca/trusted_ca.crt, содержащий список всех сертификатов открытого ключа из каталога am/ssl/ca.

Пример
"Authentication": {
"Windows": {
"ValidIssuer": "am_warp",
"ValidAudience": "am_core",
"Certificate": {
"FileName": "/ssl/warp.cer"
}
}
}

Запуск и управление WARP​

Примечание

Если WARP использует доменную учетную запись, откройте свойства службы и в настройке Общие → Тип запуска выберите тип Автоматически (отложенный автозапуск).

WARP работает как служба Windows. Для управления используйте services.msc или командную строку от имени администратора.

ДействиеCMDPowerShell
Запуск
net start "AM WARP"
Start-Service -Name "AM WARP"
Остановка
net stop "AM WARP"
Stop-Service -Name "AM WARP"

Сбор логов​

Информация по включению логирования и сбору логов WARP находится в разделе Сбор логов компонентов Access Manager.