Проблема с балансировкой нагрузки Azure?
Я наблюдаю странное поведение при доступе к REST API для ADFS в конфигурации Azure.
Допустим, я использую такой инструмент, как OpenSSl или DigiCert, чтобы проверить, возвращает ли мой сайт правильные сертификаты. Например:
openssl s_client -connect adfs.{mydomain}.com:443
Многократное выполнение этой операции поочередно вернет правильный сертификат и неправильный сертификат.
Конфигурация выглядит следующим образом:
- CNAMES для ADFS, WWW и ADRMS были созданы в DNS, указывая их на {mydomain}testsvc.cloudapp.net, который является общедоступным хостом Azure.
- Сертификат SAN был создан и установлен на веб-сервере, обращенном к Интернету.
- Имя субъекта: www.{Mydomain}.com
- Альтернативные имена субъектов: adfs.{Mydomain}.com, adrms.{Mydomain}.com, www.{Mydomain}.com
- Запуск "Netsh http show sslcert" на веб-сервере показывает правильный сертификат для adfs и adrms. Имя хоста: Порт
- WebApplicationProxy установлен, чтобы я мог связаться с adfs.{Mydomain}.com/adfs/oauth2/xxx.
Если я запускаю немного другой тест:
openssl s_client -connect adrms.{mydomain}.com:443
Затем я также получаю разные сертификаты. Я определил, что пограничный сервер предоставляет правильный сертификат, а сервер adrms предоставляет "плохой" сертификат. На самом деле, этот сертификат действительно хорош, его просто не следует предоставлять кому-то, кто просит adfs.{Mydomain}.com.
Итак, почему запросы на подключение к adfs поочередно попадают на пограничный сервер и на сервер adrms? И куда мне теперь обратиться, чтобы выяснить эту проблему? Я признаю, что очень мало знаю о WebApplicationProxy и о том, как направлять весь трафик через пограничный сервер (включая трафик adrms).
Я могу предоставить реальный URI, чтобы продемонстрировать проблему через личное сообщение.
Также: я подозреваю балансировщик нагрузки, потому что в моих веб-журналах много запросов от "Агента балансировки нагрузки". Тем не менее, я не могу найти один настроенный. Я использовал:
Get-AzureInternalLoadBalancer
Get-AzureRMLoadBalancer
Ни вернуть ничего.
1 ответ
Ну сразу после публикации моего вопроса, у меня был прорыв, который решил проблему.
Я использовал "классическую" консоль управления. Я переключился на portal.azure.com, чтобы управлять моим развертыванием. Когда я перешел на пограничный сервер и сервер adrms, я обнаружил, что оба они являются частью набора с балансировкой нагрузки. Я не уверен, почему сценарии PowerShell не показали это.
Чтобы решить проблему, мне пришлось удалить их из набора LB и заново создать конечную точку для пограничного сервера.
Шаги были:
- Перейти на портал управления. (Portal.azure.com)
- Выберите виртуальные машины
- Нажмите на мой adrms VM
- Нажмите на наборы балансировки нагрузки
- Нажмите на балансировщик нагрузки
- Нажмите "Выйти"
- Проделайте эти же шаги для пограничного ВМ
- Для пограничной виртуальной машины добавьте новую конечную точку для порта 443
Это работает, потому что пограничный сервер также обрабатывает перенаправление трафика на сервер adrms.
Я надеюсь, что это спасает кого-то от головной боли.