Open WebUI SSO mit Azure Entra ID einrichten

Open WebUI SSO mit Azure Entra ID einrichten: App-Registrierung, SSL via Nginx, Docker-Konfiguration und SCIM-Provisioning. Komplette Schritt-für-Schritt-Anleitung.

29 Apr.. 2026 | AI

Inhaltsverzeichnis

 

Pexon Consulting | 12 Min. Lesezeit | 13.04.2026


TL;DR

Open WebUI lässt sich über OIDC direkt mit Azure Entra ID (ehemals Azure AD) verbinden — Ihre Mitarbeiter loggen sich mit ihrem Microsoft-365-Konto ein, ohne separates Passwort. Diese Anleitung zeigt das komplette Setup: Entra-App-Registrierung, SSL via Nginx Reverse Proxy und die Docker-Konfiguration. Pexon Consulting betreibt Open WebUI SSO produktiv bei Kunden in Versicherung, Fertigung und ÖPNV — mit 80 Mitarbeitern und als Microsoft Partner.


Warum Open WebUI ohne SSO ein Compliance-Problem ist

Open WebUI hat über 131.000 GitHub-Stars und ist die meistgenutzte Self-Hosted-Chat-Oberfläche für LLMs. Aber in der Standardkonfiguration hat es ein eigenes Benutzermanagement mit lokalen Passwörtern. Für den privaten Gebrauch reicht das.

Für ein Unternehmen mit 300+ Mitarbeitern nicht.

Ohne SSO haben Sie separate Zugangsdaten, die niemand verwaltet. Kein zentrales Offboarding — wenn ein Mitarbeiter geht, bleibt sein Open-WebUI-Account aktiv. Kein Conditional Access, keine MFA über Ihre bestehende Entra-ID-Policy. Und beim nächsten Audit fragt der Datenschutzbeauftragte, warum ein KI-System mit Zugang zu internen Dokumenten keine zentrale Authentifizierung hat.

Das ist kein Komfort-Thema. Das ist ein Compliance-Thema.

Was Sie für dieses Tutorial brauchen

  • Eine laufende Open-WebUI-Instanz (Docker, mindestens Version 0.6+)
  • Einen Azure-Tenant mit Entra ID (jedes Microsoft-365-Abo beinhaltet Entra ID)
  • Eine Domain mit DNS-Zugriff (z.B. ai.ihrefirma.de)
  • Root-Zugriff auf den Server für Nginx und SSL
  • 60 Minuten Einrichtungszeit

Falls Sie Open WebUI noch nicht installiert haben: Unsere Anleitung Open WebUI auf Azure deckt das komplette Azure-Hosting ab.

Schritt 1: App-Registrierung in Azure Entra ID

Öffnen Sie das Azure Portal → Microsoft Entra ID → App-Registrierungen → Neue Registrierung.

Name:                   Open WebUI Production
Unterstützte Kontotypen: Nur Konten in diesem Organisationsverzeichnis
Umleitungs-URI:         Web → https://ai.ihrefirma.de/oauth/microsoft/callback

Nach der Registrierung brauchen Sie drei Werte:

  1. Anwendungs-ID (Client ID) — auf der Übersichtsseite
  2. Verzeichnis-ID (Tenant ID) — ebenfalls Übersichtsseite
  3. Client Secret — unter Zertifikate & Geheimnisse → Neuer geheimer Clientschlüssel

Beim Client Secret: Wählen Sie eine Gültigkeit von 24 Monaten, nicht 6. Wir haben bei einem Kunden erlebt, dass ein 6-Monats-Secret an einem Freitagabend abgelaufen ist. 200 Mitarbeiter konnten sich am Montag nicht mehr einloggen. Das muss nicht sein.

Jetzt noch die API-Berechtigungen konfigurieren:

API-Berechtigungen → Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen:

  • openid
  • email
  • profile
  • offline_access

Klicken Sie danach auf Administratorzustimmung für [Ihr Tenant] erteilen.

