DoIT! Exchange Sync S eite 1 von 10
Was ist DoIT! Exchange Sync? Ein kostenpflichtiges AddOn-Modul für DoIT! um Daten mit den Postfächern des Microsoft Exchange Server von aktiven DoIT!-Benutzern zu synchronisieren. Die Nutzungsgebühr für diese Schnittstelle fällt monatlich pro DoIT!-Installation an, d.h. unabhängig von der DoIT!-Benutzeranzahl. Die Schnittstelle ist in PHP entwickelt (kein EXE-Programm), wird auf dem DoIT!-Server installiert und nutzt die Exchange-Web-Services-Schnittstelle (EWS) des Microsoft Exchange Servers. Somit erfolgt die Anbindung nativ ohne MiddleWare. Was wird Synchronisiert? Termindaten aus Tickets mit Fixtermin werden aus DoIT in den Haupt-Kalender des Termininhabers übertragen. Dabei wird stets auf das Postfach zugegriffen, das zu der in DoIT! registrierten E-Mail- Adresse des Benutzers übereinstimmt. Eine Abweichung ist nicht möglich. Alle Termine des Outlook-Kalenders werden aus Exchange nach DoIT! übertragen dabei wird der Terminbetreff nicht in DoIT angezeigt - sondern lediglich Outlooktermin (Datenschutz). In der nächsten Version wird jeder Benutzer in seinem Profil eine Freigabe zur Anzeige des Betreffs für alle anderen Benutzer erteilen können. Im Gegensatz zu Ticket-Terminen können Outlooktermine in DoIT! nicht verschoben werden. Dahingegen können Ticket-Termine im Outlook-Kalender verschoben werden und diese Information wird über die Schnittstelle zurück ins Ticket synchronisiert. Somit erfolgt die Synchronisierung von Ticket-Terminen bidirektional. Der Betreff, Ort, Beschreibung und sonstige Attribute eines Termins haben aus DoIT! stets Vorrang und werden in Outlook überschrieben, falls sie dort zwischenzeitlich verändert wurden. Ticket-Termin: Datum, Startzeit, Endzeit, Betreff, Ort, Beschreibung Ticket-Termin: Datum, Startzeit, Endzeit Outlook-Termin: Datum, Startzeit, Endzeit, Betreff (ist immer Outlooktermin s.o.) S eite 2 von 10
Welche Versionen von Microsoft Exchange werden unterstützt? Version Freigabe Exchange 2003 X Exchange 2007 (ab SP1) Exchange 2010 Exchange 2013 Exchange 2016? Exchange Online 2013 / Office365 bei Microsoft gehostet Exchange Online 2016 / Office365 bei Microsoft gehostet Exchange Online / Office365 bei Dritten gehostet? Getestet: QualityHosting.de Sonstige (Google GMail, Tobit David, Kerio, ) X wird unterstützt? noch nicht getestet (sollte technisch funktionieren) X nicht unterstützt Wie kann ich meine Exchange-Version / ServicePack ermitteln? Eine aktuelle Aufstellung aller Exchange-Versionsnummern inkl. ServicePacks und Rollup-/ Cumulative-Updates erhalten Sie hier: http://blog-schulenburg.de/index.php/kategorie-als-blog/87-exchange-build-nummern oder https://oddytee.wordpress.com/?s=product+version+numbers Welche Systemvoraussetzungen gibt es? - Eine DoIT!-Exchange-Sync-Lizenz (monatliche Lizenzkosten) und die DoIT!-Kalender-Lizenz (einmalige Lizenzkosten) müssen erworben werden; unabhängig von der Benutzeranzahl - Einen Benutzer für die Schnittstelle, welcher im Exchange Vollzugriff auf die Kalender aller Postfächer besitzt - Veröffentlichung des virtuellen doit_ews -Ordners im IIS Webserver für den Exchange Server, damit die PushNotificationen empfangen werden können (Office365: der Ordner muss in diesem Fall über das Internet erreichbar sein) - Zugriff auf die EWS-Schnittstelle / die EWS-URL muss bekannt sein Wird in einem festen Intervall synchronisiert? Nein. Die Schnittstelle nutzt die PushNotification, d.h. Daten werden beim Exchange Server nur abgefragt, wenn neue Daten / Änderungen vorliegen. Dies spart Ressourcen und arbeitet zeitnaher als wie in einem festen Intervall. Wird immer der gesamte Datenbestand synchronisiert? Nein. Die Schnittstelle speichert eine sog. SyncStateID, wodurch nur neue Daten (erstellte, geänderte und gelöschte Termine) vom Exchange Server übertragen werden. S eite 3 von 10
Was wird nicht unterstützt? Serientermine (*) Serientermine aus Outlook können in DoIT! nicht angezeigt werden. Termineinladungen (*) Termineinladungen können für in DoIT! erstellte Tickettermine nicht versendet werden. Mehrere Terminteilnehmer (*) Ein Ticket kann nur einen Termininhaber besitzen. Offline-Caching (*) Sollte der Exchange Server nicht erreichbar sein, können Termine in DoIT! gespeichert werden, jedoch nicht im Exchange. Die Termine werden nicht automatisch nachgetragen, sobald der Exchange Server wieder erreichbar ist! Vorrang-Prüfung (*) Spielt noch keine Rolle, da Offline-Caching noch nicht umgesetzt ist. (Welches System hat bei einem Synchronisierungskonflikt Vorrang? Hinweis: Zeitstempel prüfen) Unterkalender Nur der Hauptkalender wird synchronisiert. Haben Sie weitere Kalender im Outlook eingerichtet, können diese leider nicht synchronisiert werden. (*) = Funktion soll durch Update folgen Wie ermittle ich die URL des EWS-Dienstes? Klicken Sie bei gedrückter Strg -Taste mit der rechten Maustaste auf das Outlook-Symbol im Systray und wählen E-Mail-AutoKonfiguration testen aus. Geben Sie Ihre Zugangsdaten ein und starten Sie den Test. Halten Sie Ausschau nach einer Adresse im Format https://servername/ews/exchange.asmx Hinweis: Bei Office365 lautet die URL i.d.r. https://outlook.office365.com/ews/exchange.asmx S eite 4 von 10
Zugriffsrechte im Exchange Server erteilen Allgemein Erstellen Sie ein Postfach für den Benutzer ServiceDoIT im Exchange und fügen Sie dann den Benutzer ServiceDoIT mit Besitzer-Berechtigungen auf die Kalender der anderen Postfächer ein. Bitte beachten: Bei neuen Mitarbeitern/Benutzern müssen die Berechtigungen nachgepflegt werden. Hinweis: Warum Owner -Berechtigung? DoIT! muss alle Objekte lesen können (auch Ticket-fremde Termine / damit die frei- /gebucht-informationen im DoIT!-Kalender angezeigt werden können) DoIT! muss Termine erstellen, aktualisieren und löschen können (Ticket-Termine) Tipp: Mit diesem Befehl können Sie über die Exchange Management Shell Ihre Versionsnummer des Exchange-Servers ermitteln: Get-Command ExSetup.exe % {$_.FileVersionInfo} Exchange 2007 Unsere Schnittstelle wurde mit der Version 08.01.0240.006 (SP1) getestet. Leider gibt es von Haus aus keinen PowerShell-Befehl, womit Sie die Berechtigungen nur für den Kalender ändern können. Methode 1) Die Mitarbeiter fügen den Benutzer ServiceDoIT über Outlook in den Berechtigungseigenschaften als Besitzer ( Owner ) hinzu. Methode 2) Sie geben dem Benutzer ServiceDoIT Vollzugriff auf das gesamte Postfach über die PowerShell (oder ab SP1 über die Exchange-Verwaltungskonsole): Get-mailbox Add-MailboxPermission user ServiceDoIT accessright Fullaccess Methode 3) Nutzen Sie das PFDAVAdmin-Tool von Microsoft: https://www.microsoft.com/en-us/download/details.aspx?id=22427 Methode 4) Script Set-CalendarFolderPermission : http://blogs.msdn.com/b/emeamsgdev/archive/2012/12/03/powershell-set-calendar-folderdelegate-permissions-in-exchange-2007.aspx Exchange 2010 Unsere Schnittstelle wurde mit den Versionen 14.00.0639.021 (RTM) und 14.03.0294.000 (SP3 UR13) getestet. Bitte folgen Sie den Anweisungen unter dem Abschnitt für Exchange 2013. S eite 5 von 10
Exchange 2013 Über die Exchange Management Shell (EMS) können Sie die Berechtigungen mit wenig Aufwand einrichten: 1 Befehl / alles in einer Zeile einfügen: Get-Mailbox Select -ExpandProperty Alias foreach-object {'Add-MailboxFolderPermission "'+$_+':\Calendar" -user ServiceDoIT -accessrights Owner'} >C:\doit_exchange_user.txt Der Befehl erzeugt nichts weiter, als eine Datei (C:\doit_exchange_user.txt) welche pro Postfach den eigentlichen Add-MailboxFolderPermission -Befehl für den Kalender enthält. Die Befehle aus der Datei C:\doit_exchange_user.txt müssen nun kopiert und in die EMS eingefügt werden. Vorab können Einträge für z.b. DiscoveryPostfach etc. entfernt werden. Bitte beachten: Die EMS nimmt die Befehle mit "Calendar" alle ohne Fehlermeldung an, in DoIT! funktioniert der Zugriff aber trotzdem nicht (ErrorAccessDenied)? Dann müssen die Befehle noch mal mit "Kalender" statt Calendar ausgeführt werden, da sich die Ordnerbezeichnungen im Informationspostfachspeicher bei Ihnen geändert haben. Calendar vs. Kalender EMS unter Exchange 2007 kennt u.u. den Ordnernamen nicht Tipp: PowerShell mit Exchange Server in der Cloud / Office365 verbinden http://powershell.office.com/get-started http://powershell.office.com/scenarios/how-to-connect-to-o365 In der Windows PowerShell: Set-ExecutionPolicy Unrestricted $credential = get-credential Import-Module MSOnline Connect-MsolService -Credential $credential $ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication "Basic" -AllowRedirection Import-PSSession $ExchangeSession S eite 6 von 10
Exchange 2016 Exchange 2016 wurde noch nicht verifiziert, sollte jedoch wie unter Exchange 2013 funktionieren. S eite 7 von 10
IIS WebServer auf dem DoIT!-Server einrichten Damit DoIT! die PushNotificationen vom Exchange empfangen kann, muss der Ordner C:\inetpub\wwwroot\doit\public\exchange\ im IIS als virtueller Ordner doit_ews zur Site hinzugefügt werden und für den Exchange Server erreichbar sein (sog. DoIT! Listener URL ). Sie können z.b. über die IP-Zugriffssteuerung des IIS WebServers den Zugriff auf den Ordner beschränken. In dem Ordner sind keine Zugangsdaten zum Exchange Server oder zur MySQL Datenbank von DoIT! o.ä. gespeichert. DoIT! einrichten Lizenz Für die Nutzung der Schnittstelle muss eine Lizenz erworben und aktiviert werden. Außerdem ist die kostenpflichtige DoIT! Kalender -Erweiterung notwendig. Administration Im DoIT! unter Administration Einstellungen Schnittstellen Microsoft Exchange müssen die Zugangsdaten des Benutzers hinterlegt werden, welcher über die Zugriffsrechte auf die fremden Postfächer verfügt. Tipp: Wir empfehlen für die Nutzung von SMTP, POP3 und der Exchange Synchronisation die Einrichtung eines Benutzers (z.b. ServiceDoIT). Dateien anpassen C:\inetpub\wwwroot\doit\ews_config.php Öffnen Sie die Datei mit Notepad und passen Sie hier die DoIT! Listener URL an. Außerdem können Sie hier die Protokollierung einstellen. C:\inetpub\wwwroot\doit\mod_php-ews\wsdl\NotificationService.wsdl Öffnen Sie die Datei mit Notepad und passen Sie hier in Zeile 59 den Exchange-Server-Namen an: <soap:address location="https://exchange-server/ews/exchange.asmx" /> C:\windows\php.ini Extension curl und soap aktivieren; IIS-Webserver-Dienst neustarten S eite 8 von 10
Anhang EWS-Dienst prüfen Um die Funktion des EWS-Dienstes zu überprüfen, rufen Sie die URL in einem Browser auf (https://exchange-server/ews/exchange.asmx) und melden Sie sich mit Ihrer Windows-Anmeldung an. Anschließend sollte diese Seite ausgegeben werden: Ausgabe im Browser unter Exchange 2013 Ausschnitt der Ausgabe im Browser unter Exchange 2010 S eite 9 von 10
Fehlermeldungen und deren Behebung Fehler: Der SMTP-Adresse ist kein Postfach zugeordnet. ErrorNonExistentMailbox (Ex2007) Lösung: Das Postfach ist relativ frisch, starten Sie den Microsoft Exchange-Informationsspeicher neu. Fehler: Lösung: Der angegebene Ordner wurde im Informationsspeicher nicht gefunden. ErrorFolderNotFound (Ex2007) Der ServiceDoIT-Benutzer hat keine Berechtigung auf den Kalender. Oder: die Berechtigung wurde erteilt, greift jedoch noch nicht. Starten Sie den Microsoft Exchange-Informationsspeicher neu. Fehler: Abonnements werden für Stellvertretungszugriff nicht unterstützt. ErrorSubscriptionDelegateAccessNotSupported (Ex2007) Lösung: Installieren Sie min. SP1 für Microsoft Exchange 2007 Fehler: Lösung: Der CloudProvider bietet keinen Zugriff per PowerShell an Setzen Sie die Berechtigungen über das WebPortal Ihres Anbieters, wenn auch hier keine Möglichkeit angeboten wird, setzen Sie die Berechtigungen direkt über Outlook. S eite 10 von 10