Beschreibung:

In diesem Artikel wird beschrieben, wie ein ePaper-Server mittels Modern Authentication an Office 365 angebunden werden kann, um Termine aus Office 365 auf den ePaper-Displays darzustellen.


Voraussetzungen:

  • Zugang zu Office 365
  • Zugriff auf das Office 365 Admin-Konto
  • In Office 365 muss ein Benutzerkonto existieren, welches als Postfachstellvertreter in allen gewünschten Raumpostfächern eingetragen wird.
    • Die Raumpostfächer müssen als Ressourcenpostfächer angelegt werden.
  • Bereits eingerichtetes und funktionsfähiges ePaper-Szenario
  • Der ePaper-Server muss auf einem Windows System installiert sein
  • Windows PowerShell ab Version 7.0 muss auf dem Windows System verfügbar sein, auf dem die Python-Skripte ausgeführt werden
  • Aktueller Web-Browser mit Java-Script Support als Standard-Browser
  • Python ab Version 3.4


Vorgehensweise:

1. Vorbereitende Schritte in Microsoft Azure:

Der Zugang zu Office 365 wird im Hintergrund über Microsoft Azure realisiert. Daher ist bei Verwendung von Office 365 immer auch ein Zugang zu Microsoft Azure vorhanden. Damit der ePaper-Server an Office 365 angebunden werden kann, müssen in Microsoft Azure einige Einstellungen vorgenommen werden.

1.1 Rufen Sie den folgenden Link auf, um sich bei Microsoft Azure anzumelden.

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

1.2 Wählen Sie das Administrator-Konto von Office 365 aus und melden sich an. 

1.3 Klicken Sie bei App-Registrierungen auf Neue Registrierung, um eine Anwendung mit Azure zu verbinden.

1.4 Passen Sie die folgenden Parameter an und klicken auf Registrieren:

  • Name: Vergeben Sie einen aussagekräftigen Namen für die Anwendung (in diesem Beispiel LANCOM ePaper O365).
  • Unterstützte Kontotypen: Wählen Sie die Option Konten in einem beliebigen Organisationsverzeichnis und persönliche Microsoft-Konten aus.
  • Umleitungs-URI: Stellen Sie sicher, dass Web ausgewählt ist und tragen den folgenden Link ein:

1.5 Kopieren Sie in der Übersicht die Anwendungs-ID und speichern diese zur späteren Verwendung in einer Text-Datei ab.

1.6 Wechseln Sie in den Reiter Zertifikate & Geheimnisse und klicken auf Neuer geheimer Clientschlüssel, um einen Schlüssel für die Kommunikation mit Office 365 zu generieren.

1.7 Passen Sie die folgenden Parameter an und klicken auf Hinzufügen:

  • Beschreibung: Vergeben Sie einen aussagekräftigen Namen für den Schlüssel.
  • Gültig bis: Wählen Sie im Dropdownmenü eine Gültigkeitsdauer aus (in diesem Beispiel 24 Monate).

Nach Ablauf der Gültigkeit muss ein neuer Schlüssel erstellt werden und dieser in den Python-Skripten hinterlegt werden (siehe Schritt 2.2 und 2.3).

1.8 Kopieren Sie den geheimen Schlüssel (Wert) und speichern diesen zur späteren Verwendung in einer Textdatei ab. 

Der geheime Schlüssel muss zwingend zu diesem Zeitpunkt kopiert werden, da dies zu einem späteren Zeitpunkt nicht mehr möglich ist. In diesem Fall muss der Schlüssel gelöscht und ein neuer erstellt werden.

1.9 Wechseln Sie in den Reiter API-Berechtigungen und klicken auf Berechtigung hinzufügen.

1.10 Klicken Sie auf Microsoft Graph.

1.11 Wählen Sie Delegierte Berechtigungen aus.

1.12 Wählen Sie die folgenden Berechtigungen aus und klicken anschließend auf Berechtigungen hinzufügen:

  • OpenId-Berechtigungen:
    • offline_access
  • Calendars:
    • Calendars.Read
    • Calendars.Read.Shared
  • User:
    • User.Read (Standardmäßig ausgewählt)

1.13 Die Berechtigungen sehen anschließend wie folgt aus.

1.14 Die vorbereitenden Schritte in Microsoft Azure sind damit abgeschlossen.



2. Anpassung der mitgelieferten Skript-Dateien:

Damit die Anbindung funktioniert, müssen in den Python-Skripten noch die Login-Daten und in der Konfigurations-Datei noch einige Informationen zum ePaper Server hinterlegt werden. Weiterhin muss das ePaper-Template in das Installationsverzeichnis des ePaper-Servers kopiert werden, sofern noch kein eigenes Template verwendet wird.

Laden Sie sich dazu die im Anhang befindliche Datei ePaper-Office 365-Skripte.zip herunter und entpacken diese.

ePaper-Office 365-Skripte.zip


2.1 Kopieren des ePaper-Templates in das Installationsverzeichnis des ePaper-Servers:

Sollten Sie bereits ein angepasstes Template verwenden, so überspringen Sie diesen Schritt.

Kopieren Sie das ePaper-Template lcsconference_landscape.xsl und fügen dieses im Installationsverzeichnis des ePaper-Servers in den Ordner data → template ein.


2.2 Anpassung der Datei "O365_Auth.py":

Bearbeiten Sie die Datei O365_Auth.py in einem Texteditor und tragen bei credentials die in Schritt 1.5 kopierte Anwendungs-ID (Client) und den in Schritt 1.8 kopierten Geheimen Schlüssel (Wert) ein. 

Die Logindaten müssen jeweils in Hochkommata eingetragen werden, wie auf dem Screenshot ersichtlich.


