Microsoft Entra ID Authentifizierung
SwissMentor kann Benutzer über Microsoft Entra ID (vormals Azure Active Directory) authentifizieren.
In SwissMentor müssen folgende Informationen hinterlegt werden:
- Application (client) ID
- Directory (tenant) ID
- Client secret
Einrichtung in Microsoft Entra
Abschnitt betitelt „Einrichtung in Microsoft Entra“- Anmelden im Microsoft Entra Admin Center (entra.microsoft.com)
- Navigieren auf Ihre Microsoft Entra ID Domäne
- In Ihrer Domäne App registrations öffnen.
_ Unter Name einen beliebigen Namen eingeben
_ Wählen Sie bei Supportet account types, welche Benutzer-Arten sich bei SwissMentor anmelden können.
- Unter Redirect URI die URL entsprechend eingeben: **https://YOUR.SWISSMENTOR.URL/auth/azure-ad/callback** (z.B. https://abc.swissmentor.com/auth/azure-ad/callback)
- Klicken Sie auf Register

Client secret erhalten
Abschnitt betitelt „Client secret erhalten“- Gehen Sie auf Certificates & secrets
- Klicken Sie auf New client secret
- Geben Sie eine Beschreibung ein und wählen Sie eine Lebensdauer. Bei einer beschränkten Lebensdauer muss das Secret in SwissMentor regelmässig aktualisiert werden.
- Klicken Sie Add
- Kopieren Sie das erzeugte Client secret.
JWT-Secret konfigurieren
Abschnitt betitelt „JWT-Secret konfigurieren“Die Entra-Anmeldung benötigt ein zufälliges JWT-Secret mit mindestens 32 Zeichen. Alle API-Instanzen einer SwissMentor-Installation müssen dasselbe Secret verwenden.
Bei einer Helm-Installation kann das Chart das Secret erzeugen und automatisch an die API-Instanzen übergeben:
jwtAccessTokenSecret: generate: trueAlternativ verweist jwtAccessTokenSecret.existingSecret auf ein verwaltetes Kubernetes
Secret mit dem Schlüssel jwt-access-token-secret. Ausserhalb von Helm wird das Secret
über SM_AUTHENTICATION_JWT_ACCESS_TOKEN_SECRET bereitgestellt.
SwissMentor verwendet dieses Secret auch für die Verschlüsselung der Microsoft-Refresh-Tokens. Der JWT-Ersatzschlüssel aus der Datenbank kann dafür nicht verwendet werden.
Berechtigungen
Abschnitt betitelt „Berechtigungen“SwissMentor verwendet den Entra-v2-Anmeldefluss mit den Berechtigungen openid, profile
und offline_access. Die Zustimmung zu offline_access erlaubt SwissMentor, die
Microsoft-Sitzung im Hintergrund erneut zu prüfen. Je nach Richtlinie des Tenants muss
ein Administrator diese Zustimmung erteilen.
Benutzerzuordnung
Abschnitt betitelt „Benutzerzuordnung“SwissMentor prüft die Signatur der Microsoft-ID-Tokens sowie die zugehörige Anwendung, den konfigurierten Tenant und den Aussteller. Als Tenant muss ein konkretes Verzeichnis über seine Directory-ID oder seinen Tenant-Domänennamen angegeben sein.
Bei der ersten Anmeldung wird ein Azure-Benutzer über seinen SwissMentor-Benutzernamen der Microsoft-UPN zugeordnet. Danach bleibt die Zuordnung über Tenant-ID und Object-ID erhalten, auch wenn sich die Microsoft-UPN ändert. Ein anderer Microsoft-Account mit derselben UPN kann eine vorhandene Zuordnung nicht übernehmen.
Sitzungen und Kontosperren
Abschnitt betitelt „Sitzungen und Kontosperren“Vor jeder Erneuerung eines SwissMentor-Access-Tokens wird die zugehörige Microsoft-Sitzung serverseitig geprüft. Eine von Entra bestätigte Kontosperre, Kontolöschung oder ein Sitzungswiderruf beendet die betroffene lokale Refresh-Sitzung. Das gilt auch für die Rückkehr zu einer Azure-AD-Admin-Sitzung nach einer Impersonation.
Bereits ausgestellte SwissMentor-Access-Tokens bleiben bis zu ihrem Ablauf gültig.
Die maximale Restlaufzeit wird durch system.auth.provider.jwt.jwtTokenLifeTimeMinutes
bestimmt. Hinzu kommt die Zeit, bis Microsoft eine Änderung durchsetzt. Erfolgreiche
Providerprüfungen werden nicht über mehrere Refresh-Anfragen zwischengespeichert.
Ist Microsoft vorübergehend nicht erreichbar, stellt SwissMentor keinen neuen Access-Token aus. Der Browser versucht die Prüfung nach 30 Sekunden erneut; bei einer von Microsoft vorgegebenen Wartezeit kann dies bis zu fünf Minuten dauern. Die Sitzung wird wegen eines solchen technischen Fehlers nicht dauerhaft gesperrt.
Microsoft-Refresh-Tokens werden ausschliesslich verschlüsselt auf dem Server gespeichert und an die jeweilige lokale Sitzung gebunden. Eine Änderung des JWT-Secrets oder der Entra-App-/Tenant-Zuordnung erfordert eine erneute Anmeldung.