Exchange - Autodiscover

Unified Communications Consultant m/w
Komm in unser Team bei Net at Work. Bewirb dich jetzt bei uns.
http://www.netatwork.de/jobs.htm#LyncCon

Autodiscover ist einer der Schlüsselkomponenten, wie Outlook 2007 und Windows Mobile 6.1 den Weg zum Exchange 2007 Server, dem Offline Adressbuch und anderen Exchange Diensten findet.

Hinweis:
Die erste Exchange 2007 Installation im Forest veröffentlicht einen "Service Connection Point" im Active Directory und wenn Outlook 2007 eingesetzt wird, dann findet Outlook diesen Eintrag und versucht diesen auch zu nutzen.
Kontrollieren Sie daher nach der Installation von Exchange 2007 diesen Eintrag. Zum Glück ist die Standardeinstellungen "korrekt", d.h. die URL im SCP entspricht dem Servername auf dem auch das korrekte Zertifikat installiert ist, welchem Outlook innerhalb der Domain auch vertraut.

Achtung
Nutzen ihre Anwender Outlook 2007 auf einem PC, der nicht Mitglied des Exchange Forest ist, dann versucht Outlook "autodiscover.maildomain.tld" als DNS-Host aufzulösen. Die dann genutzten Zertifikaten müssen für den Client vertrauenswürdig sein.

Der Lync-Client als auch die Lync Telefone nutzen "Autodiscover", um per EWS aus Exchange Informationen zu den nächsten Meetings etc. zu erhalten. Leider ignorieren Sie dabei sowohl die Service Connection Points als auch SREV-Records. Sie müssen also diese Funktion per "autodiscover.<maildomain> mit einem passenden Zertifikat auf dem CAS-Server bereit stellen.

Achtung: Outlook kann per Autodiscover NICHT ein Postfach auf Exchange 2003 auflösen. Hier greift der "Auto Profil Create"-Mechanismus, indem Outlook per LDAP im AD direkt den Server zum Benutzer auflösen will.

Mit dem Einsatz von Outlook 2007 wird die Funktion "Autodiscover" auch für die Verbindung per Internet mit RPC over HTTP wichtig, da Outlook den Exchange 2007 Server "erkennt" und dann immer per Autodiscover arbeitet. Entsprechend muss man Autodiscover, aber auch EWS und OAB aus dem Internet per SSL und Anmeldung erreichbar machen.

Outlook 2010 scheint die Antworten einer Autodiscover-Antwort zu "Cachen" (Verzeichnis C:\Users\%username%\AppData\Local\Microsoft\Outlook), so dass man in vielen Fällen auch ohne korrekte externe Konfiguration von extern arbeiten kann.

Outlook scheint bei der Verwendung des SCP immer den "ältesten" CAS-Server in der AD-Site zu nutzen. Dies ist wohl noch ein Fehler in Outlook, welches bei der LDAP-Anfrage zwar ein Array bekommt, aber immer den ersten (ältesten) Eintrag nutzt. Wohl dem. der die SCP-URLs auf einen generischen Namen gelegt, hat, welcher per LoadBalancer einen verfügbaren CAS erreicht.

Autodiscover "Song"
http://msexchangeteam.com/files/12/attachments/entry449511.aspx
Details, warum der Song entstand beschreibt David Sterling, Exchange Web Services Engineer, auf http://blogs.technet.com/b/exchange/archive/2008/08/07/449501.aspx

Webseite zum externen Test der Exchange Anbindung und DNS Einträge
https://www.testexchangeconnectivity.com/

Beachten Sie auch die How-To Seite E2K7:Autodiscover

POP3 und IMAP4 Clients - Thunderbird kennt auch ein "AutoConfigure"

Die Server-Seite

Outlook 2007 kennt ein neues Verfahrung, um sich automatisch zu konfigurieren. Dazu muss aber Exchange 2007 die entsprechenden Daten beisteuern. Diese Arbeit übernimmt die Client Access Rolle, welche bei der Installation schon automatisch auf dem IIS ein neues virtuelles Verzeichnis "Autodiscover" anlegt und bereit stellt.

Outlook2007 Autodiscover

Weitere Informationen zu diesem virtuellen Verzeichnis erhalten Sie wieder über die Powershell

Get-AutodiscoverVirtualDirectory

Outlook Autodiscover

Get-ClientAccessServer | fl
PS1 Client Access
Hier ist besonders die "AutoDiscoverServiceGuid interessant

Autodiscover und Active Directory

Das ist aber nur der erste Schritt. Damit die Clients überhaupt wissen, wo Sie nach diesem Webservice fragen müssen, veröffentlicht Exchange auch im Active Directory einen so genannten "Service Connection Point. Man kann diese Objekte recht einfach über eine Suche im AD und dem Filter "(objectclass=serviceconnectionpoint)" finden.

Autodiscover

Sie können die Werte mit CSVDE einfach exportieren. (Bitte ihre Active Directory Domain verwenden und die Zeilenumbrüche entfernen)

csvde
   -r "(&(objectclass=serviceconnectionpoint)
         (|(keywords=77378F46-2C66-4aa9-A6A6-3E7A48B19596)
           (keywords="67661d7F-8FC4-4fa7-BFAC-E1D7794C1F68")
         )
       )"
   -l "dn,serviceBindingInformation,keywords"
   -d "cn=configuration,dc=msxfaq,dc=de"
   -f auto.csv
   -t 3268

