Ich habe eine Frage zur Implementierung des ActiveSync Protokolls in iOS (iPhone).
Meine Konfiguration:
- Exchange Server Standard 2016 CU 19
- eigenes virtuelles Verzeichnis im IIS für ActiveSync mit eigenem Port und ein offzielles Server-Zertifikat
- Authentifizierung über User-Zertifikate (Self-Cert über eigene Windows Zertifizierungsstelle)
Die Synchronisierung läuft ohne Probleme. Trotzdem sind folgende, fehlerhaften Anfragen im IIS / ActiveSync Protokoll zu finden
2021-02-24 01:01:01 192.168.100.10 POST /Microsoft-Server-ActiveSync/default.eas User=user&DeviceId=xxxxxxxx&DeviceType=iPhone&Cmd=Sync 2052 - xx.xx.xx.xx Apple-iPhone8C2/1804.52 - 403 7 64 0
Die erste Anfrage wird mit HTTP Status 403 abgelehnt. Daraufhin sendet iOS eine zweite Anfrage mit zusätzlichen Paramentern, welche erfolgreich ist:
2021-02-24 01:01:02 192.168.100.10 POST /Microsoft-Server-ActiveSync/default.eas User=user&DeviceId=xxxxxxxx&DeviceType=iPhone&Cmd=Sync&CorrelationID=<empty>;&cafeReqId=xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx; 2052 domain\user xx.xx.xx.xx Apple-iPhone8C2/1804.52 - 200 0 0 1261
Ich vermute einen Fehler in der Implementierung des ActiveSync Protokolls, da zuerst eine Anfrage ohne die Paremter "CorrelationID" und "cafeReqId" erfolgt. Oder liegt hier ein Konfig-Fehler vor? Danke für die Hilfe.
Ich habe die Ursache für die fehlerhaften Einträge gefunden. Ab Exchange 2016 wird mit dem IIS 10 als Protokoll HTTP/2 (vorher HTTP/1.1) verwendet. Auch Apple verwendet für ActiveSync dieses Protokoll. Leider hat IIS einige Einschränkungen bzgl. der Verwendung von HTTP/2. In unserer Konfiguration wird die Verwendung von User Zertifikaten von IIS / HTTP/2 nicht unterstützt. iOS stellt eine Anfrage über HTTP/2 - IIS antwortet mit Fehler 403.7 "Forbidden: Clientzertifikat erforderlich". Daraufhin sendet iOS die Anfrage erneut mit HTTP/1.1 und diese wird erfolgreich beantwortet. Somit funktioniert EAS ohne Fehler, lediglich in den Logdateien sieht man die fehlerhaften Anfragen.