ActiveSync mit Zertifikaten provisionieren

Mit Exchange 2007/2010 ist die Konfiguration der XML-Datei nicht mehr erforderlich, da die entsprechenden Einstellungen per PowerShell erfolgt. Siehe E2K7 ActiveSync mit Zertifikat.

Die PDAs fordern über eine im Active Directory bekannt gegebene URL ein Zertifikat für den Benutzer an. Dies bedeutet, dass Sie zwingend eine Active Directory integrierte Zertifizierungsstelle installiert haben und betriebsbereit vorhalten. Zudem müssen die Anwender das "Recht" haben, ein Zertifikat automatisch anzufordern, welches von der CA auch umgehend ausgestellt werden muss. Ist dies nicht möglich, dann verlassen Sie den normalen Pfad und die Einrichtung und Nutzung von Zertifikaten für ActiveSync ist sehr viel steiniger, wenn nicht sogar unmöglich.

Sie müssen eine XML-Datei mit den erforderlichen Daten erstellen und im Active Directory veröffentlichen. Hier ein Beispiel für eine einzelne Domain, in der SRV01 auch der Zertifikatsserver ist:

<wap-provisioningdoc>
    <characteristic type="Registry">
        <characteristic type="HKCU\Software\Microsoft\CertEnroll\ServerDef">
           <parm name="PrimaryServer" value="http://srv01" datatype="string" />
       </characteristic>
        <characteristic type="HKCU\Software\Microsoft\CertEnroll">
            <parm name="Template" value="user" datatype="string" />
            <parm name="CertPickupPage" value="/certsrv/certnew.cer" datatype="string" />
            <parm name="CertReqPage" value="/certsrv/certfnsh.asp" datatype="string" />
        </characteristic>
    </characteristic>
</wap-provisioningdoc>

Es ist laut Dokumentation in Ordnung, dass dies keine 100% korrekte XML-Datei ist und das Tag „“ nicht mehr geschlossen wird. Etwas ambitioniertere Administratoren können das Stammzertifikat der ausstellenden CA ebenfalls dort mit hinterlegen, damit auf dem PDA dann auch dieses Zertifikat schon "trusted" vorliegt. (Siehe auch Appendix D: Adding a Certificate to the Root Store of a Windows Mobile-based Device  http://www.microsoft.com/technet/solutionaccelerators/mobile/deploy/msfp_d.mspx)

    <characteristic type="CertificateStore">
       <characteristic type="ROOT">
          <characteristic type="thumbprint des Zertifikats ohne Leerzeichen"> 
             <parm name="EncodedCertificate" value="BASE64 encodiertes Zertifikat"/>
          </characteristic>
       </characteristic>
    </characteristic>

Das EncodedCertificate ist der Text zwischen "BEGIN CERTIFICATE" und "END CERTIFICATE" des exportierten Stsammzertifikats ohne Zeilenumbrüche.

Mit dem Skript "EASAuthUploadXMLtoAD.vbs" (Bestandteil des CertAuthTool-Pakets auf http://www.microsoft.com/downloads/details.aspx?FamilyID=82510E18-7965-4883-A8C3-F73F1F4733AC&displaylang=en) können Sie die XML-Datei dann "hochladen".

Achtung: Das Skript erwartet eine Gruppe ""Authenticated users". Wenn Sie ein deutsches Active Directory haben, müssen Sie das Skript in Zeile 42: 'Const strDomainUsers = "Authentifizierte Benutzer"' anpassen. Siehe auch
927471 Fehlermeldung beim Ausführen des Exchange ActiveSync zertifikatbasierten Authentifizierungs-Tools in Windows Server 2003: "die Sicherheit Sicherheit ID ist ungültig."

cscript EASAuthUploadXMLtoAD.VBS XMLFile"

Als Administrator können Sie einfach mit ADSIEDIT diese Einstellungen kontrollieren.

Es ist mir schon mehrfach passiert, dass das Script diese Daten NICHT hochgeladen hat, weil es einen "APPEND" versucht hat, obwohl das Feld nicht vorhanden war.

Ob dies aber wirklich "erfolgreich" war, können und sollten sie als "normaler Anwender" mit dem Programm LDP überprüfen. Aufgrund der restriktiven Berechtigungen (ACLs) ist es für normale Benutzer nicht möglich, per ADSIEDIT an diese Stelle zu navigieren. Das "Cert Enrollment Tool" setzt die Berechtigungen korrekt auf "cn=Outlook Mobile Access" aber eben nicht auf die darüber liegenden Container.

Starten Sie daher als Benutzer das Programm "LDP", verbinden Sie sich mit dem Domain Controller und melden Sie sich mit ihrem Benutzernamen an, mit dem Sie später auch ActiveSync nutzen. Starten Sie dann eine Suche mit den folgenden Parametern:

BaseDN: CN=Outlook Mobile Access,CN=Global Settings,CN=Orgname,
CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=msxfaq,DC=de
Filter: (objectclass=msExchOmaConfigurationContainer)
Attribute: ldapdisplayname;objectClass;URL

LDP sollte dann genau einen Eintrag finden, der ihnen die XML-Datei mit ausgibt: (Hier verkürzt)

Sie sehen, dass die XML-Datei die Einstellungen für den Zertifikatsserver (srv01.msxfaq.de) enthält und das Stammzertifikat dieser eigenen CA. Wenn Sie mit den Berechtigungen eines Anwenders diese Informationen nicht LDP erfragen können, dann kann auch ActiveSync diese Daten nicht auslesen. Kontrollieren Sie noch einmal die Berechtigungen auf dem Eintrag.

Wenn Sie die XML-Datei auslesen können, dann ist natürlich ein weiterer Prüfpunkt der Zugriff auf die Zertifizierungsstelle. Greifen Sie einfach mit einem Browser auf die URL (hier http://srv01.msxfaq.de/certsrv/certrqma.asp) zu und kontrollieren Sie die Seite bezüglich der nutzbaren Vorlagen (Template).

Weitere Links