Wenn Sie den Filter auf die Keywords weglassen, dann ist die Ausgabe etwas "umfangreicher", weil es natürlich verschiedene SCPs gibt:

DN,serviceBindingInformation,keywords
"CN=ABCHContactService,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",http://pvt-contacts.msn.com/abservice/abservice.asmx,
"CN=DomainPartnerManageDelegation,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://domains.live.com/service/managedelegation.asmx,
"CN=DomainPartnerManageDelegation2,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://domains.live.com/service/managedelegation2.asmx,
"CN=LiveFederationMetadata,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://nexus.passport.com/FederationMetadata/2006-12/FederationMetadata.xml,
"CN=LiveGetUserRealm,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://login.live.com/GetUserRealm.srf,
"CN=LiveServiceLogin2,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://login.live.com/RST2.srf,
"CN=Microsoft Exchange Online,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=E2010,DC=local",*.outlook.com,D3614C7C-D214-4F1F-BD4C-00D91C67F93F
"CN=W2K8R2E2010,CN=Autodiscover,CN=Protocols,CN=W2K8R2E2010,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://W2K8R2E2010.E2010.local/Autodiscover/Autodiscover.xml,Site=Default-First-Site-Name;77378F46-2C66-4aa9-A6A6-3E7A48B19596
"CN=MsoFederationMetadata,CN=ServiceEndpoints,CN=E2010Org,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=E2010,DC=local",https://nexus.microsoftonline-p.com/FederationMetadata/2006-12/FederationMetadata.xml,
"CN=RTC Service,CN=Services,CN=Configuration,DC=E2010,DC=local",,83DF614F-9B36-465a-B861-EDEBD9C28A46;83C29870-1DFC-11D3-A193-0000F87A9099

Interessant ist hier für Autodiscover der "drittletzte" Eintrag, weil er das richtige "Keyword" enthält

"77378F46-2C66-4aa9-A6A6-3E7A48B19596"  weist auf URLs hin
"67661d7F-8FC4-4fa7-BFAC-E1D7794C1F68"  weist auf Domains hination
"CN=SRV01,CN=Autodiscover,CN=Protocols,CN=SRV01,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=MSXFAQ,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=msxfaq,DC=de",https://srv01.msxfaq.de/Autodiscover/Autodiscover.xml

Bei mir ist natürlich nur ein Server in der Liste enthalten.

Aber auch dieser Punkt alleine "reicht" nicht, da aus dem Internet das Active Directory kaum zu erreichen ist. Aus diesem Grund versucht Outlook 2007 auch noch anhängig von der Mailadresse des Benutzers die folgenden URLs zu erreichen. Wenn ich dies also für user@firma.tld machen würde, dann fragt Outlook 2007 nach:

Damit dies also funktioniert, muss der Hostname "autodiscover" auflösbar sein.

Ich habe bislang noch nicht gesehen, dass Exchange oder das Setup alleine den entsprechenden Eintrag im DNS anlegt. Hier sind Sie also als Administrator gefordert, einen entsprechenden Eintrag in den jeweiligen DNS-Zonen vorzunehmen.

Zudem muss dieser ein SSL-Zertifikat haben.

Sie müssen nicht unbedingt ein offizielles Zertifikat für Autodiscover einsetzen.
Man kann durch Weglassen des "-generateRequest" auch ein selbstsigniertes Zertifikat erstellen, was intern vollkommen ausreichend ist. (Siehe auch E2K7: Zertifikate)

Autodiscover ist aber nicht nur für Exchange von Belang, sondern kann generell genutzt werden, um Outlook 2007 über eine XML-Datei zu steuern.

Autodiscovery A local xml file on the client for example and a regkey
http://office.microsoft.com/download/afile.aspx?AssetID=AM102105061033
Sehr ausführliches Dokument mit einer Beschreibung, wie Outlook die XML-Datei interpretiert und wie diese Funktion auch fürPOP3, IMAP4 und SMTP ohne Exchange genutzt werden kann, z.B.: durch eine lokale XML-Datei und einem entsprechenden Eintrag in der Registrierung.

Autodiscover ist daher auch  für Internetprovider und Firmen ohne Exchange eine nützliche Funktion.

Autodiscover und AD-Sites

Auch wenn ein Client intern per LDAP die Service Connection Points abfragen kann, so bedeutet dies in größeren Umgebungen, dass der Client doch einen "entfernten" CAS-Server erwischen würde. Auch dafür hat Microsoft gesorgt, indem einem CAS-Server der Scope mitgegeben werden kann, für den er "zuständig" ist.

Wenn Sie einen CAS-Server installieren, dann ermittelt er selbständig anhand seiner IP-Adresse die AD-Site und trägt diese als Scope ein.

Allerdings passiert dies wohl nur beim Setup. Wer als nachträglich die Sites umbenennt oder den Server in eine andere Site verschiebt, sollte diese Einstellungen korrigieren:

Das geht mit dem "Set-ClientAccessServer"-CMDlet

Set-ClientAccessServer AutoDiscoverSiteScope sitename

Wenn ein CAS-Server auch mehrere Sites abdecken soll, dann können Sie dies hier hinterlegen. Sie erkennen dies auch am Service Connection Point.

Oder natürlich über die Abfrage mit "Get-ClientAcccessServer"

