Okta SAML2 + SCIM
Einführung
Verbinden Sie Flexopus über SAML2 für Single Sign-On mit Okta. Mit der Integration können Sie verwalten, welche Okta-Nutzer Zugriff auf Flexopus haben sollen, und diese dazu verpflichten, ihre Okta-Zugangsdaten für den Login zu verwenden.
Basierend auf einer SAML2-Einstellung in Flexopus können Sie Nutzerprofile nach dem ersten erfolgreichen SAML2 SSO-Loginversuch automatisch erstellen lassen. Dadurch vermeiden Sie die manuelle Erstellung von Nutzern in Flexopus.
Einrichtungsanleitung
Folgen Sie der Schritt-für-Schritt-Anleitung, um die Integration zu konfigurieren. Die Anleitung enthält außerdem Best Practices und Lösungen für einige häufige Fehler während der Konfiguration. Falls Sie dennoch Unterstützung bei der Einrichtung benötigen, wenden Sie sich gerne an unser Support-Team unter support@flexopus.com.
SCHRITT 1 - Benutzerdefinierte SAML-App erstellen
Öffnen Sie die Okta Admin-Konsole und navigieren Sie zu Applications > Applications. Klicken Sie auf den Button Create App Integration.

Ein Pop-up öffnet sich. Wählen Sie die Option SAML 2.0 aus und klicken Sie auf Next.

App name: Flexopus SAML2
Logo:
App visibility: Lassen Sie diese Option deaktiviert.
Klicken Sie auf Next.

Geben Sie auf dieser Seite die Single Sign-On URL, Audience URL (SP Entity ID) und Default RelayState ein. Sie finden diese Parameter in Flexopus, indem Sie als Administrator zu Dashboard > Globale Einstellungen > Authentifizierung navigieren. Klicken Sie auf den Button Anbieter hinzufügen und wählen Sie die Option SAML2 SSO aus.

Kopieren Sie die URLs aus Flexopus in Ihre Okta-Konfiguration:
Entity ID = Audience URL (SP Entity ID) =
Callback (ACS) URLSingle Sign-On URL =
Relay StateDefault RelayState =
Name ID formatPERSISTENT =
Application usernameOkta username
Klicken Sie auf Continue und gehen Sie zunächst zurück zu Flexopus, um die Konfiguration dort abzuschließen.

Die Advanced Settings müssen nicht geändert werden. Hier dennoch ein Screenshot der Standardeinstellungen:

Wählen Sie: I'm an Okta customer adding an internal app
Wählen Sie: It's required to contact the vendor to enable SAML
Optional können Sie Okta einige Informationen zu Flexopus geben:
Optionales erstes Feld: https://www.flexopus.com
Optionales zweites Feld: https://help.flexopus.com/de/integration-okta-sso
Optionales drittes Feld: Keine Tipps und zusätzlichen Kommentare.
Klicken Sie am Ende auf Finish.

SCHRITT 2 - Attributzuordnung
Klicken Sie auf View SAML setup instructions.

Konfigurieren Sie die korrekten Attributzuordnungen. Legen Sie die Attribute wie unten aufgeführt fest.
| Name | Namensformat | Wert | Hinweis |
|---|---|---|---|
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname | URL Reference | user.firstname | erforderlich |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | URL Reference | user.email | erforderlich |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn | URL Reference | user.login | erforderlich |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname | URL Reference | user.lastName | erforderlich |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | URL Reference | user.displayName | erforderlich |
| department | Basic | user.department | optional |
| jobtitle | Basic | user.title | optional |

Um die Einrichtung abzuschließen, folgen Sie diesen Schritten, um Metadaten mit Flexopus zu teilen:
- Kopieren Sie den Inhalt aus dem Feld
Provide the following IDP metadata to your SP provider. Dieses Feld finden Sie unten auf der Okta-Konfigurationsseite. - Erstellen Sie eine neue, leere XML-Datei auf Ihrem Computer.
- Fügen Sie den kopierten Inhalt in diese XML-Datei ein und speichern Sie sie.
Diese Datei dient als Metadatendatei für Flexopus.

