Exchange Deep Dive: Autodiscover InternalUrl and ExternalUrl

DeepDiveВсем привет!

Сегодня небольшой пост, который, я думаю, развеет миф – нужно ли прописывать InternalUrl и ExternalUrl у виртуального каталога Autodiscover или нет.




В некоторых инструкциях по установке Exchange 2007/2010 присутствуют шаги, в которых параметрам InternalUrl и ExternalUrl виртуального каталога Autodiscover присваиваются значения Url (по аналогии с виртуальными каталогами OWA и ActiveSync). Более того, если заглянуть в справку по командлету Set-AutodiscoverVirtualDirectory, то в ней можно найти такое описание этих параметров:

The ExternalUrl parameter specifies the URL used to connect to the virtual directory from outside the network firewall.
The InternalUrl parameter specifies the URL used to connect to the virtual directory from inside the network firewall.


Теперь давайте вспомним, как работает Autodiscover. Существует 2 сценария, которые Outlook использует для подклюения к этой службе: первый – когда Outlook подключается с компьютера из корпоративной сети, второй – когда Outlook подключается с компьютера снаружи корпоративной среды.

Domain joined computer from internal network

Если введен в домен и подключается изнутри организации, то в общем виде алгоритм поиска адреса службы Autodiscover следующий:

domain-joined

Теперь более подробно:

  1. Делается запрос в Active Directory с поиском SCP объектов (Service Connection Point). Эти объекты создаются каждым CAS сервером во время их установки.
  2. Для дальнейшего определения адреса службы Autodiscover используются 3 параметра: serviceBindingInformation, keywords, whenCreated scp_adsi
  3. Эти же параметры можно получить и через EMS: scp_ems
  4. Основной параметр – это “serviceBindingInformation”. Он задает URL, по которому располагается служба Autodiscover.
  5. Outlook генерирует список из значений параметра serviceBindingInformation тех объектов, у которых в параметре keywords присутствует имя AD сайта, где располагается сам клиент Outlook. Это так называемый “in-site list”.
  6. Если “in-site list” оказывается пустой, то Outlook генерирует список из всех существующих  значений параметра serviceBindingInformation. Этот список называется “out-site list”.
  7. Затем итоговый список сортируется на основе значения параметра whenCreated. Самые старые записи становятся в начало списка.
  8. Outlook начинает подключаться по URL, указанному в параметре serviceBindingInformation, по порядку, начиная с самого первого. И получает в ответ XML с параметрами подключения к Exchange.


Domain joined computer from external network

Если компьютер введен в домен и подключается снаружи организации, то Outlook сначала пытается подключиться к Active Directory в поисках SCP объектов. Такой запрос завершится неудачей (наверно никто не публикует AD наружу :)) и Outlook продолжит поиск службы Autodiscover по такому же алгоритму, что и недоменный компьютер.

wg


Workgroup computer from external and internal network

В случае, когда компьютер не в домене, Outlook пробует подключиться по заранее определенным URL в следующем порядке:

  1. https://domain.name/autodiscover/autodiscover.xml
  2. https://autodiscover.domain.name/autodiscover/autodiscover.xml
  3. http://autodiscover.domain.name/autodiscover/autodiscover.xml
  4. SRV record query for _autodiscover._tcp.domain.name
  5. Local XML file
  6. Cached URL in Outlook profile (Outlook 2013 only) outlook_test_autodiscover


Autodiscover InternalUrl and ExternalUrl

Как видно, алгоритмы поиска URL службы Autodiscover заранее определены и в них никаким образом не используются значения параметров InternalUrl и ExternalUrl для виртуального каталога Autodiscover. Почему же эти параметры все же присутствуют у этой виртуальной директории.

Ответ прост: в схеме, которая определяет объект “виртуальный каталог”, прописаны параметры, которые должны быть у каждого объекта с типом “виртуальный каталог” , т.е. любой виртуальный каталог будет иметь один и тот же набор атрибутов. В то время как эти параметры используют другие виртуальные каталоги (owa, activesync и др.), виртуальный каталог Autodiscover никогда их не использует по причине абсолютной ненужности.


Удачи!




Читайте также:

комментариев 5

  1. Andry:

    [i]Затем итоговый список сортируется на основе значения параметра whenCreated. Самые старые записи становятся в начало списка.[/i]
    точно это так? у меня сомнения, т.к. когда я добавил новый cas почему-то все переключились на него, сайт один, сервера два all-in roles и отдельно cas.

    • Это именно так, как я и описал. Этот список используется только для того, чтобы узнать URL для службы autodiscover. Куда подключаться — это уже другой вопрос.

  2. Sergey:

    Хорошая статья, побольше бы таких, спасибо!

  3. Max:

    В статье описывается autodiscover для exch 2007/2010 или эта статья так же применима к exch 2013?

Добавить комментарий