Diese Einstellungen sind nur für Clients relevant, die auch per LDAP den SCP suchen und damit den "naheliegenden" CAS-Server ermitteln wollen.

You can use the Shell to configure site affinity for the Autodiscover service on the Microsoft Exchange Server 2010 Client Access server. When you configure site affinity on the Client Access server, you enable clients using Outlook 2007 and Outlook 2010 to get Autodiscover information from the closest Active Directory site. This provides Autodiscover information to the Outlook clients more quickly than if site affinity hasn't been set
Configure the Autodiscover Service to Use Site Affinity http://technet.microsoft.com/en-us/library/aa998575.aspx

Outlook 2007/2010 und Autodiscover

Outlook 2007 ist von Hause aus auf Autodiscover eingestellt. Dazu nutzt Outlook sowohl das Active Directory als auch DNS.

Pfad: User Configuration\Administrative Templates\ Microsoft Office Outlook 2007\Tools | Accounts settings\Exchange
Eintrag: Automatically configure profile based on Active Directory Primary SMTP address

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Autodiscover]
"msxfaq.de"="%programfiles%\Microsoft Office\Office12\msxfaq.de.xml"

<?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">
    <Account>
      <AccountType>email</AccountType> 
      <Action>redirectUrl</Action> 
      <RedirectUrl>https://autodiscover.msxfaq.de/autodiscover/autodiscover.xml</RedirectUrl> 
    </Account>
  </Response>
</Autodiscover>
version: 1
objectClass: top
objectClass: leaf
objectClass: connectionPoint
objectClass: serviceConnectionPoint
cn: SRV01
distinguishedName: CN=SRV01,CN=Autodiscover,CN=Protocols,CN=SRV01,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=MSXFAQ,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=MSXFAQ,DC=de
instanceType: 4
showInAdvancedViewOnly: TRUE
name: SRV01
objectGUID:: J5fERgH1HEOrf1V1dAoEmA==
keywords: Site=Paderborn
keywords: 77378F46-2C66-4aa9-A6A6-3E7A48B19596
systemFlags: 1073741824
serviceClassName: ms-Exchange-AutoDiscover-Service
serviceBindingInformation: https://SRV01.msxfaq.de/Autodiscover/Autodiscover.xml
serviceDNSName: SRV01
objectCategory: CN=Service-Connection-Point,CN=Schema,CN=Configuration,DC=msxfaq,DC=de

_autodiscover._tcp.msxfaq.com SRV priority=0, weight=100, port=443, owa.msxfaq.com

If Outlook is running on a domain-joined computer, Outlook first queries the Active Directory for a Service Connection Pointer (SCP) object.
Quelle: http://office.microsoft.com/search/redir.aspx?AssetID=AM102105061033

Da stellt sich natürlich die Frage was Firmen ohne Exchange 2007 machen, die Outlook 2007 einsetzen. Auch hier versucht Outlook den Service Connection Point zu suchen, aber wird ihn nicht finden. (Man kann ihn als Administrator von Hand anlegen.) und Outlook fragt natürlich auch nach dem DNS-Namen. Solange es beides nicht gibt, ist fast nichts von dieser versteckten Outlook Funktion zu sehen.

Outlook, Autodiscover SSL und das falsche Zertifikat
Outlook versucht beim Zugriff auf "Autodiscover" zuerst immer per HTTPS eine Verbindung aufzubauen. Wenn hinter dieser URL dann ein Server mit einem "falschen" Zertifikat antwortet, dann beschwert sich Outlook und warnt.
Ist hinter dieser URL jedoch keine Verbindung per HTTPS möglich, dann nutzt Outlook HTTP um eine Umleitung auf eine anderen Webseite zu erhalten.

Achtung
Outlook liest das Feld "mail" aus dem Active Directory aus. Sollte, warum auch immer, diese Adresse nicht der primären SMTP-Adresse entsprechen, dann funktioniert Autodiscover nicht. Das Feld kann ein Admin über die MMC für Benutzer und Computer unabhängig von Exchange ändern .Ein "Update-Recipient" fixt sowas.

Es kann daher interessant sein, einen "Autodiscover"-Eintrag im offiziellen Namensraum z.B.: auf die Firmenwebseite (ohne SSL) zu verweisen und dort einfach den Pfad "Autodiscover" auf eine andere Webseite (z.B. owa.firma.tld) mit dem passenden Zertifikat umzuleiten. So erspart man sich den Namen "Autodiscover" im SAN-Zertifkate.

Autodiscover Flussdiagramm 

Entgegen der Dokumentation von Microsoft habe ich sehr wohl beobachtet, dass die POP3/IMAP4/SMTP-Optionen geprüft werden, selbst wenn man im Active Directory ist. Die Dokumentation von Microsoft besagt hingegen, dass erst die Active Directory Daten ausgelesen und versucht werden und erst nach dem Misserfolg die anderen Wege "probiert" werden.

Autodiscover und Redirect
Autodiscover erlaubt eine Konfiguration, bei der autodiscover.domain.tld auf einen Webserver verweist, der KEIN SSL anbietet, sondern nur auf HTTP reagiert und den Client umlenkt. Das funktioniert mit Outlook 2007 SP1 recht gut aber ein iPhone (ActiveSync) mag das nicht und auch die Exchange Web Services benötigen Zusatzcode, um diese Exception abzufangen.

