Skip to main content

Single Sign-On

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.

💡
Hinweis: Weitere Informationen finden Sie auf der offiziellen Okta-Website.

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.

App-Integration erstellen

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

SAML 2.0

App name: Flexopus SAML2

Logo:

App visibility: Lassen Sie diese Option deaktiviert.

Klicken Sie auf Next.

Allgemeine Konfiguration

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.

SAML2 SSO-Anbieter erstellen

Kopieren Sie die URLs aus Flexopus in Ihre Okta-Konfiguration:

Entity ID = Audience URL (SP Entity ID)
Callback (ACS) URL
= Single Sign-On URL
Relay State
= Default RelayState
Name ID format
= PERSISTENT
Application username
= Okta username

Klicken Sie auf Continue und gehen Sie zunächst zurück zu Flexopus, um die Konfiguration dort abzuschließen.

URLs konfigurieren

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

Advanced Settings
💡
Hinweis: Start URL ist der standardmäßige Relay State bei Google. Wir müssen diesen Wert setzen, um den IdP-initiierten Login in einen SP-initiierten Login umwandeln zu können. Diese Einstellung ermöglicht den Login, wenn der Nutzer in Google auf die Anwendung klickt, zum Beispiel über die App-Auswahl oben rechts.
💡
Hinweis: Sie können mehrere Single Sign-On-Anbieter gleichzeitig konfigurieren. In den meisten Fällen gibt es nur einen Identity Provider (IdP). Eine Organisation mit mehreren Unternehmen kann jedoch mehrere IdPs haben. Aus diesem Grund gibt es in der URL ein Präfix, um zwischen den SAML2-URLs je IdP zu unterscheiden.

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.

Okta survey

SCHRITT 2 - Attributzuordnung

Klicken Sie auf View SAML setup instructions.

SAML-Einrichtungsanleitung

Konfigurieren Sie die korrekten Attributzuordnungen. Legen Sie die Attribute wie unten aufgeführt fest.

NameNamensformatWertHinweis
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givennameURL Referenceuser.firstnameerforderlich
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressURL Referenceuser.emailerforderlich
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnURL Referenceuser.loginerforderlich
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surnameURL Referenceuser.lastNameerforderlich
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameURL Referenceuser.displayNameerforderlich
departmentBasicuser.departmentoptional
jobtitleBasicuser.titleoptional
Attributzuordnung

Um die Einrichtung abzuschließen, folgen Sie diesen Schritten, um Metadaten mit Flexopus zu teilen:

  1. 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.
  2. Erstellen Sie eine neue, leere XML-Datei auf Ihrem Computer.
  3. Fügen Sie den kopierten Inhalt in diese XML-Datei ein und speichern Sie sie.

Diese Datei dient als Metadatendatei für Flexopus.

Metadatendatei erstellen

SCHRITT 3 - Flexopus konfigurieren

  • Navigieren Sie in Flexopus zu Dashboard > Globale Einstellungen > Authentifizierung.
  • Wählen Sie den neu erstellten SAML2-Anbieter aus.
  • Aktivieren Sie SAML2 SSO.
  • Wählen Sie für die Konfigurationsoption Metadatendatei statt Metadata URL.
  • Laden Sie die Metadatendatei hoch, die Sie aus Okta erstellt haben.
Metadaten-Datei hochladen
  1. Geben Sie den Namen für den SAML2-Login-Button ein, der auf der Login-Seite angezeigt werden soll. Empfehlung: SSO Login.
  2. Optional: Aktivieren Sie die Synchronisierung der Felder, die Sie in den SAML2-Einstellungen konfiguriert haben, zum Beispiel jobtitle oder department.
Felder und Buttonname
  • Legen Sie in den Sicherheitseinstellungen die erlaubten Domains für SSO auf * fest und drücken Sie ENTER. Dadurch kann sich jeder Nutzer anmelden, der in Ihrem Active Directory konfiguriert ist.
  • Standardmäßig werden SAML2 SSO-Nutzer nach 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.
Sicherheitseinstellungen

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.

Zugriffsmanagement

Ö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

💡
WICHTIG! Die benutzerdefinierte Standard-SCIM-Bereitstellung bei Okta funktioniert derzeit nicht wie vorgesehen. Dieses Problem wurde dem technischen Support von Okta gemeldet. Bitte überspringen Sie diese Konfigurationsanleitung und folgen Sie den Schritten im Abschnitt OKTA SCIM-WORKAROUND weiter unten.

