Markus Michalski FAQ

LeaveFlow: Anmeldung und Integrationen

Anmeldeverfahren und Integrationen in LeaveFlow: Google Workspace, Microsoft Entra ID, LDAP, Slack, Microsoft Teams und Zwei-Faktor-Pflicht.

English Version

Zurück zur Übersicht

LeaveFlow: Anmeldung und Integrationen

Alle Einstellungen dieser Seite findest du unter Admin → Organisation → Firmen-Einstellungen (/admin/company/settings). Mehrere Anmeldeverfahren können gleichzeitig aktiv sein.

Anmeldeverfahren im Überblick

Verfahren Voraussetzung 2FA in LeaveFlow
Lokal (E-Mail und Passwort) immer verfügbar optional oder per Firmen-Pflicht, TOTP
Google Workspace GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, Schalter in den Firmen-Einstellungen entfällt, Google übernimmt die Anmeldung
Microsoft Entra ID ENTRA_CLIENT_ID, ENTRA_CLIENT_SECRET, Schalter in den Firmen-Einstellungen entfällt, Microsoft übernimmt die Anmeldung
LDAP / Active Directory Verbindung in den Firmen-Einstellungen, APP_LDAP_ENCRYPTION_KEY bleibt bestehen

Das lokale Konto des Admins funktioniert auch bei aktivem LDAP weiter: Benutzer mit lokaler Anmeldung fängt der LDAP-Login nicht ab.

Bei Google, Entra und LDAP legt LeaveFlow beim ersten erfolgreichen Login automatisch ein Benutzerkonto mit der Rolle Mitarbeiter an (bei LDAP je nach Gruppe). Dieses Konto hat noch keinen Mitarbeiterdatensatz: Verknüpfe es unter Mitarbeiter über das Feld „Verknüpfter Benutzer“, sonst kann die Person keinen Urlaub beantragen. Existiert die E-Mail-Adresse bereits als anderes Konto, wird der Login abgelehnt.

Google Workspace

  1. Im Google-Cloud-Projekt eine OAuth-2.0-Client-ID vom Typ Webanwendung anlegen.
  2. Als autorisierte Weiterleitungs-URI https://<deine-domain>/connect/google/check eintragen.
  3. GOOGLE_CLIENT_ID und GOOGLE_CLIENT_SECRET in .env.local setzen.
  4. In den Firmen-Einstellungen im Block „Google Workspace Login“ auf Google-Login aktivieren klicken.
  5. Optional im Feld „Erlaubte Google-Workspace-Domain (optional)“ die Domain eintragen (zum Beispiel acme.com) und mit Domain-Einschränkung speichern sichern.

Auf der Anmeldeseite erscheint danach „Mit Google anmelden“. Die Google-E-Mail-Adresse muss von Google als verifiziert gemeldet sein. Ohne Domain-Einschränkung kann sich jedes verifizierte Google-Konto anmelden und erhält ein Mitarbeiter-Konto.

Microsoft Entra ID

  1. Im Azure-Portal eine App registrieren.
  2. Als Weiterleitungs-URI https://<deine-domain>/connect/entra/check eintragen.
  3. ENTRA_CLIENT_ID und ENTRA_CLIENT_SECRET in .env.local setzen, bei einer Einzelmandanten-Registrierung außerdem ENTRA_TENANT_ID (Standard common).
  4. In den Firmen-Einstellungen im Block „Microsoft Entra ID Login“ auf Microsoft-Login aktivieren klicken.
  5. Das Feld „Tenant-ID (optional)“ ausfüllen und mit Tenant-ID speichern sichern.

Ohne Tenant-ID in den Firmen-Einstellungen können sich auch Nutzer mit persönlichen Microsoft-Konten anmelden und möglicherweise E-Mail-Adressen von Firmenmitarbeitenden beanspruchen. Trage deshalb immer die Tenant-ID deines Verzeichnisses ein.

Auf der Anmeldeseite erscheint „Mit Microsoft anmelden“.

LDAP / Active Directory

Im Block „LDAP / Active Directory Login“ der Firmen-Einstellungen trägst du ein:

Feld Bedeutung
LDAP-Host, Port Adresse des Verzeichnisdienstes
Verschlüsselung Keine (Klartext), STARTTLS oder LDAPS (Port 636)
Bind-DN (Service-Account) Konto für die Suche; leer lassen für anonymen Bind
Bind-Passwort Wird verschlüsselt gespeichert; leer lassen, um das vorhandene Passwort zu behalten
Basis-DN (User-Suche) Suchbasis für Benutzer
Benutzer-Filter Muss genau einmal {username} enthalten, zum Beispiel (uid={username}) oder für Active Directory (sAMAccountName={username})
Manager-Gruppe (DN), Admin-Gruppe (DN) Mitglieder erhalten die Rolle Manager beziehungsweise Administrator

Das Bind-Passwort ist keine Umgebungsvariable: Du trägst es im Formular ein, LeaveFlow speichert es verschlüsselt mit APP_LDAP_ENCRYPTION_KEY. Aktiviert wird mit LDAP-Login aktivieren.

Die Anmeldung läuft mit Benutzername und Passwort auf der normalen Anmeldeseite. Das Verzeichnis muss für jeden Benutzer ein Attribut mail liefern. Die Rolle aus der Gruppenmitgliedschaft wird nur beim ersten Login vergeben und danach nicht mehr mit dem Verzeichnis abgeglichen.

Verwendest du STARTTLS oder LDAPS, schützt das die Verbindung zum Verzeichnis. Mit „Keine (Klartext)“ laufen Benutzername und Passwort unverschlüsselt über das Netz.

Slack

Im Block „Slack-Integration“ trägst du ein:

Feld Quelle in Slack
Bot-Token (xoxb-…) „OAuth & Permissions“ der Slack-App
Signing Secret „Basic Information“ der Slack-App
Standard-Kanal-ID (C…) Kanal-ID, nicht der Name

Token und Secret werden verschlüsselt gespeichert und mit Slack-Integration aktivieren eingeschaltet. In der Slack-App richtest du diese Adressen ein:

Zweck URL
Slash-Commands (/urlaub, /team-abwesend) https://<deine-domain>/webhook/slack/commands
Interaktive Komponenten https://<deine-domain>/webhook/slack/interactive

Anfragen werden über die Slack-Signatur geprüft und müssen höchstens fünf Minuten alt sein.

Funktion Verhalten
Neuer Antrag LeaveFlow postet ihn in den Standard-Kanal, mit Schaltflächen zum Genehmigen und Ablehnen
Entscheidung Wird im Kanal gepostet; der Antragsteller erhält zusätzlich eine Direktnachricht
/urlaub oder /urlaub request Öffnet ein Formular für einen Urlaubsantrag (ganze Tage)
/team-abwesend Listet die heute Abwesenden (bis zu 25)
Ablehnen per Schaltfläche Trägt den festen Grund „Abgelehnt über Slack“ ein

Slash-Commands, Direktnachrichten und Schaltflächen erkennen den Benutzer über die Slack-Benutzer-ID, die am LeaveFlow-Benutzer gespeichert sein muss (Feld slackUserId). Die Oberfläche bietet dafür kein Eingabefeld. Ohne diese Zuordnung antwortet LeaveFlow „Dein Slack-Account ist nicht mit LeaveFlow verknüpft.“

Microsoft Teams

Im Block „Microsoft Teams Integration“ trägst du eine eingehende Webhook-URL ein, die mit https:// beginnen muss, und aktivierst mit Teams-Integration aktivieren. LeaveFlow sendet dann eine Karte bei jedem neuen Antrag und bei jeder Genehmigung oder Ablehnung.

Zwei-Faktor-Authentifizierung

Jeder Benutzer kann unter /profile/2fa TOTP einrichten (QR-Code oder Schlüssel, danach 10 Backup-Codes). Im Block „Zwei-Faktor-Authentifizierung verpflichtend machen“ aktivierst du mit 2FA-Pflicht aktivieren und einem Stichtag in der Zukunft die Pflicht. Bis zum Stichtag erscheint ein Hinweis-Banner, danach leitet LeaveFlow jeden Benutzer ohne eingerichtetes 2FA bei jeder Seite auf die Einrichtung um. Das gilt unabhängig vom Anmeldeverfahren, auch für Google- und Entra-Benutzer; deren Login verlangt allerdings keinen TOTP-Code. Hat jemand sein Gerät verloren, setzt du 2FA unter Benutzer mit „2FA zurücksetzen“ zurück.

Die Anmeldung ist auf 5 Versuche je 15 Minuten begrenzt. „Angemeldet bleiben“ hält die Sitzung 7 Tage.