CAS-Failover/HA mit DNS
Da Outlook zuerst "autodiscover" anfragt, kann man diesen Eintrag auf die primäre Site lenken. Wenn dort kein Webservice antwortet, dann wird Outlook 2007SP1 und neuer später den SRV-Record versuchen. Dieser kann auf die BackupSite verweisen, da er dann eine Verfügbarkeit bereit stellen kann.

Wichtig sind hier die beiden folgenden weiterführenden Links:

Autodiscover mit Redirect

Schwieriger wird es natürlich für Hoster, die gerne viele Kunden (und damit viele Domains) betreiben aber nicht für jede SMTP-Domäne ein "autodiscover.<kundendomain>" im Zertifikat registrieren wollen. Eine Verteilung von lokalen XML-Dateien ist hier aber auch nicht die beste Wahl, da es für die vielen Clients ja kein zentrales Management für spätere Updates gibt.

Hier bietet sich die "Umleitung" an, d.h."autodiscover.<kundendomain>" geht auf einen Webserver der die Anfrage aber auf einen anderen Webserver "umleitet". Per Default verweigert sich Outlook dieser Umleitung aber, denn aus Sicherheitsgründen erwartet Outlook, dass der Domainname des angesprochenen Server natürlich auch mit der SMTP-Adresse des Anwenders übereinstimmt. Schließlich sendet Outlook dort im nächsten Schritt seine Anmeldeinformationen hin.

Daher müssen Sie Outlook die Adressen mitteilen, die für solche eine Umleitung "Vertrauenswürdig" sind. Technisch sind das Registrierungseinstellungen

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\AutoDiscover]
"RedirectServers"="autodiscover-s.outlook.com;autodiscover.outlook.com"


[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\AutoDiscover\RedirectServers]
"autodiscover-s.outlook.com"=hex(0):
"autodiscover.outlook.com"=hex(0):

Wie Sie diese Einstellungen "verteilen", bleibt natürlich nun ihre Aufgabe. Für PCs in ihrer Domäne sind natürlich Gruppenrichtlinien optimal. Microsoft Office 365 pflegt diese Einstellungen z.B. durch den Office 365 Anmeldeassistent.

Für Outlook 2007 ist ein Hotfix erforderlich (Okt 2010)

Outlook Abfragen tunen

Die von Microsoft vorgegebene Reihenfolge der Abfrage kann man nicht direkt ändern. Aber über Registry-Einträge können bestimmte Abfragen deaktiviert werden.

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\AutoDiscover]
"ExcludeHttpsAutodiscoverDomain"=dword:00000001
"ExcludeHttpsRootDomain"=dword:00000001
"ExcludeScpLookup"=dword:00000001
"ExcludeSrvRecord"=dword:00000001
"PreferLocalXML"=dword:00000001
"RedirectServers"="be.prg.com;adroot.local"
"smtpdomain.com"="C:\\Program Files\\Microsoft Office\\Office12\\OutlookAutoDiscover\\smtpdomain.xml"

Gehen Sie aber sehr umsichtig damit vor und merken Sie sich diese Abweichung vom Standard. Bei der Fehlersuche sollten Sie wissen, dass Sie hier Abweichungen eingestellt haben.

Autodiscover "testen"

Outlook 2007 enthält eine kleine aber wichtige Funktion, um die Auflösung der Autodiscover-Funktion zu prüfen. Sie ist, wie auch andere Funktionen, hinter dem Outlook 2007 Icon versteckt.

Sie müssen dazu nur bei gestartetem Outlook die "STRG"-Taste (CTRL) gedrückt halten und mit der rechten Maustaste auf das Outlook Icon neben der Uhr in der Taskleiste klicken. Im Kontextmenü finden Sie dann einen Punkt E-Mail-Autokonfiguration testen...".

Autodiscover

Im folgenden Fenster geben Sie dann einfach ihre Mailadresse und das Kennwort für das entsprechende Konto ein. Wenn Sie einen Exchange Server einsetzen, dann sollten Sie "Guesssmart" einfach abschalten, da damit nur POP3/IMAP4-Verbindungen versucht werden, die man beim Einsatz von Outlook und Exchange besser vermeidet.

Wenn es dann aber funktioniert hat, dann sehen Sie im "Ergebnis"-Fenster die Rückmeldung, welche Dienste wie angesprochen werden. Es ist besonders gut zu erkennen, dass AutoDiscover nicht nur für die Erstkonfiguration des MAPI-Profils zuständig ist, sondern auch Offline Adressbücher "OAB", Frei/Belegt-Zeiten (Free/Busy) und auch Abwesenheitsassistenten (OOF) über diesen Weg bestimmt werden.

Autodiscover OK

Zumindest innerhalb ihres Netzwerks sollte Autodiscover dank Active Directory und Service Connection Point immer funktionieren.

Fehlersuche mit Outlook Protokollierung

Sie Funktion können Sie auch über ein Protokoll erstellen lassen. Dazu müssen Sie natürlich erst in Outlook die Protokollierung aktivieren:

Danach finden Sie aber im %TEMP%-Verzeichnis eine ganze Schar von Logdateien und Unterverzeichnissen:

Für Autodiscover ist die olkdisc.log interessant, welche tiefe Einblicke gewährt, wie Outlook die Daten ermittelt hat

Autodiscover und Outlook 2007 SP1

