Проблема с балансировкой нагрузки Azure?

Я наблюдаю странное поведение при доступе к REST API для ADFS в конфигурации Azure.

Допустим, я использую такой инструмент, как OpenSSl или DigiCert, чтобы проверить, возвращает ли мой сайт правильные сертификаты. Например:

openssl s_client -connect adfs.{mydomain}.com:443

Многократное выполнение этой операции поочередно вернет правильный сертификат и неправильный сертификат.

Конфигурация выглядит следующим образом:

  1. CNAMES для ADFS, WWW и ADRMS были созданы в DNS, указывая их на {mydomain}testsvc.cloudapp.net, который является общедоступным хостом Azure.
  2. Сертификат SAN был создан и установлен на веб-сервере, обращенном к Интернету.
  3. Имя субъекта: www.{Mydomain}.com
  4. Альтернативные имена субъектов: adfs.{Mydomain}.com, adrms.{Mydomain}.com, www.{Mydomain}.com
  5. Запуск "Netsh http show sslcert" на веб-сервере показывает правильный сертификат для adfs и adrms. Имя хоста: Порт
  6. 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 и заново создать конечную точку для пограничного сервера.

Шаги были:

  1. Перейти на портал управления. (Portal.azure.com)
  2. Выберите виртуальные машины
  3. Нажмите на мой adrms VM
  4. Нажмите на наборы балансировки нагрузки
  5. Нажмите на балансировщик нагрузки
  6. Нажмите "Выйти"
  7. Проделайте эти же шаги для пограничного ВМ
  8. Для пограничной виртуальной машины добавьте новую конечную точку для порта 443

Это работает, потому что пограничный сервер также обрабатывает перенаправление трафика на сервер adrms.

Я надеюсь, что это спасает кого-то от головной боли.

Другие вопросы по тегам