INHALTSVERZEICHNIS


1. 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.


1.1 Exchange Server


1.1.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: 

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


1.1.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

https://sklera.freshdesk.com/de/support/solutions/articles/8000108332



1.2 sklera CMS


1.2.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".


1.2.2 Verbindungsdaten eingeben

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


1.2.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.




2. Office 365 / Exchange Online Integration mit RBAC Zugriffskontrolle

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


2.1 Microsoft Entra ID


2.1.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.1.2 App Informationen notieren

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


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



2.1.3 Client Secret erstellen

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


2.1.4 Wert des Client Secrets notieren

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



2.1.5 Enterprise App Informationen notieren

Klicken Sie auf den Menüpunkt "Applications > Enterprise applications" und wählen Sie ihre App aus (z.B. sklera Exchange Connector). 


Folgende IDs müssen notiert werden:

- Application ID
- Object ID

Die Informationen werden später in Exchange Online zum erstellen eines Service Principals benötigt.


2.1.6 Zugriff auf die Raumpostfächer beschränken - Teil 1/2

Variante A: Mittels Recipient Group Scope

Es wird eine Security Group erstellt und alle Raumpostfächer, auf die das sklera CMS Zugriff haben soll, werden als Mitglieder hinzugefügt.


Info: Das Postfach, welches später im sklera Room Manager beim Verknüpfen der Kalender angegeben wird (Feld: Gültige SMTP Adresse), muss ebenfalls Mitglied der Security Group sein (für die Abfrage der Raumlisten notwendig).

Notieren Sie die Object ID der Security Group. Die Object ID wird später in Exchange Online zum Erstellen des Management Role Assignments benötigt.


Variante B: Mittels Custom Resource Scope

Es wird ein Management Scope mit RecipientRestrictionFilter anstatt einer Security Group erstellt.

Die Vorgangsweise wird weiter unten im Abschnitt Exchange Online (PowerShell) beschrieben.



2.2 Exchange Online (PowerShell)


2.2.1 Microsoft PowerShell öffnen und mit Exchange Online verbinden

Connect-ExchangeOnline


2.2.2 Raumliste anlegen (falls noch nicht vorhanden)

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:

# 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


2.2.3 Service Principal für die zuvor angelegte App erstellen

New-ServicePrincipal -AppId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -ObjectId oooooooo-oooo-oooo-oooo-oooooooooooo -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”).


2.2.4 Zugriff auf die Raumpostfächer beschränken - Teil 2/2

Variante A: Mittels Recipient Group Scope

Die Zugriffsberechtigung wird durch die Mitglieder der zuvor angelegten Security Group bestimmt.

>> Management Role Assignment erstellen:

New-ManagementRoleAssignment -App oooooooo-oooo-oooo-oooo-oooooooooooo -Role "Application EWS.AccessAsApp" -RecipientGroupScope ssssssss-ssss-ssss-ssss-ssssssssssss -Name SKLERA_EWS_ACCESS

-App = Object ID aus dem Menüpunkt "Enterprise applications"

-RecipientGroupScope = Object ID der zuvor erstellten Security Group


Variante B: Mittels Custom Resource Scope

Die Zugriffsberechtigung wird durch einen Management Scope bestimmt.


In folgendem Beispiel wird eine Distribution Group angelegt, die alle Raumpostfächer enthält, auf die das sklera CMS Zugriff haben soll. Anschließend wird ein Management Scope erstellt, welcher mittels -RecipientRestrictionFilter "MemberOfGroup" auf den Distinguished Name der Distribution Group verweist.


Info: Das Postfach, welches später im sklera Room Manager beim Verknüpfen der Kalender angegeben wird (Feld: Gültige SMTP Adresse), muss ebenfalls Mitglied der Distribution Group sein (für die Abfrage der Raumlisten notwendig).


>> Distribution Group und Management Scope erstellen:

# Distribution Group z.B. “sklera-allowedRooms” erstellen.
New-Distributiongroup -name "sklera-allowedRooms" -Displayname "sklera-allowedRooms" -Type "Distribution"

# Gewünschte Räume (z.B. Tesla) in die Group aufnehmen.
Add-DistributionGroupMember -Identity "sklera-allowedRooms" -Member "Tesla"

# Variable mit Distinguished Name der Distribution Group erstellen.
$DistGroupDN = $(Get-DistributionGroup sklera-allowedRooms@sklera.onmicrosoft.com).DistinguishedName

# Management Scope z.B. “sklera-allowedRooms-scope” anlegen.
New-ManagementScope -Name sklera-allowedRooms-scope -RecipientRestrictionFilter "MemberOfGroup -eq '$DistGroupDN'"

Notieren Sie den Namen des Management Scopes. Der Name wird für das Erstellen des Management Role Assignments benötigt.


Hinweis: Anstelle der Distribution Group könnte auch ein beliebiger anderer RecipientRestrictionFilter für den Management Scope verwendet werden (z.B. RecipientTypeDetails -eq "RoomMailbox").


>> Management Role Assignment erstellen:

New-ManagementRoleAssignment -App oooooooo-oooo-oooo-oooo-oooooooooooo -Role "Application EWS.AccessAsApp" -CustomResourceScope "sklera-allowedRooms-scope" -Name SKLERA_EWS_ACCESS

-App = Object ID aus dem Menüpunkt "Enterprise applications"

-CustomResourceScope = Name des zuvor angelegten Management Scopes


2.2.5 Zugriffsberechtigung testen

Der Test zeigt an, ob sklera Zugriff auf das angegebene Raumpostfach hat oder nicht: inScope = True / False

Test-ServicePrincipalAuthorization -Identity oooooooo-oooo-oooo-oooo-oooooooooooo -Resource galileo

-Identity = Object ID aus dem Menüunkt "Enterprise applications" 

-Resource = Name des Raumpostfachs


RoleName

GrantedPermissionAllowedResourceScopeScopeTypeInScope
Application EWS.AccessAsApp EWS.AccessAsAppssssssss-ssss-ssss-ssss-ssssssssssssGroupTrue



2.3 sklera CMS


2.3.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.3.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).
Kann z.B. die SMTP-Adresse eines Raumes oder eines separaten Postfachs sein, das sich im Scope befindet.
Auth TypeOffice365 OAuth 2.0 (Application Permission) auswählen
Azure Verzeichnis IDZuvor notierte Directory (tenant) ID  eintragen (Menüpunkt App registrations)
Azure App IDZuvor notierte Application (client) ID (Menüpunkt App registrations)
Azure App SecretZuvor notierter Wert des Client Secrets (Menüpunkt App registrations)


2.3.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.




3. Allgemeine Hinweise

3.1 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. 



3.2 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.



4. Weiterführende externe Links