Wenn Sie "sicher" stellen können, dass alle Client auch Outlook 2007 SP1 oder neuer oder eben Outlook 2003 und älter einsetzen, dann können Sie mit dem DNS-SRV-Eintrag die ganzen Aufwände für ein SAN-Zertifikat oder eine Autodiscover Webseite ohne SSL mit Umleitung auf eine andere Seite sparen und einen SRV-Record im DNS eintragen:

Autodiscover im DNS

Den Erfolg des Eintrags können Sie per NSLOOKUP einfach prüfen

NSLookup auf SRV-Record

Der Eintrag verweist auf den Namen eines Webserver mit dem "passenden" Zertifikat. Outlook 2007 SP1 erkennt den Eintrag aber fragt einmal nach, ob diese Umleitung auch so in Ordnung ist.

Outlook und SRV-Record

Ein Test über die Outlook 2007 "Test Autodiscover"-Funktion zeigt auch hier dann die Umleitung im Protokoll an.

Outlook Test Autodiscover mit SRV-Record

Man sieht hier gut, dass Outlook erst einmal die alten Zugriffe auf den Domainnamen, auf Autodiscover per SSL und auf Autodiscover als "Redirect-Check" versucht um dann aber einen "SRV-Record Lookup" zu machen, der diesmal zum Erfolg führt und Outlook auf die primäre Seite umleitet. Da bekommt der dann auch per SSL verschlüsselt eine Antwort und kann weiter arbeiten.

Es gibt berichte, dass nicht alle DSL-Router, die auch als DNS-Proxy fungieren, mit den SRV-Records arbeiten. Wenn Sie also an einem privaten Netzwerk arbeiten und Autodiscover nicht funktioniert, dann geben Sie doch einfach mal das folgende ein:

NSLookup prüft SRVrecord 

Hier sehen Sie die Anfrage aus den SRV-Record von Net at Work. Wenn diese Anfrage oder die Anfrage auf ihre Domain nicht funktioniert, dann fragen Sie mit NSLOOKUP mal einen anderen Server anstelle ihres Routers (meist 192.168.0.1)

Autodiscover anpassen

Es steht nirgendwo fest zementiert, dass Namen der Server in ihrer Umgebung nicht verändern dürfen. Teilweise müssen Sie Autodiscover sogar anpassen, um in ihrer Umgebung die Funktion zu gewährleisten. Speziell wenn Sie den Namen des Serverzertifikats auf dem Exchange Server ersetzen, dann kann auch die Verbindung über den Service Connection Point (SCP) gestört sein. Daher gibt es zwei Powershell Kommandos, mit denen Sie Exchange auf die veränderten Umgebungsbedingungen einstellen können

Get-ClientAccessServer | fl aut*

AutoDiscoverServiceCN          : SRV01
AutoDiscoverServiceClassName   : ms-Exchange-AutoDiscover-Service
AutoDiscoverServiceInternalUri : https://srv01.msxfaq.de/Autodiscover/Autodiscover.xml
AutoDiscoverServiceGuid        : 78f73746-2c66-a4a9-6aa6-5963e7a48b19
AutoDiscoverSiteScope          : {Paderborn}
Get-AutodiscoverVirtualDirectory | fl

Name                          : Autodiscover (Default Web Site)
InternalAuthenticationMethods : {Basic, Ntlm, WindowsIntegrated}
ExternalAuthenticationMethods : {Basic, Ntlm, WindowsIntegrated}
BasicAuthentication           : True
DigestAuthentication          : False
WindowsAuthentication         : True
MetabasePath                  : IIS://srv01.msxfaq.de/W3SVC/1/ROOT/Autodiscover
Path                          : D:\Program Files\Microsoft\Exchange Server\Clie
                                ntAccess\Autodiscover
Server                        : srv01
InternalUrl                   : srv01.msxfaq.de/Autodiscover/Autodiscover.xml
ExternalUrl                   : autodiscover.msxfaq.de/Autodiscover/Autodiscover.xml
Identity                      : srv01\Autodiscover (Default Web Site)
OriginatingServer             : srv01.msxfaq.de
IsValid                       : True

Wenn Sie also intern z.B. das Zertifikat auf dem CAS-Server auf "Webmail.firma.de" ausstellen, dann wird eine Autodiscover-Anfrage auf "https://servername.firma.local" natürlich daneben gehen. Dann muss man Intern eben auch den SCP umstellen oder Sie verzichten auf den SCP und nutzen die DNS-Einträge, auf die Outlook zurück fällt, wenn eine Verbindung über den Service Connection Point nicht möglich ist.

Autodiscover "manuell"

Wie sie weiter oben schon gelesen haben, müssen Sie die nicht DNS-Funktionen von Outlook nutzen, sondern können auch direkt eine vorbereitete XML-Datei einstellen. Hier ein Beispiel, was sie natürlich auf ihre Anforderungen anpassen müssen.

Achtung.
Die Tags der XML-Datei sind "Case-Sensibel", d.h. Groß/Kleinschreibung muss unbedingt beachtet werden. Das Tag "OABUrl2" ist als Beispiel zu sehen aber wird nicht ausgewertet. Es darf nur ein <OABUrl>-Tag geben.

<Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/responseschema/2006">
  <Response xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a">
    <Account>
      <AccountType>email</AccountType>
      <Action>settings</Action>
      <Protocol>
        <Type>EXCH</Type>
        <Server>srv01.msxfaq.de</Server>
        <ASUrl>https://cas.msxfaq.de/ews/exchange.asmx</ASUrl>
        <OOFUrl>https://cas.msxfaq.de/ews/exchange.asmx</OOFUrl>
        <UMUrl>https://cas.msxfaq.de/unifiedmessaging/service.asmx</UMUrl>
        <OABUrl>Public Folder</OABUrl>
        <OABUrl2>https://cas.msxfaq.de/OAB/d29844a8449-742e-4c68-8820-0fb77b34576b/</OABUrl2>
      </Protocol>
      <Protocol>
        <Type>EXPR</Type>
        <Server>srv01.msxfaq.de</Server>
        <ASUrl>https://cas.srv01.msxfaq.de/ews/exchange.asmx</ASUrl>
        <OOFUrl>https://cas.srv01.msxfaq.de/ews/exchange.asmx</OOFUrl>
        <UMUrl>https://cas.srv01.msxfaq.de/unifiedmessaging/service.asmx</UMUrl>
        <OABUrl>Public Folder</OABUrl>
        <OABUrl2>https://cas.srv01.msxfaq.de/OAB/d29844a9-724e-468c-8820-0f7b345b767b/</OABUrl2>
      </Protocol>
    </Account>
  </Response>
</Autodiscover>

Weitere Informationen hierzu finden Sie auch auf den folgenden Seite:

Aktiviert wird die XML-Datei über einen Eintrag in der Registrierung, welchen Sie auch per Gruppenrichtlinien setzen können. Die XML-Datei können Sie natürlich auch per GPO verteilen.

Autodiscover in Regedit

Alternativ können Sie auch einfach eine REG-Datei ähnlich der folgenden importieren:

Windows Registry Editor Version 5.00

[HKEY_USERS\.DEFAULT\Software\Microsoft\Office\12.0\Outlook\AutoDiscover]
"msxfaq.de"="C:\\PROGRA~1\\MIF5BA~1\\Office12\\OUTLOO~1\\msxfaq.XML"

Der Name des Schlüssels muss der Maildomäne entsprechen. In Regedit sehen Sie auch, dass Outlook eine ganze Menge XLM-Dateien bereits "vorgeladen" mitbringt. Es handelt sich um die größeren US-Amerikanischen Provider, die Outlook 2007 damit helfen, die POP3, IMAP4 und SMTP-Server zu finden.

Autodiscover und Windows Mobile

Seit Windows Mobile 6.1 kann der Anwender noch einfacher seine ActiveSync-Verbindung herstellen. Er muss auf dem Gerät mit Internetzugang nur seine Mailadresse und sein Kennwort eingeben. Das Windows Mobile 6.1 Gerät nutzt dann die Domäne um über DNS den Autodiscover Server "autodiscover.maildomain.tld" zu finden und per HTTP die Autodiscover-URL abzufragen.

Laut einer Mail von Microsoft nutzt ActiveSync zuerst die Optionen 2 und 3 und versucht dann einen SRV-Record aufzulösen

  1. Option2: Suche nach "https://contoso.com/autodiscover/autodiscover.xml"
  2. Option3: Suche nach "https://autodiscover.contoso.com/autodiscover/autodiscover.xml"
  3. Option5: Suche nach _autodiscover._tcp SRV-Record"

Dazu muss der Administrator wieder bei Exchange 2007 die externe URL bzw. den Namen des ActiveSync-Servers in der Konfiguration hinterlegen, damit die XML-Datei auch die Informationen enthält.

Set-ActiveSyncVirtualDirectory -Identity "COMPUTERNAME\Microsoft-Server-ActiveSync (Standardwebseite)" -ExternalURL "https://mobil.firma.tld/"

Set-ActiveSyncVirtualDirectory -Identity "COMPUTERNAME\Microsoft-Server-ActiveSync (Standardwebseite)" -ActiveSyncServer "https://mobil.firma.tld/"

Zusätzlich zu den allgemeinen globalen Einstellungen pro CAS-Server können auch auf dem virtuellen Verzeichnis "Microsoft-Server-ActiveSync" weitere Einstellungen getätigt werden:

Zusätzlich gibt es hier noch weitere Einstellungen zur Authentifizierung.

Weitere Informationen finden Sie in der BPOS Hilfe

Autodiscover Vorlagen für Outlook ohne Exchange

Mit der Installation von Outlook 2007 liefert Microsoft sogar schon einige Vorlagen für große Webhoster wie Yahoo mit. Diese befinden sich als XML-Dateien unter "C:\Program Files\Microsoft Office\Office12\OutlookAutoDiscover\" und werden in der Registrierung unter HKEY_Current_User\Software\Microsoft\Office\12.0\Outlook\Autodiscover referenziert. Am Beispiel von Yahoo.de kann man gut erkennen, dass hier Outlook die Position der POP3 und SMTP-Server mitgeteilt wird.

Autodiscover Vorlagen in Outlook

Eigentlich erschreckend, dass die großen deutschen Hoster wie GMX, WEB.DE und andere hier nicht mit auftauchen und Yahoo und viele andere immer noch kein Zugriff per SSL erlauben. Da ist es für Spammer dann doch sehr einfach, Accounts zu hacken.

Autodiscover mit Powershell prüfen.

Allein mit Outlook und installierter Powershell kann man ganz einfach die XML-Datei erhalten

(New-Object -ComObject Outlook.Application).session.autodiscoverxml

Ideal um z.B. eine Überwachung auszuführen, wenn ihnen "Test-AutodiscoverVirtualdirectory" nicht reichen sollte.