Entra ID vor Open WebUI ist der erste Baustein. Wie Chat, Assistenten und Governance darauf als eine Plattform in Ihrem Besitz aufbauen: Offene KI-Plattform →

Schritt 2: SSL-Zertifikat und Nginx Reverse Proxy

Open WebUI SSO funktioniert nur über HTTPS. Entra ID verweigert die Authentifizierung bei HTTP-Redirect-URIs. Das ist kein Bug — das ist eine Sicherheitsanforderung.

# Let's Encrypt Zertifikat holen (auf dem Server)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot certonly --nginx -d ai.ihrefirma.de

Nginx-Konfiguration für Open WebUI mit SSL und WebSocket-Support:

# /etc/nginx/sites-available/openwebui
server {
    listen 80;
    server_name ai.ihrefirma.de;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name ai.ihrefirma.de;

    ssl_certificate     /etc/letsencrypt/live/ai.ihrefirma.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ai.ihrefirma.de/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;

    # Open WebUI Proxy
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket-Support — PFLICHT für Open WebUI
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Große Uploads erlauben (Dokumente für RAG)
        client_max_body_size 50M;
    }
}
# Aktivieren und testen
sudo ln -s /etc/nginx/sites-available/openwebui /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Zwei Fehler, die wir in fast jedem Projekt sehen:

WebSocket vergessen. Ohne die Upgrade– und Connection-Header funktioniert Open WebUI zwar, aber das Streaming der LLM-Antworten bricht ab. Die Antwort erscheint dann erst komplett, statt Wort für Wort. Die Nutzer denken, es sei kaputt.

client_max_body_size nicht gesetzt. Standard in Nginx ist 1 MB. Sobald jemand ein PDF für die RAG-Suche hochlädt, bekommt er einen 413-Fehler. 50 MB reicht für die meisten Dokumente.

Schritt 3: Open WebUI mit Entra-ID-Variablen konfigurieren

Hier passieren die meisten Fehler. Open WebUI hat dedizierte Microsoft-Variablen — verwenden Sie nicht die generischen OAUTH_CLIENT_ID-Variablen. Das funktioniert zwar teilweise, führt aber zu Problemen beim Token-Refresh.

# docker-compose.yml — Open WebUI mit Entra ID SSO
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      # === Microsoft Entra ID SSO ===
      - MICROSOFT_CLIENT_ID=12345678-abcd-efgh-ijkl-123456789012
      - MICROSOFT_CLIENT_SECRET=IhrGeheimesSecret~hier
      - MICROSOFT_CLIENT_TENANT_ID=abcdefgh-1234-5678-9012-abcdefghijkl
      - MICROSOFT_OAUTH_SCOPE=openid email profile offline_access
      - MICROSOFT_REDIRECT_URI=https://ai.ihrefirma.de/oauth/microsoft/callback

      # === Allgemeine Auth-Einstellungen ===
      - ENABLE_OAUTH_SIGNUP=true      # Neue User automatisch anlegen
      - WEBUI_URL=https://ai.ihrefirma.de
      - CORS_ALLOW_ORIGIN=https://ai.ihrefirma.de

      # === Optional: Lokale Registrierung sperren ===
      - ENABLE_SIGNUP=false            # Nur SSO-Login erlauben
      - ENABLE_LOGIN_FORM=false        # Login-Formular ausblenden

      # === LLM Backend (Beispiel: Azure OpenAI) ===
      - OPENAI_API_BASE_URLS=https://ihre-instanz.openai.azure.com/
      - OPENAI_API_KEYS=sk-azure-key-hier
    volumes:
      - open-webui-data:/app/backend/data
    restart: unless-stopped

volumes:
  open-webui-data:
# Starten
docker compose up -d

# Logs prüfen — auf OIDC-Initialisierung achten
docker compose logs -f open-webui | grep -i "oauth|microsoft|oidc"

Drei kritische Einstellungen, die oft vergessen werden:

ENABLE_SIGNUP=false — Ohne das kann sich jeder über das Registrierungsformular einen lokalen Account anlegen. Das untergräbt den gesamten SSO-Zweck. Setzen Sie es auf false, sobald SSO funktioniert.