2.3 Anpassung der Datei "O365_Update.py" bzw. "O365_Update_24h.py":

Bearbeiten Sie die Datei O365_Update.py oder O365_Update_24h.py in einem Texteditor und passen folgende Parameter an:

  • credentials: Tragen Sie die in Schritt 1.5 kopierte Anwendungs-ID (Client) und den in Schritt 1.8 kopierten Geheimen Schlüssel (Wert) ein.
  • tzone: Passen Sie bei Bedarf die Zeitzone an.

Es wird entweder das Skript O365_Update.py oder O365_Update_24h.py verwendet:

  • O365_Update.py zeigt immer auch den nächsten Termin an, auch wenn dieser erst am nächsten Tag stattfindet.
  • O365_Update_24h.py zeigt immer nur Termine vom gleichen Tag an.

Die Logindaten sowie die Zeitzone müssen jeweils in Hochkommata eingetragen werden, wie auf dem Screenshot ersichtlich.


2.4 Anpassung der Datei "config.json":

2.4.1 Bearbeiten Sie die Datei config.json und passen die folgenden Parameter an:

  • Tragen Sie unter wireless_display_server die IP-Adresse des ePaper-Servers als address ein.
  • Hinterlegen Sie unter conference_label das von ihnen verwendete Template, sofern Sie ein eigenes Template verwenden und diesem einen anderen Namen gegeben haben.
  • Passen Sie unter displays folgende Parameter an:
    • o365_room_mailbox: Tragen Sie die E-Mail-Adresse des gewünschten Kalender-Postfachs ein.
    • display_id: Tragen Sie die Display-ID eines ePaper-Displays ein.
    • display_name: Tragen Sie einen aussagekräftigen Namen für das ePaper-Display ein.

Die Parameter müssen jeweils in hochgestellten Anführungszeichen eingetragen werden, wie auf dem Screenshot ersichtlich.

2.4.2 Bei Verwendung mehrerer ePaper-Displays muss im Abschnitt displays für jedes Display der markierte Bereich kopiert und darunter eingefügt werden. Der Abschnitt eines ePaper-Displays muss jeweils durch ein Komma von dem Abschnitt des nächsten Displays getrennt werden. Die Parameter der weiteren Displays müssen wie in Schrtt 2.4.1 beschrieben angepasst werden.

2.4.3 Für zwei ePaper-Displays sieht der Abschnitt displays anschließend wie folgt aus.



3. Abschließende Schritte in der Windows Power-Shell auf dem System mit dem ePaper-Server: 

Öffnen Sie den Ordner, in dem sich die Python-Skripte befinden, öffnen bei gedrückter <Shift-Taste> das Kontextmenü per Rechtsklick und wählen PowerShell-Fenster hier öffnen aus.


3.1 Installation der Python Module für Office 365: 

Geben Sie den folgenden Befehl ein: pip install o365


3.2 Installation des ExchangeOnlineManagement-Moduls:

3.2.1 Geben Sie den folgenden Befehl ein: Install-Module ExchangeOnlineManagement

3.2.2 Bestätigen Sie die Abfrage Möchten Sie den NuGet-Anbieter jetzt durch PowerShellGet installieren und importieren lassen? mit J (Ja).

3.2.3 Bestätigen Sie die Abfrage Möchten Sie die Module von 'PSGallery' wirklich installieren? mit J (Ja).


3.3 Import des ExchangeOnlineManagement-Moduls:

Geben Sie den folgenden Befehl ein: Import-Module ExchangeOnlineManagement


3.4 Registrierung des Office 365 Administrator-Kontos am ExchangeOnline-Modul:

3.4.1 Geben Sie den Befehl für die Registrierung in dem folgenden Format ein: Connect-ExchangeOnline -UserPrincipalName <admin@ihre-domain.de>

Tragen Sie als <admin@ihre-domain.de> die E-Mail Adresse des Office 365 Administrator-Kontos ein.

3.4.2 Loggen Sie sich in dem Popup-Fenster des Web-Browsers im Administrator-Konto ein.

Das Popup-Fenster wird nur korrekt angezeigt, wenn der verwendete Web-Browser JavaScript unterstützt.


3.5 Anzeige des Organisators und des Betreffs auf den ePaper-Displays ermöglichen:

Geben Sie für die Registrierung den Befehl in dem folgenden Format ein: Set-CalendarProcessing -Identity <testraum@ihre-domain.de> -DeleteSubject $False -AddOrganizerToSubject $False

Tragen Sie als <testraum@ihre-domain.de> die E-Mail Adresse des Kalender-Postfachs ein.


3.6 Generierung eines Tokens zur Authentifizierung des Postfachstellvertreters:

3.6.1 Geben Sie den folgenden Befehl ein: python O365_Auth.py 

3.6.2 Kopieren Sie den Link unter Visit the following url to give consent: und geben diesen in einem Web-Browser ein.

3.6.3 Loggen Sie sich mit dem Account für das Kalender-Postfach ein.

3.6.4 Kopieren Sie nach dem Login den Link aus dem Web-Browser.

3.6.5 Fügen Sie den kopierten Link in der PowerShell ein. Die erfolgreiche Authentifizierung wird mit der Meldung Authenticated! quittiert.


3.8 Starten des ePaper-Update-Skriptes:

Geben Sie einen der folgenden Befehle ein (siehe auch Schritt 2.3): python O365_Update.py .\config.json -i 3 -u required oder python O365_Update_24h.py .\config.json -i 3 -u required

Der Parameter -i steht für das Update-Intervall in Minuten. Der ePaper-Server sucht in diesem Beispiel also alle 3 Minuten nach Updates. Ein Update wird aber nur auf die ePaper-Displays ausgerollt, wenn es auch eine Änderung gibt.