Autodiscover und Umleitung

Ehe Outlook 2007 SP1 auch mit SRV-Records arbeiten konnte, konnte ein Admin also nur ein Zertifikat für "autodiscover.maildomain.tld" konfigurieren oder ohne SSL einen HTTP-Redirect machen. Das funktioniert mit Outlook 2007 schon sehr gut aber wer per Exchange Web Services darauf zugreifen will, muss eine "Callback"-Funktion einrichten, die die Rückfrage bezüglich der "Umleitung" behandelt. Siehe auch EWS

Autodiscover in "Shared SMTP-Domains"-Umgebungen, BPOS und TargetAddress

Autodiscover spielt auch eine Rolle, wenn zwei Exchange Organisationen in zwei Forests arbeiten. Per Default kann natürlich die Auflösung von "autodiscover.andere.domain" die Arbeit erledigen. Interessanter wird es aber, wenn Sie Benutzer von einer Organisation in die andere Organisation migrieren und es zwischen den Forests einen Trust gibt dann kann man nämlich in dem lokalen Forest für Outlook einen Hinweis hinterlegen, wie es die CAS-Server der anderen Organisation erreicht. Dies ist der Fall, wenn z.B. Tochterfirmen einer Holding zwar eigene Forests und Exchange Systeme betreiben aber nach Außen mit einer "Konzernadresse" auftreten sollen. Diese Konstellation finden Sie aber auch mit BPOS, wenn sie einen Teil ihrer Postfächer noch selbst betreiben und einen anderen Teil bei einem Hoster "auslagern". Und natürlich bei Migrationen in andere Forests hinein.

In beiden Fällen kann es aber nur einen Autodiscover-Eintrag geben, der auf eine "Master-" Exchange Organisation verweist. Aber auch hier gibt es von Microsoft Exchange dann den Trick, dass es in dieser Master Organisation natürlich einen Benutzer geben muss, dessen Mails aber anhand der TargetAddress in die anderen Organisation geleitet werden. Genau diese "Weiterleitungsadresse" hilft nun auch bei Autodiscover, da der CAS-Server den Client an diese Domäne verweist.

Und auch hier gibt es einmal den DNS-Weg, d.h. die Weiterleitung auf eine andere Domain, für die ebenfalls "Autodiscover" korrekt eingerichtet ist. Speziell bei Migrationen innerhalb einer Firma oder zwischen vertrauten Domains, gibt es aber auch noch den Weg, im Active Directory einen Hinweis zu hinterlegen.

Ein so genannter "ServiceConnectionPoint" an oberster Ebene in der Configuration Partition kann den Client als auch die CAS-Server auf dir richtige Spur bringen.

dn: CN=msxfaq.de,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=netatwork,DC=de
changetype: add
objectClass: top
objectClass: leaf
objectClass: connectionPoint
objectClass: serviceConnectionPoint
cn: msxfaq.de
distinguishedName: CN=msxfaq.de,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=netatwork,DC=de
name: msxfaq.de
keywords: 67661D7F-8FC4-4fa7-BFAC-E1D7794C1F68
serviceBindingInformation: LDAP://msxfaq.de
objectCategory: CN=Service-Connection-Point,CN=Schema,CN=Configuration,DC=netatwork,DC=de

dn: CN=lyncme.de,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=netatwork,DC=de
changetype: add
objectClass: top
objectClass: leaf
objectClass: connectionPoint
objectClass: serviceConnectionPoint
cn: lyncme.de
distinguishedName: CN=lyncme.de,CN=Microsoft Exchange Autodiscover,CN=Services,CN=Configuration,DC=netatwork,DC=de
name: lyncme.de
keywords: 77378F46-2C66-4aa9-A6A6-3E7A48B19596
serviceBindingInformation: https://cas.lyncme.de
objectCategory: CN=Service-Connection-Point,CN=Schema,CN=Configuration,DC=netatwork,DC=de

Natürlich müssen Sie diese Einträge nicht von Hand anlegen. Ein Exchange 2010 Powershell-Commandlet kopiert ihnen die Einträge aus einer Quelle direkt in das Ziel.

$cred= get-credentials

Export-AutoDiscoverConfig
-DomainController dc1.source.tld 
-TargetForestDomainController dc2.target.tld
-TargetForestCredential $cred 
-MultipleExchangeDeployments $true
-verbose

Dieser Befehl legt im Ziel dann einen Service Connection Point an. Wie sie im obigen Bild sehen können, ist der Eintrag für "Microsoft Exchange Online" in jeder Exchange 2010 Installation sogar schon vordefiniert. Per Default überträgt der Befehl aber den Namen des Forests. Stimmt die primäre SMTP-Domain des Mitarbeiters aber nicht mit dem AD-Forestnamen überein, dann müssen Sie zusätzlich den "PreferredSourceFqdn" mit angeben.

Wenn sie zudem noch die Option "MultipleExchangeDeployments" verwenden, dann überträgt das Commandlet auch noch alle autoritativen Domains der Quelle und legt diese im Ziel im Feld "Keyword" mit an. Da eine Domain immer nur in einer Organisation "Autoritativ" sein sollte, wird damit eine durchgängige Auflösung erreicht.