ENABLE_LOGIN_FORM=false — Blendet das lokale Login-Formular aus. Nutzer sehen nur den „Mit Microsoft anmelden“-Button. Wichtig: Behalten Sie mindestens einen Admin-Account mit lokalem Login, falls SSO ausfällt. Dafür gibt es die Umgebungsvariable WEBUI_SECRET_KEY als Notfall-Zugang.

CORS_ALLOW_ORIGIN — Muss exakt Ihre Domain enthalten. Ohne das schlagen WebSocket-Verbindungen hinter dem Nginx-Proxy fehl.

Schritt 4: Testen und häufige Fehlermeldungen

Rufen Sie https://ai.ihrefirma.de auf. Sie sollten den „Mit Microsoft anmelden“-Button sehen. Klicken Sie drauf — es öffnet sich das Microsoft-Login-Fenster.

Falls es nicht funktioniert, hier die drei häufigsten Fehler:

AADSTS9002325 — Proof Key for Code Exchange fehlt: Das passiert, wenn Open WebUI eine ältere Version nutzt (<0.5). Updaten Sie auf mindestens 0.6.

AADSTS50011 — Redirect URI stimmt nicht überein: Die URI in der Entra-App-Registrierung muss exakt https://ai.ihrefirma.de/oauth/microsoft/callback sein. Kein Trailing Slash, keine abweichende Schreibweise.

Kein E-Mail-Claim: Entra ID sendet standardmäßig keine E-Mail bei Accounts ohne hinterlegte Adresse. Prüfen Sie unter Token-Konfiguration → Optionaler Anspruch → email hinzufügen. Open WebUI braucht die E-Mail-Adresse, um den User zu identifizieren.

# Debugging: Token-Inhalt prüfen
# Öffnen Sie https://jwt.ms und fügen Sie den id_token ein
# Prüfen Sie: Ist "email" im Payload vorhanden?

Wer welches Dokument sehen darf, regelt Entra ID allein nicht.

Sobald der Chatbot aus SharePoint, Confluence oder Fileshares antwortet, müssen die Rechte der Quelle mitwandern. Dann sieht der Assistent nie mehr als die Person, die fragt.

So bauen wir das

SCIM: Automatisches User-Provisioning als nächster Schritt

SSO löst die Authentifizierung. Aber wer legt die User in Open WebUI an?

Mit ENABLE_OAUTH_SIGNUP=true passiert das automatisch beim ersten Login. Das reicht für Teams bis 50 Personen. Ab 200+ Nutzern wollen Sie aber Gruppenzuordnungen, Rollen und automatisches Deprovisioning — also dass ein gesperrter Entra-ID-Account auch in Open WebUI deaktiviert wird.

Dafür unterstützt Open WebUI seit kurzem SCIM 2.0. Die Konfiguration ist Enterprise-Feature, aber der Mehrwert ist enorm: Onboarding und Offboarding laufen zentral über Entra ID, ohne dass jemand manuell Accounts in Open WebUI verwalten muss.

Wir haben das bei einem Nahverkehrsunternehmen eingerichtet — 180 Mitarbeiter, 4 Abteilungen mit unterschiedlichen Modell-Berechtigungen. Ohne SCIM wäre das manuelle User-Management ein Vollzeitjob gewesen. In unseren Case Studies beschreiben wir ähnliche Projekte.

Sicherheits-Checkliste für den Produktionsbetrieb

Bevor Sie Open WebUI SSO für alle freischalten, gehen Sie diese Liste durch:

  1. SSL-Zertifikat gültig und Auto-Renewal aktiv? sudo certbot renew --dry-run
  2. Lokale Registrierung gesperrt? ENABLE_SIGNUP=false
  3. Conditional Access in Entra ID konfiguriert? MFA für die Open-WebUI-App erzwingen
  4. Client Secret Ablaufdatum notiert? Kalender-Erinnerung 30 Tage vorher
  5. Backup der Docker-Volumes eingerichtet? open-webui-data enthält alle Chats und Einstellungen
  6. Rate Limiting auf Nginx-Ebene? Verhindert API-Missbrauch
  7. WEBUI_SECRET_KEY gesetzt? Notfall-Admin-Zugang ohne SSO