SCHRITT 3 - Flexopus konfigurieren
- Navigieren Sie in Flexopus zu
Dashboard > Globale Einstellungen > Authentifizierung. - Wählen Sie den neu erstellten
SAML2-Anbieteraus. - Aktivieren Sie
SAML2 SSO. - Wählen Sie für die Konfigurationsoption
MetadatendateistattMetadata URL. - Laden Sie die Metadatendatei hoch, die Sie aus Okta erstellt haben.

- Geben Sie den Namen für den
SAML2-Login-Buttonein, der auf der Login-Seite angezeigt werden soll. Empfehlung:SSO Login. - Optional: Aktivieren Sie die Synchronisierung der Felder, die Sie in den SAML2-Einstellungen konfiguriert haben, zum Beispiel
jobtitleoderdepartment.

- Legen Sie in den
Sicherheitseinstellungendieerlaubten Domains für SSOauf*fest und drücken SieENTER. Dadurch kann sich jeder Nutzer anmelden, der in Ihrem Active Directory konfiguriert ist. - Standardmäßig werden
SAML2 SSO-Nutzernach ihrem ersten Loginversuch automatisch registriert. Dadurch müssen Sie Nutzerprofile nicht vor dem ersten Login manuell erstellen. Diese Einstellung kann bei Bedarf deaktiviert werden, wird jedoch nicht empfohlen.

Speichern Sie Ihre Einstellungen unten auf der Seite.
SCHRITT 4 - Konfigurieren, wer sich anmelden darf
Wenn Sie jetzt versuchen, sich in Flexopus anzumelden, sehen Sie eine Fehlermeldung, da Sie noch nicht konfiguriert haben, wer sich aus Ihrem Okta-Nutzerverzeichnis anmelden darf oder nicht. Sie können dies im Tab Assignments festlegen. Weisen Sie der Anwendung einen Testnutzer zu und testen Sie die Verbindung in Flexopus.

Öffnen Sie die Einstellungen und entscheiden Sie, welcher Nutzer oder welche Gruppe sich in der Anwendung anmelden darf. Es wird empfohlen, den Login für die gesamte Organisation zu aktivieren, sofern keine sinnvollen Einschränkungen bestehen. In diesem Fall müssen Sie den Nutzerzugriff für den Login nicht pflegen und können die Anzahl möglicher Supportfälle zur Login-Konfiguration reduzieren.
SCIM-Konfiguration
Optional: SCIM API-Konfiguration
Optional können Sie eine Nutzer- und Gruppenbereitstellung zwischen Okta und Flexopus einrichten. Um mit der SCIM-Konfiguration zu beginnen:
- Klicken Sie in den App Settings auf
Edit. - Folgen Sie den Anweisungen zur SCIM-Einrichtung, um die Bereitstellung zu aktivieren.

Wählen Sie: Enable SCIM provisioning

- Navigieren Sie in Okta zum Tab
Provisioningund klicken Sie aufEdit. - Öffnen Sie Ihr Flexopus Admin-Dashboard:
Dashboard > Globale Einstellungen > Integrationen. - Suchen Sie die
SCIM Connector Base URLund generieren Sie denSCIM API-Tokenzur Autorisierung.

SCIM Connector Base URL: Tenant URL
Unique identifier field for users: userName
Optionen auswählen: Push New Users, Push Profile Updates, Push Groups
Option auswählen: HTTP Header
Authorization: Generieren Sie einen Token in Flexopus.
IMPORT GROUPS NICHT AUSWÄHLEN!!!Klicken Sie auf Test. Das Testergebnis sieht wie folgt aus:

Speichern Sie die Einstellungen.
Wählen Sie im Tab Provisioning den Menüpunkt To App aus und klicken Sie auf Edit.

Aktivieren: Create Users
Aktivieren: Update User Attributes
Aktivieren: Deactivate Users
Die vierte Option wird nicht benötigt.

Bearbeiten Sie die Attributzuordnung, sodass nur die notwendigen Attribute per SCIM an Flexopus gesendet werden. Behalten Sie nur die folgenden Zuordnungen:

Der Display Name muss geändert werden.
Attribute value: Expression
String.len(user.displayName) > 0 ? user.displayName : user.firstName + " " + user.lastName
Wählen Sie die Option Create and update.

Speichern Sie die Einstellungen.
Testen Sie die Verbindung, indem Sie Flexopus eine Gruppe zuweisen. Die Gruppen sollten innerhalb weniger Minuten mit Flexopus synchronisiert werden.
Optional: OKTA SCIM-Workaround
Zum aktuellen Zeitpunkt (30.10.2023) muss die SCIM-Schnittstelle aufgrund einer Fehlfunktion bei Okta über einen Umweg eingerichtet werden. Die normale „Anwendung“, die wir für die SAML2-Verbindung verwendet haben, bietet zwar die Option „Provisioning“, kann aufgrund eines technischen Fehlers auf Seiten von Okta jedoch nicht verwendet werden. Das Problem wurde von uns an Okta gemeldet und wir hoffen, dass es zukünftig behoben wird. Bis dahin können Sie die alternative Lösung wie folgt verwenden:
WORKAROUND:
- Gehen Sie in Okta zu
Applications > Browse App Catalog. - Suchen Sie nach
SCIM 2.0 Test App (Header Auth)und wählen Sie diese aus.

Sie können die Anwendung umbenennen: Flexopus SCIM App

Leider kann SAML2 in dieser Anwendung nicht konfiguriert werden. Daher können Sie die nachfolgenden Einstellungen mit dem Button Done überspringen. SAML2 haben wir ohnehin bereits mit der anderen Anwendung konfiguriert.

Klicken Sie auf Provisioning und starten Sie die Einstellungen mit Configure API Integration.

- Gehen Sie in Ihrem Flexopus Dashboard zu
Dashboard > Globale Einstellungen > Integrationen. - Suchen Sie die
Base URLund klicken Sie aufGenerate API token. - Kopieren Sie die Base URL und den API-Token für die Verwendung in der Okta SCIM-Integration.
Base URL: Tenant URL
API Token: Bearer {api-token}
Klicken Sie auf Test connection.

Aktivieren: Create Users
Aktivieren: Update User Attributes
Aktivieren: Deactivate Users
Die vierte Option wird nicht benötigt.

Bearbeiten Sie die Attributzuordnung, sodass nur die notwendigen Attribute per SCIM an Flexopus gesendet werden. Behalten Sie nur die folgenden Zuordnungen:

Der Display Name muss geändert werden.
Attribute value: Expression
String.len(user.displayName) > 0 ? user.displayName : user.firstName + " " + user.lastName
Wählen Sie die Option Create and update.

Testen Sie die Verbindung, indem Sie Flexopus eine Gruppe zuweisen. Die Gruppen sollten innerhalb weniger Minuten mit Flexopus synchronisiert werden.
Gruppen zuweisen und testen
Sie können die Gruppen anschließend mit der Anwendung verknüpfen, über Assignment und über Push Groups.
Sobald Sie eine Gruppe zugewiesen und die Bereitstellung gestartet haben, können Sie die folgenden Änderungen in Flexopus erwarten: Die Gruppen werden mit einer externen Kennzeichnung in Flexopus bereitgestellt. Das bedeutet, dass Sie die Gruppen nicht lokal in Flexopus bearbeiten können. Sie können weder die Namen ändern noch Nutzer hinzufügen oder Nutzer aus der Gruppe löschen. Die Single Source of Truth ist die Gruppenstruktur in Ihrem Okta Directory.

