Single Sign-On (SSO) DE
Troi unterstützt SSO über den Security Assertion Markup Language (SAML) 2.0 Standard, einem offenen Standard zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen verschiedenen Systemen. Dies bietet ein hohes Maß an Sicherheit und vereinfacht den Zugriff für Benutzer erheblich.
Troi agiert dabei als Service Provider (SP). Ihre Organisation stellt den Identity Provider (IdP) bereit.
Wie SSO mit Troi funktioniert
Der Login-Prozess läuft wie folgt ab:
Der Benutzer versucht, auf Troi zuzugreifen.
Troi leitet die Login-Anfrage an Ihren IdP weiter.
Der IdP authentifiziert den Benutzer und sendet eine SAML-Antwort zurück.
Troi liest diese Antwort, identifiziert den Benutzer und meldet ihn an – optional mit automatischer Gruppenzuordnung.
Implementierungsschritte
Konfigurieren Sie Ihren IdP mit den erforderlichen Attributen und – optional – den Claims für Benutzergruppe, Sprache und Mandantenzuordnung.
Senden Sie uns Ihre SAML-Metadatendatei (
metadata.xml), inklusive Entity ID, SSO-URL und Zertifikat.Stellen Sie uns eine Liste von E-Mail-Adressen (wie im IdP verwendet) bestehender Troi-Benutzer zur Verfügung, damit wir lokale Benutzernamen auf SSO-basierte Konten umstellen können.
Wir vereinbaren mit Ihnen eine kurze Aktivierungssitzung, in der SSO aktiviert und ein gemeinsamer Live-Login-Test durchgeführt wird.
SAML Attributes Overview
Sobald Sie bereit sind, Ihren Identity Provider (IdP) zu konfigurieren, benötigen Sie die folgenden Attribute:
Attributname | Erforderlich | Übertragene Daten | Verwendung |
|---|---|---|---|
Allgemeine Attribute |
|
|
|
| Ja | E-Mail-Adresse | Wird verwendet, um die E-Mail-Adresse und den Kontakt des Benutzers in Troi zu setzen sowie den Benutzernamen zu generieren. |
| Ja | Nachname (Familienname) | Wird verwendet, um den Nachnamen des Benutzers zu setzen. |
| Ja | Vorname | Wird verwendet, um den Vornamen des Benutzers zu setzen. |
Benutzergruppen |
|
|
|
| Nein | Gruppenname oder IDs (als Array) | Wird verwendet, um den Benutzer einer internen Troi-Benutzergruppe zuzuweisen. |
Sprache |
|
|
|
| Nein | Bevorzugte Sprache (als Textwert) | Wird verwendet, um die Standardsprache für Benutzer und Kontakt zu setzen. Es werden verschiedene Formate unterstützt, z. B. |
Mandanten (Clients) |
|
|
|
| Nein | Hauptmandant (als String) | Wird verwendet, um den Hauptmandanten des Benutzers anhand des definierten Mapping-Schlüssels zu setzen. |
| Nein | Zugewiesene Mandanten | Wird verwendet, um dem Benutzer weitere Mandanten zuzuweisen. Akzeptiert einen kommaseparierten String oder ein Array von Werten. |
Attributes & Handling
Allgemeine Attribute
Die E-Mail-Adresse (
urn:oid:1.2.840.113549.1.9.1) dient als eindeutiger Benutzeridentifikator in Troi.Wenn ein Benutzer noch nicht existiert, wird er automatisch beim ersten erfolgreichen Login erstellt.
Eine manuelle Vorerstellung ist nicht erforderlich, solange der SAML-Login erfolgreich ist und alle erforderlichen Attribute übermittelt werden.Existiert bereits ein Benutzer mit einem lokalen Benutzernamen, wird dieser automatisch auf die E-Mail-Adresse aus dem SAML-Login umgestellt.
Diese Umstellung erfolgt durch uns im Rahmen der SSO-Aktivierung.
Der alte Benutzername ist danach nicht mehr gültig.
Benutzergruppen
Troi unterstützt die automatische Zuweisung von Benutzern zu internen Benutzergruppen beim SSO-Login – basierend auf Attributen des Identity Providers oder einem definierten Fallback.
Unterstütztes Attribut
Troi verwendet folgendes Attribut für die Gruppenzuweisung:
troi:group
Ein String-Wert, der mit dem SSO-Mapping einer internen Benutzergruppe übereinstimmt (definiert in den Gruppeneinstellungen).
Zuweisungsoptionen
Option 1: Automatische Gruppenzuweisung
Der Identity Provider (IdP) sendet beim Login den Claim
troi:group.Troi versucht, den übermittelten Wert mit einer intern definierten Benutzergruppe abzugleichen.
Wenn eine Übereinstimmung gefunden wird, wird der Benutzer automatisch dieser Gruppe zugewiesen.
Beispiel (Microsoft Entra): Das Attribut wird unter „Attributes & Claims“ mit dem Namen
troi:groupgesetzt.
Option 2: Fallback auf Standardgruppe
If the IdP does not send the troi:group attribute:
Wenn der IdP kein
troi:group-Attribut sendet, weist Troi den Benutzer einer vordefinierten Standardgruppe zu.Diese Standardgruppe ist in Troi konfigurierbar.
Administratoren können den Benutzer anschließend bei Bedarf manuell einer anderen Gruppe zuweisen.
Sprache
Die bevorzugte Sprache des Benutzers kann über folgendes SAML-Attribut übermittelt werden:
urn:oid:2.16.840.1.113730.3.1.39
(in vielen Systemen auch bekannt alspreferredLanguage)
Unterstützte Formate
Zur Sicherstellung der Kompatibilität werden folgende Werte erkannt und automatisch normalisiert:
Deutsch:
de,de-de,de_de,ger,german,deutschEnglisch:
en,en-us,en_us,en_gb,eng,english,englischFranzösisch:
fr,fr-fr,fr_fr,fre,french,französisch
Verhalten
Wenn der Identity Provider keine Sprache übermittelt, verwendet Troi die Sprache des zugewiesenen Mandanten.
Wenn dort ebenfalls keine Sprache definiert ist, wird standardmäßig Deutsch verwendet.
Mandanten (Clients)
Troi unterstützt die SSO-basierte Mandantenzuweisung, ähnlich wie bei der Gruppenzuweisung über troi:group.
Jeder Mandant kann individuell konfiguriert werden mit:
Einer bevorzugten Sprache (verwendet beim Login)
Einem SSO-Mapping-Schlüssel zur automatisierten Zuordnung
Unterstützte Attribute
Zur Mandantenzuweisung nutzt Troi folgende Attribute:
troi:main_client
Ein eindeutiger String, der dem SSO-Mapping-Schlüssel des Mandanten entspricht (definiert in den Mandantendetails).troi:clients
Kann in zwei Formaten übermittelt werden:Als kommaseparierter String, z. B.
"troi1-mandant, troi2-mandant"Als Array von Strings, z. B.
["troi1-mandant", "troi2-mandant"]
(identisches Format wie beitroi:group)
Verhalten
Wenn der Identity Provider keine Mandantenzuweisung übermittelt:
Wird der Benutzer dem vordefinierten Standardmandanten zugewiesen.
Dieser Standardmandant ist in Troi konfigurierbar.
Aktualisierung bestehender Benutzer
Das Verhalten bei der Authentifizierung unterscheidet zwischen Erstanmeldung und Folgeanmeldungen:
Erstanmeldung
Beim allerersten Login eines Benutzers (wenn er in Troi noch nicht existiert):
Der Benutzer wird automatisch angelegt.
Alle übermittelten Attribute des IdP haben höchste Priorität.
Beispielsweise wird
troi:main_clientgenutzt, wenn vorhanden. Ist dieses Attribut nicht gesetzt, greift der konfigurierte Standardmandant.Gleiches gilt für
troi:groupundurn:oid:2.16.840.1.113730.3.1.39(bevorzugte Sprache) – Attribute überschreiben Standards.
Fehlen die Attribute, werden stattdessen die in Troi konfigurierten Standardwerte für Gruppe, Mandant und Sprache verwendet.
Folgeanmeldungen
Ab der zweiten Anmeldung des Benutzers:
Vorname, Nachname und Benutzername werden bei jedem Login mit den IdP-Werten synchronisiert.
Benutzergruppe (
troi:group) wird bei jedem Login neu gesetzt, sofern das Attribut vom IdP übermittelt wird.E-Mail-Adresse wird nur synchronisiert, wenn die Option für den Mandanten aktiviert ist. (Systemeinstellungen)
Mandantenzuweisung (
troi:main_client,troi:clients) und Sprache werden nicht erneut aus IdP-Attributen übernommen.Änderungen an diesen Werten, die intern in Troi vorgenommen wurden (z. B. durch einen Administrator), bleiben bestehen.
Dieses Verhalten stellt sicher, dass manuelle Anpassungen in Troi nicht durch spätere IdP-Logins überschrieben werden.
FAQ
Kann ich weiterhin direkte Troi-Accounts verwenden, wenn SSO aktiviert wurde?
Nein. Sobald SSO aktiviert ist, können direkte Troi-Benutzerkonten nicht mehr verwendet werden.
Troi verwendet ein Entweder/Oder-Prinzip:
Entweder Sie nutzen SSO, oder Sie nutzen lokale Troi-Accounts – beides gleichzeitig ist nicht möglich.
Setup-Beispiele
Die folgenden Beispiele enthalten keine language- oder clients-Attribute/Claims, da deren Konfiguration stark vom verwendeten Identity Provider abhängt.
Einige Provider verfügen über eine integrierte Sprach-Eigenschaft, ähnlich wie eine E-Mail-Adresse (z. B. urn:oid:1.2.840.113549.1.9.1) als Benutzereigenschaft hinterlegt ist.
In diesen Fällen kann die Sprache auf vergleichbare Weise konfiguriert werden.
Andere Provider unterstützen diese Möglichkeit nicht, sodass das Attribut stattdessen als benutzerdefinierte Benutzer-Eigenschaft zugewiesen werden muss.
Das gleiche gilt für troi:main_client und troi:clients – je nach Fähigkeiten des Providers müssen diese entweder als Systemeigenschaft gesetzt oder manuell pro Benutzer definiert werden.
Um die Konsistenz zu gewährleisten, ist die Einrichtungssprache Englisch.
Setup on Microsoft Entra (Microsoft Azure)
Create the Application:
Application → Enterprise applications → New application → Create your own application
What's the name of your app? → Example: Troi SAML SSO
What are you looking to do with your application? → Integrate any other application you don't find in the gallery
Open the Application
Click on Properties
Enabled for users to sign-in? → Yes
Click on Single sign-on
Basic SAML Configuration
Identifier (Entity ID) →
https://<domain>.troi.softwareReply URL →
https://<domain>.troi.software/site/login.php?page=login&action=authenticatorExternal
Attributes & Claims
Add a group claim (optional):
Which groups associated with the user should be returned in the claim? → All groups
Source attribute → Group ID
Advanced options → Customize the Name of the group Claim → Name →
troi:group
Add new claims:
Email Address
Name:
urn:oid:1.2.840.113549.1.9.1Namespace: empty
Source: Attribute
Source attribute:
user.mail
Family Name
Name:
urn:oid:2.5.4.4Namespace: empty
Source: Attribute
Source attribute:
user.surname
Given Name
Name:
urn:oid:2.5.4.42Namespace: empty
Source: Attribute
Source attribute:
user.givenname
General
Ensure that users are granted access to the Troi application within Microsoft Entra. (API permissions)
Setup on Ping Identity
Connections → Applications → New Application
Web App
ACS URLs →
https://<customer>.troi.software/site/login.php?page=login&action=authenticatorExternalSIGNING KEY → Signing Algorithm →
RSA_SHA256Entity ID →
https://<customer>.troi.softwareSLO Binding →
PostSubject NameID Format →
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddressSave
Switch to Attribute Mappings
Add new ones:
troi:group→ Group Namesurn:oid:1.2.840.113549.1.9.1→ EMail Addressurn:oid:2.5.4.4→ Family Nameurn:oid:2.5.4.42→ Given Name