Azure AD SSO einrichten (Microsoft Entra ID)
Mit dieser Anleitung verbindest du Pragma mit deinem Microsoft Entra ID Tenant. Nutzer deiner Organisation können sich danach mit ihrem Microsoft-Account einloggen.
Voraussetzung: Du brauchst Admin-Rechte im Azure Portal und Owner-Rechte im Pragma Workspace.
Schritt 1 — App in Azure registrieren
- Öffne portal.azure.com und navigiere zu Microsoft Entra ID → App registrations → New registration
- Fülle das Formular aus:
- Name:
Pragma CRM(oder beliebiger interner Name) - Supported account types: Accounts in this organizational directory only (Single tenant)
- Redirect URI: Plattform Web, URI
https://app.mikemuellers.de/auth/sso/callback
- Name:
- Klicke Register
Schritt 2 — Client Secret erstellen
- Im Menü links → Certificates & secrets → Client secrets → + New client secret
- Description:
Pragma CRM Prod, Expires: 24 months - Klicke Add
- Kopiere die angezeigte Value sofort — sie wird nur einmal angezeigt
Schritt 3 — IDs notieren
Auf der Overview-Seite der App-Registrierung findest du:
| Feld | Beschreibung |
|---|---|
| Application (client) ID | Deine client_id für Pragma |
| Directory (tenant) ID | Wird für die Discovery-URL benötigt |
Schritt 4 — SSO in Pragma konfigurieren
Öffne die Browser-Konsole auf https://app.mikemuellers.de (F12 → Console) und führe folgenden Code aus:
const csrf = document.cookie.split('; ').find(r=>r.startsWith('wcb_csrf=')).split('=')[1];
fetch('/api/workspace/sso/config', {
method: 'POST',
headers: {'Content-Type': 'application/json', 'X-CSRF-Token': csrf},
body: JSON.stringify({
provider: 'azure',
client_id: 'DEINE_CLIENT_ID',
client_secret: 'DEIN_CLIENT_SECRET',
domain: 'deine-domain.de',
discovery_url: 'https://login.microsoftonline.com/DEINE_TENANT_ID/v2.0/.well-known/openid-configuration',
enabled: true
})
}).then(r=>r.json()).then(console.log)
Ersetze DEINE_CLIENT_ID, DEIN_CLIENT_SECRET und DEINE_TENANT_ID mit den Werten aus Schritt 2 und 3.
Eine erfolgreiche Antwort sieht so aus:
{ "workspace_id": 1, "provider": "azure", "client_id": "...", "enabled": true }
Schritt 5 — SSO testen
Öffne einen Inkognito-Tab und rufe auf:
https://app.mikemuellers.de/auth/sso/login?workspace_id=1
Du wirst zu Microsoft weitergeleitet. Nach erfolgreichem Login landest du direkt im Pragma Dashboard.
Wichtige Hinweise
- Just-in-Time Provisioning: Neue Nutzer werden beim ersten Login automatisch in Pragma angelegt
- Offboarding: Nutzer, die aus dem Azure Tenant entfernt werden, können sich nicht mehr einloggen
- WORKSPACE_SECRETS_KEY: Dieser Umgebungsvariable muss in der Produktionsumgebung gesetzt sein, damit Client Secrets verschlüsselt gespeichert werden können (Railway: Variables-Tab)
Typische Fehler
| Fehler | Ursache | Lösung |
|---|---|---|
AADSTS50011: redirect_uri mismatch | Redirect URI in Azure stimmt nicht überein | Prüfe exakten URI inkl. https:// in Azure → Authentication |
500 Internal Server Error | WORKSPACE_SECRETS_KEY nicht gesetzt | Variable in Railway hinterlegen |
403 Automated clients | cURL statt Browser verwendet | Browser-Konsole für den API-Call nutzen |
400 workspace_id required | Login-URL ohne Parameter aufgerufen | ?workspace_id=1 anhängen |