Exchange Integration in sklera

INHALTSVERZEICHNIS


Eigener Exchange Server (on premises)


Um Kalendereinträge von Exchange in sklera anzeigen zu können wird die EWS Schnittstelle verwendet.


Die Angabe des EWS Endpoints – normalerweise https://SERVER/EWS/Exchange.asmx – der Loginname und ein Passwort eines berechtigten Benutzers muss im sklera Room Manager Modul hinterlegt werden.


Anschließend können die Kalender des Benutzers in sklera bei der Raumzuordnung ausgewählt werden:



Geben Sie nun die Zugangsdaten für das Exchange Konto an:



1 … Adresse des Exchange EWS Endpoints

2 … Exchange Versionsnummer auswählen (im Zweifel nicht verändern)

3 … Anmeldetyp auswählen. Unterstützt wird basic oder ntlm

4 … Loginname auswählen (E-Mail-Adresse)

5 … Passwort


Bei erfolgreicher Verbindung stehen nun die berechtigten Kalender des Benutzeraccounts zur Auswahl wenn ein neuer Raum angelegt oder ein bestehender bearbeitet wird:



Office 365 / Exchange online Integration

Für Office365 als Serveradresse https://outlook.office365.com/EWS/Exchange.asmx und als Authentication Type Office 365 OAuth 2.0 (User Permission) auswählen. 


Modern Authentication:

AchtungAb Oktober 2020 stellt Microsoft die basic Authentifizierung ein und es ist erforderlich eine moderne Authentifizierung basierend auf OAuth 2.0 zu verwenden. Ab sklera Version 3.7.2 steht hierzu die notwendige Unterstützung zur Verfügung.


Für sklera on-premise oder private Cloud Kunden ist es hierzu notwendig eine eigene Unternehmens App in Microsoft Entra ID (ehem. Azure AD) zu registrieren.  Klicken Sie dazu im Menüpunkt App-Registrierungen auf den Button "Neue Registrierung".


Als Reply URL ist https://SKLERA_SERVER/exchange/oauth/ anzugeben (SKLERA_SERVER ist hierbei durch die eigene sklera Server URL zu ersetzen). 



Folgende API Berechtigungen werden von der App benötigt:

- MS Graph > Delegated > EWS.AccessAsUser.All
- MS Graph > Delegated > offline_access
- MS Graph > Delegated > user.read


Klicken Sie dazu im Menüpunkt API-Berechtigungen auf den Button "Berechtigung hinzufügen" und wählen Sie anschließend die entsprechenden Microsoft Graph Berechtigungen aus.





Die angeforderten Berechtigungen müssen durch einen Admin durch Klick auf den Button "Administratorzustimmung für Unternehmen erteilen" bestätigt werden.


Anschließend sind die Server Daten in sklera zu hinterlegen, benötigt hierzu werden:

- Application ID - Anwendungs-ID (Client)
- Tenant ID - Verzeichnis-ID (Mandant)
- Application Secret - Geheimer Clientschlüssel



Das Application Secret muss im Menüpunkt Zertifikate & Geheimnisse angelegt werden. Klicken Sie dazu auf den Button "Neuer geheimer Clientschlüssel".


EWS Impersonation muss aktiviert werden und der Auth Type ist auf Office365 OAuth 2.0 (User Permission) zu setzen. Im Feld "Gültige SMTP Adresse" kann bspw die Mailadresse des verwendeten Service Accounts eingetragen werden.

 


Als nächstes muss die App mit dem korrekten Benutzer freigeschalten werden. Hierzu bitte den zunächst auf https://login.microsoftonline.com gehen und sicherstellen, dass man abgemeldet ist. Anschließend den Button "Schritt 2" anklicken.


Es wird nun die Anmeldemaske in einem neuen Browserfenster angezeigt. Nun bitte mit einem entsprechenden Service Account anmelden um die Verknüpfung mit sklera fertigzustellen.


Tipp: Drücken Sie die rechte Maustaste auf den Button Schritt 2 um die hinterlegte Link zu kopieren. Öffnen Sie den kopierten Link nun in einer Privaten Browsersession um sicherzustellen, dass keine automatische Anmeldung als aktueller Windows Benutzer erfolgt.


Zugriffssteuerung mittels EWS Impersonation:

Der verwendete Service Account benötigt die Impersonation Rolle und mittels einem eigenen ManagementScope kann der Zugriff auf ausgewählte Postfächer gesteuert werden.


Nähere Infos zur Einrichtung der entsprechenden Objekte in Exchange finden sich hier:

https://www.msxfaq.de/code/ews_impersonation.htm


Ressourcenpostfächer für Räume:

Um Raumpostfächer auslesen zu können müssen diese in einer Raumliste angelegt werden. Dies gilt sowohl für Exchange online (Office 365) als auch on premise.


Sofern in Ihrer Organisation noch keine Raumlisten existieren können diese mittels folgenden Powershell Befehl erzeugt werden:


New-DistributionGroup StandortName -Type distribution -RoomList


Anschließend müssen die gewünschten Räume in die Raumliste hinzugefügt werden (in GUI möglich). 


Der Account der in sklera eingerichtet wurde muss selbstverständlich entsprechende Zugriffsberechtigung auf das gewünschte Ressourcenpostfach und den enthaltenden Kalender besitzen.


Verwenden Sie den Powershell Befehl "Add-MailboxFolderPermission" um diese zu setzen - Bsp für Raumpostfach "Galileo" und Benutzer "sklera":

Add-MailboxFolderPermission -identity “galileo:\Calendar” -user “sklera” -AccessRights Editor

Bei aktiviertem Rückkanal werden Änderungen in sklera an den Terminen auch in Exchange übertragen - dies wird für die Ad-Hoc Raumbuchungsfunktion benötigt, also um Raumbuchungen direkt am Display vornehmen zu können. Ist diese Funktion nicht gewünscht benötigt der Service Account nur lesenden Zugriff auf die Kalenderdaten.


Powershell Beispiel:

##Exchange Cmds##
# Raumliste == Vienna, EWS Login == sklera@sklera.local, Raumpostfach == galileo

1. Raumliste anlegen
New-DistributionGroup Vienna -Type distribution -RoomList

2. Raumpostfach in Raumliste hinzufügen
Add-DistributionGroupMember -Identity Vienna -Member galileo

3. Kalenderberechtigungen setzen:
Add-MailboxFolderPermission -identity “galileo:\Calendar” -user “sklera@sklera.local” -AccessRights Editor


Darstellung im Room Manager (Raum hinzufügen):



Weiterführende externe Links:



Hinweise

Ressourcenpostfächer mit aktivierter AutoAccept Funktion

Falls bei Ressourcenpostfächern in Ihrer Exchange Umgebung die automatische Annahme von Besprechungsanfragen aktiviert ist, wird im Kalender der Betreff des Termins durch den Namen des Organisators ersetzt.

Dies ist ein Standardverhalten von Exchange und tritt auf, weil AddOrganizerToSubject und DeleteSubject auf "True" gesetzt sind.


Siehe: https://docs.microsoft.com/de-de/exchange/troubleshoot/client-connectivity/calendar-shows-organizer-name


Lösung:
Öffnen Sie die Exchange Management Shell und führen Sie folgenden Befehl aus:


Set-CalendarProcessing -Identity <RESOURCEMAILBOX> -DeleteSubject $False -AddOrganizerToSubject $False


Info: Diese Einstellung wirkt sich nur auf neue und nicht auf bestehende Termine aus.