Вопрос или проблема
Я работаю с двумя AD-серверами в домене. У нас также есть Keycloak в качестве SSO для всех наших интернет-ресурсов.
Мы хотели бы, чтобы пользователи могли действительно изменять свой пароль через Keycloak, но AD НЕ любит, когда это происходит через незащищенное соединение по очевидным причинам.
Сейчас у нас работает LDAPS в определенной степени – я могу подключиться к нему с помощью LDP через localhost. Но внешний IP (10.170.0.2) не работает. И 127.0.0.1 ТАКЖЕ не работает??? ЧТО ЗДЕСЬ ПРОИСХОДИТ? Смотрю на netstat -an
, вижу открытое соединение на 0.0.0.0:636
Таким образом, оказывается, что из-за сертификата запросы, которые не направляются на фактический домен (например, dc01.contoso.com), который проверяет сертификат, просто отбрасываются при запросах соединения LDAPS.
По-видимому, localhost как имя хоста является единственным исключением, вероятно, потому что он разрешается в имя хоста, а не в IP-адрес контроллера домена.
Ответ или решение
Проблема: Отключение LDAPS-соединений Active Directory, не исходящих от localhost
Введение
В вашей ситуации вы столкнулись с проблемой, связанной с отключением LDAPS-соединений Active Directory (AD), которые происходят не с localhost. Это может значительно повлиять на функциональность вашей системы единого входа (SSO), особенно если пользователи должны иметь возможность изменять свои пароли через Keycloak.
Анализ проблемы
На основе предоставленных данных видно, что у вас есть два сервера AD в домене, и вы уже настроили LDAPS. Вы можете подключиться к нему через локальный хост с помощью LDP, однако равноценное подключение через внешние IP-адреса (в вашем случае 10.170.0.2) и даже через 127.0.0.1 не срабатывает корректно.
Технические детали:
- Ваша команда использует команду
netstat -an
, которая показывает открытую связь на порту 636 с адресом0.0.0.0
, что говорит о том, что служба прослушивает входящие соединения. - Проблема заключается в сертификате, который используется для LDAPS. Сертификаты имеют строгое поле Subject Alternative Name (SAN), которое должно синхронизироваться с запрашиваемым именем хоста. Если имя, используемое при попытке подключения, не совпадает с именем, указанным в сертификате, соединение будет отвергнуто.
Решение проблемы
Чтобы исправить данную проблему, выполните следующие шаги:
-
Проверка сертификата:
- Убедитесь, что сертификат, используемый вашим сервером AD для LDAPS, содержит правильные записи в поле SAN, включающие полное доменное имя контроллера домена, например
dc01.contoso.com
, а также любые другие имена, которые могут использоваться для подключения.
- Убедитесь, что сертификат, используемый вашим сервером AD для LDAPS, содержит правильные записи в поле SAN, включающие полное доменное имя контроллера домена, например
-
Использование правильного имени хоста:
- При подключении к LDAPS используйте полное доменное имя сервера AD (например,
dc01.contoso.com
), а не IP-адрес или localhost. Это гарантирует, что соединение будет соответствовать требованиям сертификата.
- При подключении к LDAPS используйте полное доменное имя сервера AD (например,
-
Тестирование соединения:
- Используйте утилиты для тестирования LDAPS-соединений, такие как
LDP.exe
, чтобы проверять работоспособность соединений на всех доступных адресах. Убедитесь, что вы видите успешное соединение при использовании полного доменного имени, указанного в сертификате.
- Используйте утилиты для тестирования LDAPS-соединений, такие как
-
Решения для localhost:
- Так как соединение через localhost работает, возможно, стоит рассмотреть использование
localhost
как временное решение для настройки Keycloak, если это вообще возможно, или добавить в систему настройку на использование основного доменного имени для LDAPS-запросов.
- Так как соединение через localhost работает, возможно, стоит рассмотреть использование
Заключение
Способность пользователя изменять пароли через Keycloak является важной функциональностью и требует безопасного соединения с Active Directory через LDAPS. Обеспечение правильной настройки сертификатов и использование корректных имен хостов — это ключевые аспекты решения проблемы с отключением соединений, исходящих не от localhost.
Рекомендации
Обязательно следите за обновлениями сертификатов и обеспечьте их актуальность для всех потенциальных точек доступа к вашему AD. Также рекомендуется регулярно проводить аудит и тестирование соединений для предотвращения подобных проблем в будущем. Таким образом, ваша система будет оставаться безопасной и устойчивой к различным угрозам.