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.

Es müssen Konfigurationen am Exchange Server und im sklera CMS vorgenommen werden.


Konfiguration Exchange Server


1. Raumliste anlegen

Damit Raumpostfächer von sklera ausgelesen werden können müssen diese einer Raumliste hinzugefügt werden. 

Sofern in Ihrer Organisation noch keine Raumlisten existieren, können diese mittels folgendem Powershell Befehl erstellt werden und die gewünschten Raumpostfächer zur Raumliste hinzugefügt werden.


Beispiel:

##Exchange Cmds## # Raumliste == Vienna, Raumpostfach == galileo 
1. Raumliste anlegen New-DistributionGroup Vienna -Type distribution -RoomList 
2. Raumpostfach zur Raumliste hinzufügen Add-DistributionGroupMember -Identity Vienna -Member galileo
Generic


2. Zugriff auf Kalender der Postfächer gewähren

Variante A: Add-MailboxFolderPermission

Beispiel für Raumpostfach "Galileo" und Benutzer Service Account "sklera": 

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


Variante B: EWS Impersonation

Der verwendete Service Account benötigt in Exchange die Impersonation Rolle. Mittels ManagementScope kann der Zugriff auf ausgewählte Postfächer beschränkt werden.

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

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



Konfiguration sklera CMS


1. Kalender verknüpfen

Die Verknüpfung mit einem Exchange Kalender muss im sklera CMS unter "Module > Room Manager > Verknpüfungen & Settings > Exchange / Office365" eingerichtet werden. Klicken Sie dazu auf den Button "Kalender verknüpfen".


2. Zugangsdaten für das Exchange Konto angeben.

EWS URL

Adresse des Exchange EWS Endpoints (z.B. https://SERVER/EWS/Exchange.asmx)

Server Version

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

SSL Validation

SSL aktivieren / deaktivieren

Auth Type

Anmeldetyp auswählen. Unterstützt wird basic oder ntlm
EWS ImpersonationImpersonation aktivieren / deaktivieren (Konfiguration am Exchange Server notwendig)
BenutzernameLoginname eines berechtigten Benutzers eingeben (E-Mail-Adresse)

Passwort

Passwort des berechtigten Benutzers


3. Kalender hinzufügen / bearbeiten

Nach erfolgreicher Verbindung stehen die berechtigten Kalender des Benutzeraccounts im Menüpunkt "Räume" zur Auswahl, wenn ein neuer Raum hinzugefügt oder ein bestehender bearbeitet wird.




Office 365 / Exchange Online Integration mit RBAC Zugriffkontrolle

Es müssen Konfigurationen in Microsoft Entra ID, Exchange Online und im sklera CMS vorgenommen werden.


Konfiguration Microsoft Entra ID


1. App registrieren

Für sklera on-premise oder private Cloud Kunden ist es notwendig eine eigene Unternehmens App in Microsoft Entra ID (ehem. Azure AD) https://entra.microsoft.com/ zu registrieren. Klicken Sie dazu im Menüpunkt "Applications > App registrations" auf den Button "New Registration".


2. App Informationen notieren 

Diese werden später im sklera Room Manager zum Herstellen der Exchange Verknüpfung benötigt. Folgende IDs müssen notiert werden:


Application (client) ID bzw. Anwendungs-ID (Client)
- Directory (tenant) ID bzw. Verzeichnis-ID (Mandant)



3. Client Secret erstellen

Im Menüpunkt "Certificates & Secrets" muss ein Client Secret angelegt werden. Klicken Sie dazu auf den Button "New Client Secret"


4. Wert des Client Secrets notieren

Der Value des "Client Secrets" wird später im sklera Room Manager zum Herstellen der Exchange Verknüpfung benötigt.


5. Security Group erstellen

Neue Security Group erstellen und alle Raumpostfächer als Mitglieder hinzufügen, auf die das sklera CMS Zugriff haben soll.


6. Object ID notieren 

Die Object ID der soeben erstellen Security Group wird später zum Erstellen des Management Role Assignments benötigt.



Konfiguration Exchange Online (Powershell)


1. Microsoft Powershell öffnen und mit Exchange Online verbinden

Connect-ExchangeOnline


2. Service Principal für die zuvor angelegte App erstellen

New-ServicePrincipal -AppId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -ObjectId bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb -DisplayName "skleraExchangeConnector"


Info: Für AppId und ObjectId müssen die Daten aus dem Menüpunkt “Enterprise Application” verwendet werden (nicht aus Menüpunkt “App registrations”).


3. Management Role Assignment erstellen

New-ManagementRoleAssignment -App bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb -Role "Application EWS.AccessAsApp" -RecipientGroupScope cccccccc-cccc-cccc-cccc-cccccccccccc -Name SKLERA_EWS_ACCESS

Info: 

-App = Object ID aus dem Punkt "Enterprise applications"

-RecipientGroupScope = Object ID der zuvor erstellten Security Group


4. Raumliste anlegen

Damit Raumpostfächer von sklera ausgelesen werden können müssen diese einer Raumliste hinzugefügt werden. 


Sofern in Ihrer Organisation noch keine Raumlisten existieren, können diese mittels folgendem Powershell Befehl erstellt werden und die gewünschten Raumpostfächer zur Raumliste hinzugefügt werden.


Beispiel:

##Exchange Cmds##
# Raumliste == Vienna, Raumpostfach == galileo

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

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



Konfiguration sklera CMS


1. Kalender verknpüfen

Die Verknüpfung mit einem Exchange Kalender muss im sklera CMS unter "Module > Room Manager > Verknpüfungen & Settings > Exchange / Office365" eingerichtet werden. Klicken Sie dazu auf den Button "Kalender verknüpfen".


2. Verbindungsdaten eingeben

EWS URLExchange Online URL (nicht verändern)
Server Version

Exchange2016 auswählen

SSL ValidationSSL Validation muss aktiviert sein
EWS ImpersonationEWS Impersonation muss aktiviert sein
Gültige SMTP AdresseEs muss eine gültige E-Mail Adresse eingetragen sein (für die Abfrage der Raumlisten notwendig).
Auth TypeOffice365 OAuth 2.0 (Application Permission) auswählen
Azure Verzeichnis IDZuvor notierten Wert eintragen
Azure App IDZuvor notierten Wert eintragen
Azure App SecretZuvor notierten Wert eintragen


3. Kalender hinzufügen / bearbeiten

Nach erfolgreicher Verbindung stehen die berechtigten Kalender des Benutzeraccounts im Menüpunkt "Räume" zur Auswahl, wenn ein neuer Raum hinzugefügt oder ein bestehender bearbeitet wird.





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. 




Aus Globaler Adressliste (GAL) ausgeblendete Raumpostfächer

Damit Raumpostfächer mit dem Room Manager verknüpft werden können, müssen diese in Exchange in der Globalen Adressliste vorhanden sein.

Bei Bedarf können Raumpostfächer nach ihrer Verknüpfung mit dem Room Manager in der Globalen Adressliste ausgeblendet werden.