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 10, запустив утилиты:
Indeed-am-<номер версии>\windows\modules\warp\dotnet-runtime-10.0.x-win-x64.exeIndeed-am-<номер версии>\windows\modules\warp\aspnetcore-runtime-10.0.x-win-x64.exe
Подготовка сертификатов
WARP по умолчанию запускается от имени учетной записи Network Service (Сетевая служба). Предоставьте этой учетной записи права на чтение закрытых ключей всех указанных ниже сертификатов, чтобы сервис WARP использовал эти сертификаты для обработки входящих соединений.
Для корректной работы WARP требуются следующие сертификаты:
- Сертификат для подписи JWT-токенов
- Сертификат сервера WARP
- Клиентский сертификат для соединения с Core Server
Подробнее о том, где указывать отпечатки сертификатов, — в разделе Редактирование конфигурационного файла.
Сертификат для подписи JWT-токенов
Для работы WARP требуется сертификат для подписи JWT-токенов (алгоритм RS256), который позволяет Core Server проверить целостность и подлинность токена.
- Встроенный
- Собственный
Чтобы использовать встроенный сертификат, в программе установки WARP включите опцию Выпустить и установить сертификат для JWT-токенов.
Если вы планируете использовать собственный сертификат:
- Установите сертификат в хранилище Windows: Локальный компьютер → Личное.
- В мастере импорта сертификатов на шаге Закрытый ключ выключите опцию Сделать ключ экспортируемым.
- В процессе установки WARP выключите опцию Выпустить и установить сертификат для JWT-токенов.
При использовании балансировщика нагрузки установите сертификат для JWT-токенов на каждом сервере кластера. Подробнее о балансировке WARP — в базе знаний технической поддержки Indeed Access Manager.
Сертификат сервера WARP
- Выпустите собственный сертификат сервера с закрытым ключом на имя хоста, где планируется установка WARP.
- Импортируйте сертификат в хранилище сертификатов Windows: Локальный компьютер → Личное.
Клиентский сертификат для соединения с 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"
]
}Параметр
ValidClientThumbprintsзадает список доверенных отпечатков клиентских сертификатов, которые WARP принимает при установлении входящего mTLS-соединения. Если клиентский сертификат не входит в этот список, соединение отклоняется.Чтобы настроить несколько доверенных клиентских сертификатов, добавьте их значения через запятую:
"IncomingConnectionCertificate": {
"Thumbprint": "75C06829208E64A337C458CED2FC58F7DFC44B1C",
"Validate": false,
"ValidClientThumbprints": [
"82DBDE65BF2C19E01B46D59F4978AB518591A70F",
"A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0",
"B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0U1"
]
}Отпечатки указываются без пробелов, в верхнем регистре, в формате SHA-1.
Если вы используете собственный клиентский сертификат для соединения с 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
Время на сервере, где установлен 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.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.