Автообнаружение для Exchange

Сведения о службе автообнаружения в Exchange.

Служба автообнаружения Exchange позволяет клиентскому приложению с легкостью настроиться практически без участия пользователя. Большинство пользователей знают свои адрес электронной почты и пароль, и с помощью этих сведений вы можете получить все остальные сведения, необходимые для начала работы. Для клиентов веб-служб Exchange (EWS) автообнаружение обычно используется, чтобы найти URL-адрес конечной точки EWS, но служба автообнаружения также может предоставлять сведения для настройки клиентов, использующих другие протоколы. Автообнаружение работает с клиентскими приложениями как за брандмауэрами, так и за их пределами, и будет работать в сценариях с лесом ресурсов или несколькими лесами.

Обзор процесса автообнаружения

Процесс автообнаружения состоит из трех основных этапов. На первом этапе создается список потенциальных серверов автообнаружения, а на втором вы проверяете каждый сервер в списке, пока (при благоприятном исходе) не будет получен успешный ответ. Если ни один из кандидатов не подошел, вы переходите к третьему этапу, который представляет последнюю попытку найти конечную точку автообнаружения.

Метод ExchangeService.AutodiscoverUrl в управляемом API EWS реализует все три этапа, поэтому при использовании управляемого API EWS вам не нужно беспокоиться о реализации автообнаружения. На следующем рисунке показаны три этапа процесса автообнаружения.

Рис. 1. Три этапа процесса автообнаружения

Иллюстрация процесса автообнаружения с тремя этапами: определение пула кандидатов, попытка связи с конечными точками и альтернативными объектами.

Этап 1. Определение пула кандидатов

Прежде чем использовать службу автообнаружения, необходимо найти подходящий сервер автообнаружения для пользователя. К счастью, служба автообнаружения задает ограниченное количество мест для поиска. Если найдено несколько кандидатов, служба автообнаружения также определяет способ создания и сортировки списка по приоритету.

Таблица 1. Источники кандидатов на конечную точку автообнаружения

Место для поиска Результат поиска
Доменные службы Active Directory (AD DS)
Для клиентов, присоединенных к домену, поиск следует начинать отсюда. Exchange публикует объекты точек подключения службы (SCP) в AD DS, что позволяет направлять запросы автообнаружения на сайты Active Directory. Результаты поиска SCP должны находиться в начале списка кандидатов.

ПРИМЕЧАНИЕ. Поиск SCP недоступен для клиентов, не присоединенных к домену или не имеющих доступа к серверам Active Directory. В этом случае следует пропустить поиск SCP.
Домен адреса электронной почты пользователя
Автообнаружение определяет две стандартные формы конечной точки URL-адреса из доменной части адреса электронной почты пользователя:
"https://" + domain + "/autodiscover/autodiscover" + *fileExtension*
"https://autodiscover." + domain + "/autodiscover/autodiscover" + *fileExtension*

Значение fileExtension зависит от используемого метода доступа автообнаружения( SOAP или POX). Служба SOAP использует расширение файлов SVC, а POX использует XML.

На следующем рисунке показано, как создать список конечных точек автообнаружения.

Рис. 2. Процесс создания списка конечных точек автообнаружения

Иллюстрация процесса создания списка конечных точек для автообнаружения. Стрелки показывают, что список конечных точек образован после поиска SCP или на основе адреса электронной почты пользователя.

Этап 2. Проверка кандидатов

После создания упорядоченного списка потенциальных кандидатов следует проверить каждого из них, отправив запрос на URL-адрес и проверив результаты, как показано на рисунке 3. Когда вы получите успешный ответ, все готово!

Рис. 3. Проверка кандидатов на конечные точки по порядку

Рисунок, показывающий сервер, проходящий по каждой конечной точке в порядке приоритета до получения успешного ответа.

Прежде чем отправлять запрос кандидату, убедитесь в его надежности. Помните, что вы отправляете учетные данные пользователя, поэтому важно убедиться, что вы сообщаете их только надежным серверам. Как минимум, следует убедиться:

  • что конечная точка является конечной точкой HTTPS. Клиентские приложения не должны проходить проверку подлинности или отправлять данные конечным точкам без SSL;

  • что сертификат SSL, предоставленный сервером, действителен и поступил из надежного центра.

Примечание.

[!Примечание] Это лишь базовые рекомендации по безопасности. Работая с проверкой подлинности, убедитесь, что ваш код соответствует требованиям к безопасности в вашей организации.

Тип отправляемого запроса зависит от того, как вы получаете доступ к службе автообнаружения.

Табл. 2. Типы запросов автообнаружения

Используемый метод Средство для отправки запроса
управляемый API EWS;
Метод GetUserSettings.
Служба автообнаружения SOAP
Операция GetUserSettings.
Служба автообнаружения POX
Запрос HTTP POST с текстом запроса автообнаружения.

Этап 3. Проверка других альтернатив

В некоторых случаях вы можете проверить все конечные точки в списке, и все они возвращают ошибку. Прежде чем сдаваться, вы можете попробовать еще несколько способов: отправить запрос GET без проверки подлинности или запросить у DNS запись SRV. Если эти попытки не принесли результатов, то подключиться к службе автообнаружения невозможно.

Рис. 4. Проверка других альтернатив

Рисунок, на котором показаны дополнительные конечные точки, созданные после запроса GET без проверки подлинности и запроса DNS.

Отправка запроса GET без проверки подлинности

Для начала следует попробовать отправить запрос GET без проверки подлинности конечной точке, полученной из адреса электронной почты пользователя. Формат этой конечной точки — "http://autodiscover." + домен + "/autodiscover/autodiscover.xml". Обратите внимание, что это НЕ конечная точка SSL. Если сервер возвращает ответ об ошибке перенаправления 302, вы можете попробовать повторно отправить запрос автообнаружения на URL-адрес конечной точки в заголовке Location ответа.

Запрос к DNS на запись SRV

Если запрос GET без проверки подлинности не принес результатов, вы можете попробовать запросить у DNS запись SRV для службы автообнаружения. Запись будет иметь вид "_autodiscover._tcp." + домен. Этот запрос может вернуть несколько записей, но следует использовать только те записи, которые указывают на конечную точку SSL, а также имеют самые высокие приоритет и вес.

Варианты использования автообнаружения

Доступ к службе автообнаружения можно получить с помощью протокола SOAP или веб-службы POX. Используемый метод зависит от ваших требований и среды. однако мы рекомендуем использовать веб-службу SOAP, если это возможно. Управляемый API EWS также является вариантом. В ней реализована клиентская часть служб автообнаружения SOAP и POX.

Таблица 3: Варианты доступа к службе автообнаружения

Вариант Преимущества Недостатки
Управляемый API EWS
Реализует процесс автообнаружения.

Использует службы автообнаружения SOAP и POX.

Работает с Exchange Online, Exchange Online в составе Office 365 и всеми версиями Exchange, начиная с Exchange 2007 с пакетом обновления 1 (SP1).

Простой в использовании.
Ограничен параметрами пользователей, доступными в перечислении Microsoft.Exchange.WebServices.Autodiscover.UserSettingName.

Доступен только для приложений .NET Framework.
Служба автообнаружения SOAP
Не зависит от платформы.

Позволяет запрашивать только интересующие вас параметры.
Недоступна в Exchange 2007.
Служба автообнаружения POX
Не зависит от платформы.

Поддерживается в Exchange Online и всех версиях Exchange, начиная с Exchange 2007 с пакетом обновления (SP1).
Не позволяет запрашивать конкретные параметры.

В этой статье

См. также