Auf dem Technical Summit 2016 hat Siggi Jagott verraten, dass es die REST Api auch für lokale (on-premises) Exchange Server geben wird:
Markus hat den Artikel gelesen und mich auf einen Kommentar auf dem Exchange Team Blog aufmerksam gemacht:
On-Premises Architectural Requirements for the REST API
Der Artikel auf dem Exchange Team Blog geht unter anderem darauf ein, dass für die REST Api Exchange 2016 CU3 im Hybrid Modus erforderlich ist. Im Klartext: Keine REST Api ohne Cloud. Dies wird auch auf Nachfrage von Markus in den Kommentaren bestätigt.
Interessanter Zufall: Ich wollte gerade meine Testumgebung auf Exchange 2016 CU4 aktualisieren und bin über das folgende virtuelle Verzeichnis im IIS gestolpert:
Wenn man nun mal unter folgenden Link vorbeischaut, sieht man schnell eine “gewisse Ähnlichkeit”
Get Started with Mail, Calendar, and Contacts REST APIs
Sieht so aus, als wäre die REST Api schon da? Ich habe mir gedacht, ich probiere es einfach mal aus.
Für den Test habe ich ein kleines PowerShell Script benutzt:
$creds = get-credential $url = "https://outlook.frankysweb.com/api/v2.0/me/messages" $request = invoke-webrequest $url -Credential $creds $answer = $request.content | ConvertFrom-Json
Ich habe zuerst die Anmeldeinformationen des Administrators angegeben:
Das Script läuft schon mal fehlerfrei durch:
Und die Antwort sieht vielversprechend aus:
Die Api liefert sogar eine ganze Menge Daten:
So lässt es sich wunderbar durch die Daten browsen:
Zum Vergleich, so sieht das Postfach in OWA aus:
In der Ausgabe der Daten via REST Api sieht man allerdings mehrere Mails, während im OWA Posteingang nur eine Mail zu sehen ist. Mein kleines Script hat sich einfach alle Mails geholt, da ich nicht weiter gefiltert habe, daher auch die Gesendeten:
Ich habe es mit Exchange 2016 CU3 in der Testumgebung ausprobiert, der noch nie den Hybrid Configuration Wizard, geschweige denn den Hybrid Modus gesehen hat. Die Testumgebung hat nicht mal eine Internetverbindung.
Man könnte also durchaus sagen: Mehr on-premises geht nicht! Trotzdem scheint die REST Api zu funktionieren. Hat man vieleicht keine Pläne die REST Api für lokale Exchange Server zu veröffentlichen, weil sie schon längst da ist?
Mit Exchange 2016 CU4 funktioniert es übrigens auch, andere Versionen konnte ich auf die Schnelle nicht auftreiben.
Ich werde mal etwas weiter spielen und dann einen ausführlicheren Artikel zu dem Thema schreiben.
Kleines Update: Die direkte Nutzung der API ist nicht supportet. Microsoft nutzt diesen Zugang, wenn man im Hybrid-Mode gegen graph.microsoft.com geht und OnPremise informationen abruft. Eigentlich sollte „Basic Auth“ nicht gehen sondern nur OAUTH-Tokens und die kann man in einer reinen OnPrem Umgebung nicht generieren.
Also besser nicht darauf eigenen Code aufsetzen.
OnPrem -> Bleibt bei EWS
Cloud/Hybrud -> Graph
Supercool! Vielen Dank dafür!
Genial!!!
Danke für den Tipp.
Hi Frank,
vielen Dank für diesen Artikel.
Wird sofort ausprobiert :-)
Viele Grüße,
Markus