INHALTSVERZEICHNIS
- 1. Eigener Exchange Server (on premises)
- 2. Office 365 / Exchange Online Integration mit RBAC Zugriffskontrolle
- 2.1 Microsoft Entra ID
- 2.2 Exchange Online (PowerShell)
- 2.3 sklera CMS
- 3. Allgemeine Hinweise
- 4. Weiterführende externe Links
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 Impersonation | Impersonation aktivieren / deaktivieren (Konfiguration am Exchange Server notwendig) |
Benutzername | Loginname 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:
- 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 | GrantedPermission | AllowedResourceScope | ScopeType | InScope |
Application EWS.AccessAsApp | EWS.AccessAsApp | ssssssss-ssss-ssss-ssss-ssssssssssss | Group | True |
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 URL | Exchange Online URL (nicht verändern) |
Server Version | Exchange2016 auswählen |
SSL Validation | SSL Validation muss aktiviert sein |
EWS Impersonation | EWS Impersonation muss aktiviert sein |
Gültige SMTP Adresse | Es 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 Type | Office365 OAuth 2.0 (Application Permission) auswählen |
Azure Verzeichnis ID | Zuvor notierte Directory (tenant) ID eintragen (Menüpunkt App registrations) |
Azure App ID | Zuvor notierte Application (client) ID (Menüpunkt App registrations) |
Azure App Secret | Zuvor 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.
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
- Raumlisten allgemein (abgerufen am 04.03.2020)
https://www.msxfaq.de/konzepte/raumlisten.htm - Herstellen einer Verbindung mit Exchange Online PowerShell
https://learn.microsoft.com/de-de/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps - Erstellen und Verwalten von Raumpostfächern
https://learn.microsoft.com/de-de/exchange/recipients/room-mailboxes?view=exchserver-2019