Präferenz
Interessant ist, dass eine Anfrage eines Clients nach seiner Mailadresse von Outlook per LDAP immer erst der passende SCP heran gezogen wird, d.h. ein LDAP-Eintrag für einen anderen Forest, der zu einer Mailadresse passt, bringt Outlook dazu direkt den anderen Forest zu fragen und nicht erst die lokalen Autodiscover-Dienste zu kontaktieren, die dann z.B. per "TargetAddress" eine Umleitung zurückgeben könnten. Es sollte also nur ein Forest "Autoritativ" für eine Domain sein, damit notfalls der remote Forest die User wieder zurück senden kann, wenn das Postfach doch noch lokal wäre.

When you make a query for free or for busy information in a multiple forest scenario, the Autodiscover URL from the external forest entry is used instead of the Autodiscover URL from the local forest entry
Quelle: 973404 Description of the Outlook 2007 hotfix package (Outlook-x-none.msp): August 25, 2009

Dies ist auch interessant, wenn Sie Benutzer und Postfächer migrieren und über das Feld TargetAddress die Mails von einem Forest in den anderen Umleiten. Der Inhalt dieses Feldes hat auch Auswirkungen auf die Funktion von Autodiscover für dieses Postfach. Fragt ein Benutzer nämlich seinen CAS-Server im Forest an, dann prüft dieser im AD nicht nur, wo sein HomeServer und CAS-Zugang ist, sondern auch, ob das Feld TargetAddress gefüllt ist. Ist dieses Feld gefüllt, dann schaut der CAS nämlich in diesen Autodiscover-Verweisen nach und lenkt den Client zur anderen Organisation.

Hinweis:
Die Funktion von Autodiscover wurde auch mit nachfolgenden Servicepacks und besonders auch Hotfixes immer weiter verbessert. Bei Problemen ist ein Update daher erst einmal zu prüfen

Autodiscover mit vielen Domains bzw. Cloud Szenarien

Wer nur eine Maildomäne betreibt, der kann in sein Zertifikat auch einfach noch "autodiscover.<maildomain>" hinterlegen und den "einfachen" Weg nutzen. Aber wer als internationale Firma mehrere SMTP-Domains betreibt, muss sich was anderes überlegen. Es ist nicht ganz einfach (und billig) in einem SAN-Namen für jede Domain einen Autodiscover-Eintrag zu addieren. Die Liste kann nicht endlos lang sein.

Auch Provider wie z.B. Office 365 haben ein Problem mit einer solchen Konfiguration, da Sie ja für jeden neuen Kunden .bzw. neue SMTP-Domain ihre Zertifikate austauschen müssen. Hier sind also andere Lösungen gefragt. Sie sollten mittlerweile ja die verschiedenen Möglichkeiten am Anfang dieses Artikels gelesen und verstanden haben, dass Sie den passenden Weg für sich einrichten können. Nicht alle Clients benötigen auch zwingend Autodiscover, speziell wenn Sie keine EWS/OAB-Dienste nutzen, z.B. OWA, ActiveSync.

Anbieter Clients Option Beschreibung
Hoster Standalone PCs Lokale XML Für Hoster ist dies der eleganteste Weg über eine kleine Softwarelösung auf den Client des Kunden die erforderliche XML-Datei und Registry-Keys zu hinterlegen, dass der Kunde beim Zugriff auf seine Domain den Servernamen in den Zertifikaten des Hosters vertraut. So verteilt z.B. Microsoft über den Office 365 Client Assistent, den Sie auf jedem PC einmal aufrufen
Hoster Andere Clients Manuell Manuelle Konfiguration ohne Autodiscover
Anleitung auf dem "Mobile Phone Setup wizard"
http://go.microsoft.com/fwlink/?linkid=235512
http://help.outlook.com/en-us/140/dd936215.aspx
Firma Standalone Clients HTTP redirect
XML verteilen
Wenn Sie als Firma den Zugriff von "nicht domain joined" Systemen zulassen wollen, dann müssen die Anwender entweder per HTTP-Redirect einmal die Warnung bestätigen oder Sie verteilen ein Tool wie bei Office365,welches lokal ein paar Einstellungen vornimmt. Der Einsatz von GPOs scheidet leider aus.
Generell sollten Sie aber genau prüfen, ob sie fremden Client einen Zugriff per Outlook erlauben wollen. Sie haben keine Kontrolle über Virenschutz, Kennwortrichtlinien , Verschlüsselung und eine lokale ungeschützte OST-Datei ist ein gefundenes Fressen für Datenspione. Es soll schon Fälle gegeben haben, bei denen in der Wohnung von Führungskräften nur der private Notebook geklaut wurde.
OWA ist hier vielleicht die bessere, weil sicherere, Lösung.
Firma Domain Clients GPO Konfiguration mit XML-Datei Wenn die Client hingegen Mitglied der Domäne sind, dann ist es für den Administrator relativ einfach, die erforderlichen Einstellungen per Gruppenrichtlinie zu verteilen, um eine Anmeldung der Client mit einem einfachen Zertifikat zu erreichen. Man addiert einfach die Domänen mit den passenden ServerURLs, die sich dann natürlich selten ändern sollten, auf dem Client.
Firma Domain Clients Direct Access / VPN Wenn Sie den Zugriff mit Outlook zum Abgleich über DirectAccess oder andere VPNs erlauben, dann können Sie diese als intern ansehen und nutzen die Abfrage des Sevice Connection Point per LDAP oder sie können das Zertifikat den SDP, dann

Weitere Links

Tags:Exchange2K7 Exchange 2007