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 выполните следующие действия:
- Убедитесь, что хост с ОС Windows добавлен в домен.
- Установите версию .NET 8, запустив утилиты:
- Indeed AM <номер версии>\Indeed AM\dotnet-runtime-8.0.22-win-x64.exe
- Indeed AM <номер версии>\Indeed AM\aspnetcore-runtime-8.0.22-win-x64.exe
Подготовка сертификатов
Для корректной работы WARP требуются следующие сертификаты:
- Сертификат для подписи JWT-токенов
- Сертификат сервера WARP
- Клиентский сертификат для соединения с Core Server
Подробнее о том, где указывать отпечатки сертификатов, — в разделе Редактирование конфигурационного файла.
Сертификат для подписи JWT-токенов
Для работы WARP требуется сертификат для подписи JWT-токенов (алгоритм RS256), который позволяет Core Server проверить целостность и подлинность токена.
- Встроенный
- Собственный
Чтобы использовать встроенный сертификат, в программе установки WARP включите опцию Выпустить и установить сертификат для JWT-токенов.
Если вы планируете использовать собственный сертификат:
- Установите сертификат в хранилище Windows: Локальный компьютер → Личное.
- В мастере импорта сертификатов на шаге Закрытый ключ выключите опцию Сделать ключ экспортируемым.
- В процессе установки WARP выключите опцию Выпустить и установить сертификат для JWT-токенов.
При использовании балансировщика нагрузки установите сертификат для JWT-токенов на каждом сервере кластера. Подробнее о балансировке WARP — в базе знаний технической поддержки Indeed Access Manager.
Сертификат сервера WARP
- Выпустите собственный сертификат сервера с закрытым ключом на имя хоста, где планируется установка WARP.
- Импортируйте сертификат в хранилище сертификатов Windows: Локальный компьютер → Личное.
WARP по умолчанию запускается от имени учетной записи Network Service (Сетевая служба). Предоставьте этой учетной записи права на чтение закрытого ключа сертификата, чтобы сервис WARP использовал сертификат для обработки входящих соединений.
Клиентский сертификат для соединения с Core Server
- Встроенный
- Собственный
По умолчанию WARP использует встроенный клиентский сертификат для исходящих соединений с Core Server.
Если вы планируете использовать собственный сертификат:
- Выпустите сертификат на Core Server.
- Перенесите сертификат на хост с WARP и установите его в хранилище Windows: Локальный компьютер → Личное.
Установка WARP
Чтобы установить WARP, запустите Indeed AM <номер версии>\Indeed AM Proxies.Warp\IndeedAM.Proxies.Warp-<номер версии>.ru-ru.msi и следуйте шагам программы установки.
Редактирование конфигурационного файла
Откройте конфигурационный файл C:\Program Files\Indeed-Id\Indeed-Id WARP\app-settings.json.
В секции
JwtSettingsв параметреThumbprintукажите отпечаток сертификата для подписи JWT-токенов.Если при установке вы выбрали опцию Выпустить и установить сертификат для JWT-токенов, отпечаток прописывается автоматически.
Пример
"JwtSettings": {
"Issuer": "am_warp",
"Audience": "am_core",
"Expiration": "00:01:00",
"Certificate": {
"Thumbprint": "57FEB0A03A6D9A2826CCB5E4A92522111419E490",
"Validate": true
}
}В секции
IncomingConnectionCertificateв параметреThumbprintукажите отпечаток сертификата сервера WARP.Пример
"IncomingConnectionCertificate": {
"Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",Проверка срока действия сертификата
По умолчанию WARP проверяет срок действия сертификата клиентского приложения при установлении входящего mTLS-соединения. Если сертификат истек, а новый еще не выпущен, проверку можно временно отключить с помощью параметра
Validate: false.ВажноДаже при отключенной проверке соединение продолжает использовать TLS и клиентский сертификат, поэтому уровень безопасности выше, чем при незашифрованном HTTP-соединении.
"IncomingConnectionCertificate": {
"Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",
"Validate": false,
"ValidClientThumbprints": [
"82DBDE65BF2C19E01B46D59F4978AB518591A70F"
]
}Если вы используете собственный клиентский сертификат для соединения с Core Server, в секции
OutgoingConnectionCertificateв параметреThumbprintукажите его отпечаток. Если параметр не указан, WARP использует встроенный клиентский сертификат.Пример
"OutgoingConnectionCertificate": {
"Thumbprint": "F924A027B2A2B15AC18CCB8F6E82A67BA870D2B0"
}В секции
Clustersв параметреAddressукажите адрес Core Server.Пример
"Clusters": {
"web-client-cluster": {
"Destinations": {
"destination1": {
"Address": "https://am.core.test"
}
}
}
}
Настройка Core Server
Чтобы 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.cer в папку ssl/ca на хосте с Core Server.
Из каталога am/ssl запустите скрипт prepareCaFile.sh:
sudo bash ./prepareCaFile.shРезультат: создается сертификат am/ssl/ca/trusted_ca.crt, содержащий список всех сертификатов открытого ключа из каталога am/ssl/ca.
Перезапустите контейнер с Core Server.
Запуск и управление WARP
Если WARP использует доменную учетную запись, откройте свойства службы и в настройке Общие → Тип запуска выберите тип Автоматически (отложенный автозапуск).
WARP работает как служба Windows. Для управления используйте services.msc или командную строку от имени администратора.
| Действие | CMD | PowerShell |
|---|---|---|
| Запуск | | |
| Остановка | | |
Сбор логов
Информация по включению логирования и сбору логов WARP находится в разделе Сбор логов компонентов Access Manager.