Sie können die Gruppen für das Zugriffsmanagement innerhalb von Flexopus ähnlich wie andere interne Gruppen oder Systemgruppen verwenden.
Best Practices für SCIM
Um das Gruppenmanagement zu optimieren:
- Nur notwendige Gruppen synchronisieren: Beschränken Sie die Synchronisierung auf Gruppen in Okta, die einen klaren Zweck in Flexopus haben. Vermeiden Sie es, Gruppen nur für Arbeitsplatzzuweisungen zu synchronisieren. Verwalten Sie diese direkt in Flexopus.
- Zentrales Gruppenmanagement: Verwenden Sie Okta für breit einsetzbare Gruppen, zum Beispiel AllCompanyUsers. Spezifischere Gruppen, zum Beispiel DepartmentAWorkstationGroup2, können in Flexopus erstellt und verwaltet werden.
- Verantwortung für Verwaltung definieren: Entscheiden Sie, welche Abteilung, zum Beispiel IT, Facility Management oder HR, für Gruppenzuweisungen verantwortlich ist. Nur die jeweils verantwortlichen Personen sollten diese Gruppen direkt verwalten.
- IT-Abhängigkeit minimieren: Stellen Sie sicher, dass Gruppenverantwortliche direkten Zugriff haben, um relevante Gruppen in Flexopus zu verwalten. Dadurch reduzieren Sie die Abhängigkeit von der IT bei Anpassungen und vermeiden unnötige Support-Tickets.
Vorschlag - Eine externe Gruppe
Zur Vereinfachung der Nutzerverwaltung:
- Eine einzelne Zugriffsgruppe erstellen (AllFlexopusUsers):
- Synchronisieren Sie nur die Gruppe AllFlexopusUsers, die alle Nutzer enthält, die Flexopus-Zugriff benötigen.
- Durch die Bereitstellung dieser Gruppe werden alle darin enthaltenen Nutzer mit Flexopus synchronisiert, auch wenn sie sich noch nicht angemeldet haben.
- Nutzerverwaltung in Flexopus:
- Flexopus-Administratoren können lokal zusätzliche Gruppen erstellen und verwalten.
- Flexopus-Administratoren erhalten mehr Flexibilität, ohne für jede Änderung die IT einbeziehen zu müssen. Dadurch wird der Administrationsaufwand reduziert.
- Anwendungsfälle:
- Neue Mitarbeitende: Fügen Sie neue Mitarbeitende während des Onboardings in Okta zu AllFlexopusUsers hinzu, um ihren Flexopus-Zugriff ab dem ersten Tag sicherzustellen.
- Austretende Mitarbeitende: Entfernen Sie ausscheidende Mitarbeitende aus AllFlexopusUsers oder löschen Sie sie aus Okta. Flexopus deaktiviert deren Profil automatisch und blockiert den Login. Weitere Informationen zur automatisierten Entfernung von Nutzern finden Sie im Löschkonzept von Flexopus.
Wie kann ich die SCIM-Integration deaktivieren?
Um die SCIM-Integration zu deaktivieren:
- Öffnen Sie Okta und deaktivieren Sie die SCIM-Integration.
- Navigieren Sie in Flexopus als Administrator zu
Dashboard > Globale Einstellungen > Integrationen. - Klicken Sie auf
Token löschen, um die Deaktivierung abzuschließen.

Wenn Sie in Flexopus auf Token löschen klicken:
- Ein Pop-up erscheint und fordert Sie auf, die
Gruppen zu trennen. - Aktivieren Sie diese Option, um die aktuellen externen schreibgeschützten Gruppen in interne Gruppen umzuwandeln, sodass Sie diese anschließend bearbeiten können.

