Autodiscover XML

Die Antwort des Exchange Servers auf die Autodiscover-Anfrage des Clients ist eine XML-Struktur. Si ehat im wesentlichen den folgenden Aufbau:

Das Rahmenprogramm

Outlook und Exchange müssen Sich natürlich auf ein gemeinsames Protokoll einigen. Outlook versteht mehrere Protokolle und der Server bietet auch eine gewisse Menge an. In der XML können Sie sehen, welche Zugangsprotokolle der Server für den jeweiligen Client anbietet. Suchen Sie dazu nach dem Tag "<protocol>"

<?xml version="1.0" encoding="utf-8"?>
<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
  <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
    <User>
      <DisplayName>User1, vornme</DisplayName>
      <LegacyDN>/o=orgname/ou=admingroup/cn=Recipients/cn=user1</LegacyDN>
      <AutoDiscoverSMTPAddress>user1@msxfaq.net</AutoDiscoverSMTPAddress>
      <DeploymentId>12345678-1234-1234-1234-123456789012</DeploymentId>
    </User>
    <Account>
      <AccountType>email</AccountType>
      <Action>settings</Action>
      <MicrosoftOnline>False</MicrosoftOnline>
      <ConsumerMailbox>False</ConsumerMailbox>
...
  hier sind dann ein oder mehrere "Protocol"-Einträge
...
    </Account>
  </Response>
</Autodiscover>

Protocol EXCH

Der Exchange Server unterstützt MAPI/TCP, also die alte RPC-Kommunikation über klassische TCP-Ports. dieser Zugang ist nur bis Exchange 2010 möglich. In einem "gut" konfigurierten Netzwerk ist der Zugang nur intern oder über ein VPN möglich aber nie als dem Internet. Seit Exchange 2013 gibt es diesen Zugang aber nicht mehr.

      <Protocol>
        <Type>EXCH</Type>
        <Server>293f8bce-0287-458f-a98c-a70f927e00fd@krone.de</Server>
        <ServerDN>/o=IT-P-S/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=293f8bce-0287-458f-a98c-a70f927e00fd@krone.de</ServerDN>
        <ServerVersion>73C1840A</ServerVersion>
        <MdbDN>/o=IT-P-S/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=Servers/cn=293f8bce-0287-458f-a98c-a70f927e00fd@krone.de/cn=Microsoft Private MDB</MdbDN>
        <PublicFolderServer>outlook.msxfaq.net</PublicFolderServer>
        <AD>dc01.msxfaq.net</AD>
        <ASUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</ASUrl>
        <EwsUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</EwsUrl>
        <EmwsUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</EmwsUrl>
        <EcpUrl>https://outlook.msxfaq.net/owa/</EcpUrl>
        <EcpUrl-um>?path=/options/callanswering</EcpUrl-um>
        <EcpUrl-aggr>?path=/options/connectedaccounts</EcpUrl-aggr>
        <EcpUrl-mt>options/ecp/PersonalSettings/DeliveryReport.aspx?rfr=olk&amp;exsvurl=1&amp;IsOWA=&lt;IsOWA&gt;&amp;MsgID=&lt;MsgID&gt;&amp;Mbx=&lt;Mbx&gt;&amp;realm=krone.de</EcpUrl-mt>
        <EcpUrl-ret>?path=/options/retentionpolicies</EcpUrl-ret>
        <EcpUrl-photo>?path=/options/myaccount/action/photo</EcpUrl-photo>
        <EcpUrl-extinstall>?path=/options/manageapps</EcpUrl-extinstall>
        <OOFUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</OOFUrl>
        <UMUrl>https://outlook.msxfaq.net/EWS/UM2007Legacy.asmx</UMUrl>
        <OABUrl>https://outlook.msxfaq.net/oab/12345678-1234-1234-1234-123456789012/</OABUrl>
        <ServerExclusiveConnect>off</ServerExclusiveConnect>
      </Protocol>

 

Protocol EXPR

Über diesen Eintrag verrät Autodiscover dem Outlook Client, wie er per RPC/HTTP auf das Postfach zugreifen kann. Dies war die erste Version und es gibt noch keine Unterscheidung nach "Internet" oder "Extern".