Optional können Sie eine Nutzer- und Gruppenbereitstellung zwischen Okta und Flexopus einrichten. Um mit der SCIM-Konfiguration zu beginnen:

  1. Klicken Sie in den App Settings auf Edit.
  2. Folgen Sie den Anweisungen zur SCIM-Einrichtung, um die Bereitstellung zu aktivieren.
App Settings

Wählen Sie: Enable SCIM provisioning

SCIM aktivieren
  • Navigieren Sie in Okta zum Tab Provisioning und klicken Sie auf Edit.
  • Öffnen Sie Ihr Flexopus Admin-Dashboard: Dashboard > Globale Einstellungen > Integrationen.
  • Suchen Sie die SCIM Connector Base URL und generieren Sie den SCIM API-Token zur Autorisierung.
Konfigurationsparameter

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:

Testergebnis

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.

Synchronisierungsoptionen bearbeiten

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

Attributzuordnung

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.

Attribut bearbeiten

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:

💡
WICHTIG! Bei Okta werden Nutzergruppen bidirektional synchronisiert. Mit anderen Worten: Sie können Gruppen von Okta an Flexopus senden, aber auch von Flexopus an Okta. Den zweiten Fall benötigen wir nicht, können ihn aber auch nicht verhindern. Zumindest haben wir keine entsprechende Einstellung in Okta gefunden. Aus diesem Grund sollten Sie vor der Konfiguration wie folgt vorgehen:

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.
Anwendung hinzufügen

Sie können die Anwendung umbenennen: Flexopus SCIM App

Anwendung umbenennen

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.

SCIM konfigurieren
  • Gehen Sie in Ihrem Flexopus Dashboard zu Dashboard > Globale Einstellungen > Integrationen.
  • Suchen Sie die Base URL und klicken Sie auf Generate 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}

💡
Wichtig! Sie müssen auch den Teil „Bearer “ einfügen.

Klicken Sie auf Test connection.

SCIM-Basisparameter konfigurieren

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

Synchronisierungsoptionen

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

Attributzuordnung

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.

Attribut bearbeiten

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.

💡
Wichtig! Flexopus unterstützt nur flache Gruppen. Bei verschachtelten Gruppen synchronisieren wir nur die erste Ebene. Für die Bereitstellung verschachtelter Gruppen empfehlen wir die Verwendung verknüpfter dynamischer Gruppen. Dynamische Gruppen, die auf verschachtelte Gruppen verweisen, werden abgeflacht.
Synchronisierte Gruppen

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Eine einzelne Zugriffsgruppe erstellen (AllFlexopusUsers):
    1. Synchronisieren Sie nur die Gruppe AllFlexopusUsers, die alle Nutzer enthält, die Flexopus-Zugriff benötigen.
    2. Durch die Bereitstellung dieser Gruppe werden alle darin enthaltenen Nutzer mit Flexopus synchronisiert, auch wenn sie sich noch nicht angemeldet haben.
  2. Nutzerverwaltung in Flexopus:
    1. Flexopus-Administratoren können lokal zusätzliche Gruppen erstellen und verwalten.
    2. Flexopus-Administratoren erhalten mehr Flexibilität, ohne für jede Änderung die IT einbeziehen zu müssen. Dadurch wird der Administrationsaufwand reduziert.
  3. Anwendungsfälle:
    1. 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.
    2. 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:

  1. Öffnen Sie Okta und deaktivieren Sie die SCIM-Integration.
  2. Navigieren Sie in Flexopus als Administrator zu Dashboard > Globale Einstellungen > Integrationen.
  3. Klicken Sie auf Token löschen, um die Deaktivierung abzuschließen.
Token löschen

Wenn Sie in Flexopus auf Token löschen klicken:

  1. Ein Pop-up erscheint und fordert Sie auf, die Gruppen zu trennen.
  2. Aktivieren Sie diese Option, um die aktuellen externen schreibgeschützten Gruppen in interne Gruppen umzuwandeln, sodass Sie diese anschließend bearbeiten können.
Externe Gruppen trennen

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:

  1. SCIM_ID: Prüft, ob ein Nutzer mit der SCIM_ID existiert.
  2. 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.
  3. UPN: Wenn keine Übereinstimmung mit SCIM_ID oder EXTERNAL_PROVIDER_ID gefunden wird, wird der UPN geprüft.
  4. 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.