Wenn Sie neben Open WebUI auch andere LLM-Tools zentral steuern, lohnt sich ein LLM-Gateway wie LiteLLM als zusätzliche Schicht für Cost-Tracking und Modell-Routing.

Häufig gestellte Fragen

Funktioniert Open WebUI SSO auch mit Microsoft 365 Business Basic?

Ja. Jedes Microsoft-365-Abo beinhaltet Azure Entra ID (ehemals Azure AD). Sie brauchen kein separates Entra-ID-Premium-Abo für die OIDC-Integration. Premium wird erst nötig, wenn Sie Conditional Access Policies oder SCIM-Provisioning nutzen wollen.

Was kostet das Open WebUI SSO Setup?

Die Software selbst ist kostenlos (Open Source). Kosten entstehen für den Server (50–150 EUR/Monat auf Azure), das SSL-Zertifikat (kostenlos mit Let’s Encrypt) und die Einrichtungszeit. In unseren Projekten rechnen wir mit 2–3 Personentagen für ein produktionsreifes Setup inklusive SSO, SSL und Monitoring.

Open WebUI SSO vs. LibreChat SSO — was ist einfacher einzurichten?

Open WebUI hat dedizierte Microsoft-Variablen (MICROSOFT_CLIENT_ID etc.), was die Entra-ID-Integration deutlich vereinfacht. LibreChat nutzt generisches OIDC, das bei Microsoft manchmal Probleme mit dem E-Mail-Claim macht. Für Microsoft-365-Umgebungen ist Open WebUI die einfachere Wahl.

Kann ich neben SSO auch lokale Accounts behalten?

Ja, aber wir raten davon ab. Wenn Sie ENABLE_LOGIN_FORM=true lassen, können sich Nutzer sowohl über SSO als auch lokal einloggen. Das untergräbt die zentrale Zugriffskontrolle. Besser: ENABLE_LOGIN_FORM=false und einen einzigen Admin-Account als Notfallzugang behalten.

Wie lange dauert die Einführung von Open WebUI mit SSO für 200+ Mitarbeiter?

Die technische Einrichtung (SSO, SSL, Docker) dauert 2–3 Tage. Dazu kommen 1–2 Wochen für Rollout, Schulung und Feintuning der Berechtigungen. Bei einem KI-Workshop schulen wir die Key User parallel zum technischen Setup.


KI-Chatbot im Unternehmen
SSO steht. Über Ihr Unternehmen weiß der Chatbot trotzdem nichts.
Entra ID regelt, wer rein darf. Was drin passiert, entscheidet die Datenanbindung: ein Chatbot, der Ihre Handbücher, Normen und Fachsysteme kennt und jede Antwort mit einer nachprüfbaren Quelle belegt.
Startpaket ab 13.200 EUREin Assistent auf einer Ihrer Datenquellen, produktiv. Betrieb auf vorhandener Infrastruktur möglich.
Sie wollen zuerst den Betrieb sauber aufsetzen? Open WebUI auf Azure mit SSO deckt den Hosting-Teil ab.
Erster Use-Case in 6 bis 8 Wochen zum Festpreis, abgenommen gegen Zielwerte auf Ihren eigenen Dokumenten. ISO 27001 zertifiziert.

Verwandte Themen


Microsoft Fabric. Bilder Blogtemplate Whitepaper

Claude Code im Unternehmen

  • Praxis-Guide für IT-Leiter – mit konkreten Einblicken zu Kosten, Sicherheit und Rollout von Claude Code im Unternehmen.

Beratungsgespräch

Sichern Sie sich Ihre kostenfreie Erstberatung

Analyse Ihres individuellen Cloud- oder KI-Bedarfs
Erste Empfehlungen zu Umsetzungsstrategien
Transparente Einblicke in unsere Methoden, Technologien & Referenzen