<Protocol>
   <Type>EXPR</Type>
   <Server>rpc.msxfaq.net</Server>
   <SSL>On</SSL>
   <AuthPackage>Ntlm</AuthPackage>
   <ServerExclusiveConnect>on</ServerExclusiveConnect>
   <GroupingInformation>DE-Paderborn</GroupingInformation>
</Protocol>

Protocol EXHTTP

Dabei handelt sic es ich nicht um das neue MAPI/HTTP-Protokoll sondern eine abgewandelte Art des RPC/HTTP. Als Weiterentwicklung bekommt der Client hier zwei URLs und kann nun nach "intern" und "extern" unterscheiden. Daher gibt es den Eintrag in der Regel doppelt: Einmal für interne URLs und einmal für externe URLs

<Protocol>
   <Type>EXHTTP</Type>
   <Server>outlook.msxfaq.net</Server>
   <SSL>On</SSL>
   <AuthPackage>Ntlm</AuthPackage>
   <ASUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</ASUrl>
   <EwsUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</EwsUrl>
   <EmwsUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</EmwsUrl>
   <EcpUrl>https://outlook.msxfaq.net/owa/</EcpUrl>
   <EcpUrl-um>?path=/options/callanswering</EcpUrl-um>
   <EcpUrl-aggr>?path=/options/connectedaccounts</EcpUrl-aggr>
   <EcpUrl-mt>options/ecp/PersonalSettings/DeliveryReport.aspx?...</EcpUrl-mt>
   <EcpUrl-ret>?path=/options/retentionpolicies</EcpUrl-ret>
   <EcpUrl-photo>?path=/options/myaccount/action/photo</EcpUrl-photo>
   <EcpUrl-extinstall>?path=/options/manageapps</EcpUrl-extinstall>
   <OOFUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</OOFUrl>
   <UMUrl>https://outlook.msxfaq.net/EWS/UM2007Legacy.asmx</UMUrl>
   <OABUrl>https://outlook.msxfaq.net/oab/12345678-1234-1234-1234-123456789012/</OABUrl>
   <ServerExclusiveConnect>On</ServerExclusiveConnect>
</Protocol>

Protocol WEB

Hier verrät Autodiscover die URLs für den Zugriff per Browser. Diese Daten sehen Sie z.B. in Outlook unter den Kontoeinstellungen:

Ein "Browser" macht natürlich kein Autodiscover um anhand der Mailadresse den Anwender selbständig auf den Webmail-Zugang zu leiten. Daher gibt es hier die Unterpunkte für den jeweiligen anderen Zugang:

<Protocol>
   <Type>WEB</Type>
   <Internal>
     <OWAUrl AuthenticationMethod="Basic, Fba">https://outlook.msxfaq.net/owa/</OWAUrl>
     <Protocol>
       <Type>EXCH</Type>
       <ASUrl>https://outlook.msxfaq.net/EWS/Exchange.asmx</ASUrl>
     </Protocol>
   </Internal>
   <External>
     <OWAUrl AuthenticationMethod="Fba">https://outlook.msxfaq.net/owa/</OWAUrl>
     <Protocol>
       <Type>EXPR</Type>
       <ASUrl>https://outlook.msxfaq.net/ews/exchange.asmx</ASUrl>
     </Protocol>
   </External>
</Protocol>

Protocol mapiHttp

Dieser Eintrag unterscheidet sich von den anderen Einträgen, da das Protokoll nicht als eigenes Tag mit dem Namen "<Type>" sondern als Property im Tag <Protocol> geführt wird. Die Antwort beim Angebot von MAPI/HTTP ist deutlich kürzer. Eigentlich werden je Dienst nur die beiden URLs übermittelt.

      <Protocol Type="mapiHttp" Version="1">	
        <MailStore>
          <InternalUrl>https://ex01.msxfaq.net/mapi/emsmdb/?MailboxId=<guid>@<domain.tld></InternalUrl>
          <ExternalUrl>https://outlook.msxfaq.net/mapi/emsmdb/?MailboxId=<guid>@<domain.tld></ExternalUrl>
        </MailStore>
        <AddressBook>
          <InternalUrl>https://ex01.msxfaq.net/mapi/nspi/?MailboxId=<guid>@<domain.tld></InternalUrl>
          <ExternalUrl>https://outlook.msxfaq.net/mapi/nspi/?MailboxId=<guid>@<domain.tld></ExternalUrl>
        </AddressBook>
      </Protocol>

