5.1 KiB
Azure Entra ID Einrichtung fuer Busylight
Schritt-fuer-Schritt Anleitung zur Einrichtung der Azure App-Registrierung fuer das Busylight-System. Das Busylight nutzt die Microsoft Graph API, um den Teams-Presence-Status der Mitarbeiter abzufragen.
Voraussetzungen
- Zugang zum Azure Portal (https://portal.azure.com) mit Admin-Rechten
- Azure Entra ID (ehemals Azure AD) Lizenz (in Microsoft 365 Business enthalten)
- Microsoft Teams muss im Einsatz sein
1. App-Registrierung erstellen
- Azure Portal oeffnen: https://portal.azure.com
- Navigieren zu: Microsoft Entra ID > App-Registrierungen > Neue Registrierung
- Folgende Werte eintragen:
| Feld | Wert |
|---|---|
| Name | Busylight (oder z.B. Busylight cynfo) |
| Unterstuetzte Kontotypen | Nur Konten in diesem Organisationsverzeichnis |
| Umleitungs-URI | leer lassen |
- Auf Registrieren klicken
IDs notieren
Nach der Registrierung auf der Uebersichtsseite zwei Werte kopieren:
- Anwendungs-ID (Client-ID) - z.B.
1c3d0eef-a003-4e8d-9f4b-02b6cb2eeb1b - Verzeichnis-ID (Mandanten-ID / Tenant-ID) - z.B.
6a0349fc-7bb3-4868-a711-27a0d1c58c83
2. Oeffentliche Clientflows aktivieren
- In der App-Registrierung: Authentifizierung (linkes Menue)
- Ganz nach unten scrollen zu Erweiterte Einstellungen
- Oeffentliche Clientflows zulassen auf Ja setzen
- Speichern klicken
Warum? Das Busylight authentifiziert sich ueber den Device-Code-Flow. Dabei wird ein Code im Terminal angezeigt, den man im Browser eingibt. Dafuer muessen oeffentliche Clientflows aktiviert sein.
3. API-Berechtigungen setzen
- API-Berechtigungen > Berechtigung hinzufuegen > Microsoft Graph
- Delegierte Berechtigungen waehlen
- Folgende Berechtigungen suchen und hinzufuegen:
| Berechtigung | Zweck |
|---|---|
User.Read |
Angemeldeten Benutzer lesen |
User.Read.All |
Alle Benutzer aus dem Verzeichnis lesen |
Presence.Read |
Eigenen Presence-Status lesen |
Presence.Read.All |
Presence-Status aller Benutzer lesen |
- Administratorzustimmung erteilen klicken (gruener Haken muss bei allen erscheinen)
Wichtig: Ohne Administratorzustimmung koennen die Berechtigungen nicht genutzt werden. Es reicht nicht, die Berechtigungen nur hinzuzufuegen.
4. Busylight konfigurieren
Ueber das Web-Interface
- Busylight Web-UI oeffnen (z.B.
http://SERVER:8080/settings) - Folgende Felder ausfuellen:
| Feld | Wert |
|---|---|
| Client ID | Die Anwendungs-ID aus Schritt 1 |
| Tenant ID | Die Verzeichnis-ID aus Schritt 1 |
| Auth Tenant | Die Verzeichnis-ID (gleicher Wert wie Tenant ID) |
| Graph Scopes | User.Read User.Read.All Presence.Read Presence.Read.All |
- Speichern
Alternativ per CLI
cd /opt/busylight && source venv/bin/activate
python -c "
from database import init_db, set_setting
init_db()
set_setting('azure_client_id', 'DEINE-CLIENT-ID')
set_setting('azure_tenant_id', 'DEINE-TENANT-ID')
set_setting('azure_auth_tenant', 'DEINE-TENANT-ID')
"
5. Azure Authentifizierung durchfuehren
Die Authentifizierung erfolgt einmalig ueber den Device-Code-Flow im Terminal:
cd /opt/busylight && source venv/bin/activate
python -W ignore -c "
import logging
logging.getLogger('azure').setLevel(logging.WARNING)
from app import cli_auth
cli_auth()
"
Es erscheint eine Meldung wie:
To sign in, use a web browser to open the page https://microsoft.com/devicelogin
and enter the code LW5ZR5BFC to authenticate.
- Browser oeffnen: https://microsoft.com/devicelogin
- Den angezeigten Code eingeben
- Mit einem Azure-Konto anmelden (muss ein Benutzer des Tenants sein)
- Berechtigung bestaetigen
Nach erfolgreicher Anmeldung wird das Token in der Datenbank gespeichert und automatisch erneuert.
Hinweis: Die Sidebar im Web-Interface zeigt danach "Azure verbunden" (gruen) an.
6. Benutzer synchronisieren
- Im Web-Interface zu Benutzer navigieren
- Auf "Aus Azure synchronisieren" klicken
- Alle Benutzer aus dem Verzeichnis werden importiert
- Nicht benoetigte Benutzer (Service-Accounts, Raeume, etc.) deaktiviert lassen
- Fuer aktive Benutzer die Telefon-Durchwahl eintragen (fuer Starface-Webhook)
Fehlerbehebung
"Azure getrennt" trotz Authentifizierung
- Service neustarten:
sudo systemctl restart busylight - Erneut authentifizieren:
python app.py --auth(loescht alten Token automatisch)
Authentifizierung schlaegt fehl
- "AADSTS7000218": Oeffentliche Clientflows sind nicht aktiviert (Schritt 2)
- "AADSTS700016": Client-ID ist falsch
- "AADSTS90002": Tenant-ID ist falsch oder Auth-Tenant steht auf
commonstatt der Tenant-ID
Berechtigungsfehler beim Presence-Abruf
- API-Berechtigungen pruefen: Sind alle 4 Berechtigungen eingetragen?
- Administratorzustimmung erteilt? (gruener Haken in Azure)
- Hat der authentifizierte Benutzer eine Teams-Lizenz?
Token laeuft ab
- Das Token wird automatisch erneuert, solange der Service laeuft
- Bei laengerer Downtime (>90 Tage) muss erneut authentifiziert werden