Fertig. Die SCIM-Integration wurde gelöscht.
Fehlerbehebung / FAQ
Ich erhalte beim Login einen 500-Fehler.
Wenn Sie einen 500-Fehler erhalten, haben Sie möglicherweise die URLs oder Attribute falsch konfiguriert. Prüfen Sie die Einstellungen anhand der Anleitung erneut. Wenn Sie das Problem nicht finden können, kontaktieren Sie uns unter support@flexopus.com. Wir verfügen über Serverprotokolle, mit denen wir nachvollziehen können, wo das Problem liegt.
Kann ich den UPN der Nutzer ändern?
Wie Sie wissen, steht UPN für Unique Principal Name. Eindeutige Attribute sollten niemals geändert werden. Insbesondere der UPN des Nutzers sollte gleich bleiben. Er kann eine Nummer oder ein anderer eindeutiger Wert sein. Externe Anwendungen identifizieren Nutzer anhand ihres UPN. Wenn Sie ihn ändern, riskieren Sie, dass in Flexopus ein neuer Nutzer erstellt wird. Dennoch kann es Gründe geben, den UPN zu ändern. Kontaktieren Sie uns in diesem Fall unter support@flexopus.com. Wir können Sie unterstützen, indem wir die UPNs und External IDs der Nutzer löschen, damit Sie die UPNs in Ihrem IdP ändern können.
Kann ich auch die Profilbilder der Nutzer synchronisieren?
Leider unterstützt das SAML2 SSO-Protokoll keine Synchronisierung von Profilbildern. Wir planen, eine Möglichkeit zu entwickeln, Nutzerprofilbilder über die API zu synchronisieren.
Ich habe ein Attribut costcenters gesehen. Was macht es?
Tatsächlich haben wir ein zusätzliches Attribut namens costcenters. Die Funktion befindet sich aktuell in einer BETA-Testphase. Weitere Informationen folgen.
Unterstützt Flexopus Identity Provider (IdP) Initiated Single Sign-On Login?
Ja und nein. Wir stellen einen Workaround für IdP-initiierte Logins bereit. Sie müssen den Parameter initiate-sp-login für den RelayState konfigurieren. Dadurch wird die IdP-initiierte Login-Anfrage in einen SP-initiierten Login umgewandelt. Auf diese Weise können wir einen sicheren Login-Prozess gewährleisten. Grund: Ein klassischer IdP-initiierter Login würde Hackern einen Man-in-the-Middle-Angriff ermöglichen. Durch einen SP-initiierten Login können wir dies vermeiden. Dieser Artikel erklärt die Gründe ausführlicher: https://www.identityserver.com/articles/the-dangers-of-saml-idp-initiated-sso
Was sind verschachtelte Gruppen und warum unterstützen Sie diese nicht?
Verschachtelte Gruppen sind Gruppen, die andere Gruppen enthalten, die wiederum weitere Gruppen enthalten können. Theoretisch kann daraus eine unendliche Datenstruktur entstehen. Eine solche Datenstruktur über eine automatisierte Schnittstelle wie SCIM zu unterstützen, ist eine anspruchsvolle Entwicklungsaufgabe. Wir planen, diese Entwicklungsherausforderung anzugehen, sind jedoch noch nicht so weit.
Kann ich SCIM ohne SAML2 verwenden?
Ja, das ist möglich, wir empfehlen es jedoch nicht. Es kann zu vielen komplexen Problemen führen, da SCIM wichtige Felder wie E-Mail, UPN und External ID schreibt. Falls Sie planen, SCIM ohne SAML2 zu verwenden, kontaktieren Sie uns, damit wir Ihr Konzept und Ihre Gründe prüfen können: support@flexopus.com
Kann ich einen neuen SCIM-Token generieren?
Ja, Sie können jederzeit einen neuen Token generieren. Navigieren Sie zum Admin-Dashboard und erstellen Sie einen neuen Token. Ein Pop-up fragt Sie, ob Sie die aktuellen externen Gruppen in interne Gruppen umwandeln möchten.
Wie kann SCIM bestehende Nutzer identifizieren, um doppelte Einträge zu vermeiden?
Zur Nutzeridentifikation folgt Flexopus dieser Priorität:
- SCIM_ID: Prüft, ob ein Nutzer mit der SCIM_ID existiert.
- EXTERNAL_PROVIDER_ID: Wenn keine Übereinstimmung mit SCIM_ID gefunden wird, wird die EXTERNAL_PROVIDER_ID geprüft. Dies ist ein eindeutiger Identifier, der vom Identity Provider (IdP), zum Beispiel Okta, gesetzt wird.
- UPN: Wenn keine Übereinstimmung mit SCIM_ID oder EXTERNAL_PROVIDER_ID gefunden wird, wird der UPN geprüft.
- EMAIL: Wenn keine der vorherigen Zuordnungen greift, wird anhand der E-Mail-Adresse geprüft.
Wenn keine Identifier übereinstimmen, wird ein neuer Nutzer erstellt. Die Erstellung doppelter Nutzer passiert typischerweise nur, wenn die Attributzuordnung inkonsistent ist oder wenn Felder verändert werden, die eindeutig bleiben sollten.