Tag AlternativeMailbox

Mittlerweile kann Exchange dem Client auch die Postfächer übermitteln, auf die der Anwender noch Rechte hat. Das ganze läuft unter dem Begriff "AutoMapping". Siehe dazu auch Shared Mailbox und Automapping. Diese Einträge kann es mehrfach geben.

      <AlternativeMailbox>
        <Type>Delegate</Type>
        <DisplayName>Mustermann, Thomas</DisplayName>
        <SmtpAddress>thomas.mustermann@msxfaq.net</SmtpAddress>
        <OwnerSmtpAddress>thomas.mustermann@msxfaq.net</OwnerSmtpAddress>
      </AlternativeMailbox>

Allerdings steht hier nur die SMTP-Adressen. Wenn Outlook diese Postfächer einbinden will, dann startet es natürlich eine neue Autodiscover-Anfrage für diese Mailadresse.

Tag PublicFolderInformation

Sofern Sie noch öffentliche Ordner in ihrer Topologie anbieten, werden diese auch über Autodiscover mitgeteilt. Bei einer Exchange 2013+ Umgebung mit "Modern Public Folder" ist hier ein Verweis auf die Public Folder Mailbox zu finden:

      <PublicFolderInformation>
        <SmtpAddress>pf1@msxfaq.net</SmtpAddress>
      </PublicFolderInformation>

POP3/IMAP4

Die XML-Struktur ist per Definition erst einmal "offen" und flexibel für neue Protokolle und die automatische Konfiguration ist keineswegs auf Exchange beschränkt. Und tatsächlich können auch andere Provider mittlerweile "Autodiscover" anbieten und liefert z.B. POP3 oder IMAP4 Konfigurationseinstellungen aus. Damit können Outlook-Benutzer auch allein durch Eingabe ihrer Mailadresse (=Anmeldename) und Kennwort das Mailprofil einrichten. Mit der Installation von Outlook 2003/2010 wurden lokal sogar entsprechende XML-Dateien schon vorbereitet abgelegt, so dass Outlook auch dann eine "automatische Erkennung" unterstützt, wenn der Provider nicht dabei hilft.

Diese Dateien befanden sich als XML-Dateien unter "C:\Program Files\Microsoft Office\Office12\OutlookAutoDiscover\" und wurden in der Registrierung unter HKEY_Current_User\Software\Microsoft\Office\12\Outlook\Autodiscover referenziert. Mittlerweile geht Microsoft wohl davon aus, dass die Provider selbst entsprechende XML-Dateien bereitstellen. Hier ein Musteraufbau:

<Protocol>
   <Type>POP3</Type>
   <Server>pop.msxfaq.net</Server>
   <Port>110</Port>
   <DomainRequired>off</DomainRequired>
   <SPA>off</SPA>
   <SSL>on</SSL>
   <AuthRequired>on</AuthRequired>
   <LoginName>user1</LoginName>
</Protocol>

<Protocol>
   <Type>IMAP</Type>
   <Server>imap.msxfaq.net</Server>
   <Port>143</Port>
   <DomainRequired>off</DomainRequired>
   <SPA>off</SPA>
   <SSL>on</SSL>
   <AuthRequired>on</AuthRequired>
   <LoginName>user1</LoginName>
</Protocol>

<Protocol>
   <Type>SMTP</Type>
   <Server>mailto.msxfaq.net</Server>
   <Port>576</Port>
   <DomainRequired>off</DomainRequired>
   <SPA>off</SPA>
   <SSL>on</SSL>
   <AuthRequired>on</AuthRequired>
   <UsePOPAuth>off</UsePOPAuth>
   <SMTPLast>on</SMTPLast>
   <LoginName>user1</LoginName>
</Protocol>

Interessanterweise versteht nicht nur Outlook solche Informationen. Auch Thunderbird hat ein ähnliches Prinzip mittlerweile umgesetzt.

Weitere Links