Entra ID SCIM API
Einführung
Sie können Microsoft Entra ID, früher bekannt als Microsoft Azure AD, über föderierte Authentifizierung oder mithilfe von SCIM (System for Cross-domain Identity Management) integrieren. Dadurch können sich Nutzer mit ihren bestehenden Azure AD-Zugangsdaten bei Flexopus anmelden.
Flexopus kann über föderierte Authentifizierung mit einer Instanz von Microsoft Azure Active Directory (Azure AD) verbunden werden. Dabei handelt es sich um einen Prozess, bei dem der Benutzername und das Passwort eines Kontos aus einem ersten Verzeichnissystem so bereitgestellt werden, dass derselbe Benutzername und dasselbe Passwort auch in anderen Systemen verwendet werden können.
Welche Vorteile bietet SCIM?
Mit der SCIM-Schnittstelle können Sie die Nutzerverwaltung zwischen Ihrem Identity Provider (IdP) und uns als Service Provider (SP) besser automatisieren. Daraus ergeben sich die folgenden Vorteile:
- Nutzergruppen synchronisieren und bereitstellen
Sie können Nutzergruppen extern in Ihrem IdP verwalten. Über SCIM können externe Gruppen einschließlich ihrer Mitglieder an Flexopus gesendet werden. Diese Gruppen werden in Flexopus als „Read-only“-Gruppen erstellt und können nur extern über Ihren IdP verwaltet werden. Anschließend können die Gruppen normal für die Verwaltung der Arbeitsplätze verwendet werden. Alle Änderungen in diesen Gruppen werden innerhalb von 40 Minuten an Flexopus gesendet. - Nutzerprofile synchronisieren und bereitstellen
Nutzerprofile sowie geänderte und zugehörige Attribute, zum Beispiel Name, Jobtitel, Abteilung usw., können automatisch synchronisiert werden. Jede Änderung in Ihrem IdP wird in der Regel innerhalb von 40 Minuten an Flexopus gesendet, sodass Nutzerprofile dauerhaft aktuell gehalten werden können. Im Gegensatz zu SAML2 läuft der Datenaustausch während der Sitzungszeit und nicht nur während des Loginversuchs. - Nutzerprofile vor dem ersten Login
Durch die Kombination der beiden Vorteile können Sie grundsätzlich eine Gruppe in Ihrem IdP erstellen. Sie können diese Gruppe Flexopus zuweisen. Durch diese Zuweisung können auch die Mitglieder der Gruppe bereits vor dem ersten Login an Flexopus gesendet werden.
Beispiel: Neu eingestellte Mitarbeitende können vor dem ersten Arbeitstag an Flexopus gesendet werden, damit die zuständigen Kolleginnen und Kollegen lokale Nutzergruppen in Flexopus gegebenenfalls bereits verwalten können. - Nutzerprofile automatisch archivieren und löschen
Die bereitgestellten Nutzerprofile einschließlich Gruppenzuweisungen können außerdem automatisch deaktiviert bzw. archiviert werden, falls ein Mitarbeitender den Zugriff auf die Anwendung verliert. Der IdP meldet Flexopus über SCIM, dass der Mitarbeitende keinen Zugriff mehr auf die Anwendung hat. Dies kann verschiedene Gründe haben: Der Mitarbeitende wurde entlassen oder der IT-Administrator hat die Berechtigung absichtlich oder unbeabsichtigt entzogen. Dadurch wird der Mitarbeitende in Flexopus archiviert. Mit einer zusätzlichen Datenschutzeinstellung können archivierte Nutzer anschließend nach X Tagen automatisch aus Flexopus gelöscht werden.
Einrichtungsanleitung

SCHRITT 1 - SCIM API konfigurieren
Öffnen Sie Ihr Azure Active Directory als Administrator. Besuchen Sie die Seite Unternehmensanwendungen und wählen Sie die Flexopus-Anwendung aus, die für die SAML2 SSO-Verbindung verwendet wird. In unserem Beispiel haben wir sie Flexopus SSO / SCIM genannt.
Öffnen Sie den Menüpunkt Bereitstellung und klicken Sie auf den Button Erste Schritte.

Wählen Sie statt des manuellen Bereitstellungsmodus die Option Automatisch aus.

Öffnen Sie Ihr Flexopus Dashboard als Administrator und gehen Sie zu Dashboard > Globale Einstellungen > Integrationen. Dort sehen Sie die Tenant URL und können das SCIM API-Token generieren.

Kopieren Sie die Tenant URL und das Secret Token und fügen Sie diese im Active Directory im Abschnitt Admin-Anmeldedaten ein. Klicken Sie anschließend auf den Button Verbindung testen. Oben rechts sollten Sie eine Erfolgsmeldung erhalten.

SCHRITT 2 - Attributzuordnung
Richten Sie die Attributzuordnungen ein. Öffnen Sie das Dropdown Mappings und wählen Sie die Option Microsoft Entra ID-Nutzer bereitstellen aus.

Die Standardeinstellung der SCIM API sendet mehr Daten, als wir benötigen. Löschen Sie die unten aufgeführten nicht benötigten Felder. Speichern Sie Ihre Änderungen, nachdem Sie die Attribute bearbeitet haben.


SCHRITT 3 - Datenvalidierung
Als Nächstes müssen Sie die Nutzerprofile validieren, die über diese automatisierte Schnittstelle an Flexopus gesendet werden. Flexopus erwartet Nutzerprofile mit einer E-Mail-Adresse. In manchen Fällen gibt es jedoch Nutzerprofile im Active Directory, die keine E-Mail-Adresse haben. Die Synchronisierung dieser Profile schlägt fehl. Um dies zu vermeiden, müssen ungültige Nutzerprofile gefiltert werden.
Wählen Sie die Option Source Object Scope > All records aus, um einen Scoping-Filter zu erstellen. Klicken Sie anschließend auf die Option Neue Filtergruppe hinzufügen.

Geben Sie in diesem Fenster den folgenden Filter ein:
- Quellattribut:
mail - Operator:
IS NOT NULL
Benennen Sie den Filter als: E-Mail-Validierung. Speichern Sie die Einstellungen. Sie müssen mehrfach speichern.

Die finalen Einstellungen für die Nutzereinstellungen sehen wie folgt aus:

SCHRITT 4 - Benachrichtigungs-E-Mail
Gehen Sie zu den allgemeinen Bereitstellungseinstellungen und wählen Sie die Option E-Mail-Benachrichtigung senden, wenn ein Fehler auftritt. Geben Sie die E-Mail-Adresse scim@flexopus.com ein. Über diese E-Mail-Adresse können wir informiert werden, wenn Microsoft Ihre Integration blockiert.
Die SCIM API ist eine automatisierte API, die viele Anfragen zwischen Flexopus und Microsoft verursacht. Wenn sich Ihre Konfiguration ändert, zum Beispiel wenn Flexopus auf eine andere Domain verschoben wird, können die Anfragen nicht verarbeitet werden. In diesem Fall blockiert bzw. stoppt Microsoft die Integration. Die einzige Möglichkeit, über diese Blockierung informiert zu werden, ist diese E-Mail-Adresse. Selbstverständlich können Sie auch Ihre interne IT-E-Mail-Adresse eintragen, um über diese Benachrichtigungen informiert zu werden. Speichern Sie die Änderungen.

SCHRITT 5 - Gruppen hinzufügen
Bevor Sie die Bereitstellung starten, müssen Sie konfigurieren, welche Gruppen und Nutzer bereitgestellt werden sollen.
Um Gruppen und Nutzer zuzuweisen, navigieren Sie zum Menü-Tab Nutzer und Gruppen und klicken Sie oben auf den Button Nutzer/Gruppe hinzufügen. Beachten Sie die goldene Regel: Nur explizit zugewiesene Gruppen und Nutzer werden bereitgestellt. Sie haben möglicherweise mehr Gruppen in Ihrem Active Directory. Dennoch wird nur die Auswahl für diese Unternehmensanwendung verwendet.


SCHRITT 6 - Bereitstellung starten
Nun haben Sie alle erforderlichen Optionen für die SCIM API konfiguriert. Navigieren Sie zum Hauptbildschirm der Bereitstellung und klicken Sie auf den Button Bereitstellung starten.

Wie Sie auf der rechten Seite sehen können, wird die Bereitstellung spätestens innerhalb von 40 Minuten ausgeführt. Das bedeutet, dass Sie keine sofortige Änderung in Flexopus erwarten sollten. Um zu testen, ob die Bereitstellung gestartet wurde, können Sie die Protokolle im Tab Bereitstellungsprotokolle anzeigen prüfen.
SCHRITT 7 - Testen
Nachdem Sie eine Gruppe zugewiesen und die Bereitstellung gestartet haben, können Sie die folgenden Änderungen in Flexopus erwarten. Die Gruppen werden mit einer externen Markierung in Flexopus bereitgestellt. Das bedeutet, dass Sie die Gruppen lokal in Flexopus nicht bearbeiten können. Sie können die Namen nicht ändern, keine Nutzer hinzufügen und keine Nutzer aus der Gruppe löschen. Die zentrale Datenquelle ist die Gruppenstruktur in Ihrem Active Directory.

Sie können die Gruppen für die Zugriffsverwaltung innerhalb von Flexopus ähnlich wie andere interne oder Systemgruppen verwenden.
Weitere Informationen zu Gruppen finden Sie hier:

Zusätzliche Attribute
Flexopus unterstützt zusätzliche Attribute, die synchronisiert werden können, zum Beispiel Extension Attributes oder Kostenstellen.
Kostenstelle
TODO

ExtensionAttributes[1-10]
Flexopus unterstützt bis zu zehn zusätzliche Attribute, die aus externen Quellen synchronisiert werden. Sie heißen in Flexopus extensionAttribute1, extensionAttribute2, …, extensionAttribute10.
Fügen Sie die Extension Attributes als Attributzuordnung zur SCIM-Bereitstellung hinzu, indem Sie die folgenden Schritte ausführen.
Klicken Sie in der SCIM-Nutzerattributzuordnung auf den Button Erweiterte Optionen anzeigen und wählen Sie die Option Attributliste für customappsso bearbeiten aus.

Flexopus erwartet die Attribute unter dem Namen extensionAttribute[1-10]. Dies muss zur Attributzuordnung hinzugefügt werden, damit Sie es später als Zielattribut auswählen können.

Nachdem Sie das neue benutzerdefinierte Zielattribut gespeichert haben, gehen Sie zur Attributzuordnung und fügen Sie eine neue Zuordnung hinzu.

Wählen Sie aus, welches Quellattribut mit diesem Zielattribut synchronisiert werden soll.

Die Information wird im Nutzerprofil in Flexopus als verborgenes Feld gespeichert. Die CSV-Exporte und die REST API-Endpunkte enthalten dieses Feld, zum Beispiel dieser Endpunkt: https://flexopus.com/api/docs/#endpoints-GETapi-v1-bookings]
Sie können die Synchronisierung mit einer On-Demand-Bereitstellung testen.
Best Practices für die Nutzung von SCIM
Die Tatsache, dass Sie Gruppen aus Ihrem Active Directory mit Flexopus synchronisieren können, bedeutet nicht, dass Sie alle Gruppen über SCIM verwalten sollten. Wir empfehlen, nur eine begrenzte Anzahl von Gruppen zu synchronisieren, für die es auch einen konkreten Grund zur Synchronisierung gibt. Das Active Directory ist üblicherweise der Bereich der IT-Abteilung zur Verwaltung des Zugriffs auf Anwendungen und Dienste und nicht zwingend zur Verwaltung von Arbeitsplatzzuweisungen auf Nutzerebene.
Verwalten und pflegen Sie Gruppen im Active Directory, die potenziell auch für andere Anwendungsfälle genutzt werden können. Eine Gruppe wie AllCompanyUsers kann im Active Directory verwaltet werden. Eine Gruppe wie DepartmentAWorkstationGroup2 könnte hingegen direkt in Flexopus verwaltet werden.
Entscheiden Sie, wer die Gruppe für die Arbeitsplatzzuweisung pflegen soll. Liegt die Verantwortung bei der IT-Abteilung oder beim Facility Management, den Abteilungen oder HR? Diejenigen, die die Gruppen verwalten sollen, sollten Zugriff auf die Gruppenverwaltung haben. In den meisten Fällen hat die IT Zugriff auf das Active Directory, andere Bereiche jedoch nicht. Wir sollten vermeiden, für jede Gruppenänderung Support-Tickets erstellen zu müssen.
Vorschlag - Eine externe Gruppe
Eine einfache Lösung besteht darin, nur eine Gruppe zu synchronisieren. Nennen wir diese Gruppe AllFlexopusUsers. Diese Gruppe enthält die Nutzer, die Zugriff auf Flexopus haben sollen.
Sobald Sie die Gruppe AllFlexopusUsers verbunden und die Bereitstellung gestartet haben, werden die Gruppe selbst und alle Nutzer innerhalb der Gruppe mit Flexopus synchronisiert, auch wenn sie sich noch nicht bei Flexopus angemeldet haben.
Auf diese Weise können wir alle Nutzer in Flexopus bereitstellen und die Flexopus-Administratoren können sie lokal in Flexopus nach Bedarf gruppieren. Sie können Flexopus-Administratoren die Berechtigung geben, andere Gruppen in Flexopus zu erstellen und zu verwalten. So können Sie als IT-Administrator die Verwaltung der Gruppen an diejenigen auslagern, die tatsächlich an der Gruppenverwaltung interessiert sind. Im AD müssen Sie nur eine Gruppe verwalten.
ANWENDUNGSFALL - Neuer Mitarbeitender startet (Erstellung durch Bereitstellung)
Wenn ein neuer Mitarbeitender am ersten Tag des nächsten Monats startet, muss dieser Mitarbeitende ab dem ersten Tag die richtige Ressource buchen können. Das bedeutet, dass der Mitarbeitende bereits vor dem ersten Login die korrekten Gruppen für Buchungen haben sollte. Wenn wir den Nutzer im Rahmen des Onboarding-Prozesses zur Gruppe AllFlexopusUsers hinzufügen, wird das Nutzerprofil automatisch in Flexopus erstellt. Nach der Erstellung können die lokalen Flexopus-Administratoren das Nutzerprofil den lokalen Gruppen zuweisen.
ANWENDUNGSFALL - Mitarbeitender verlässt das Unternehmen (Löschung durch Bereitstellung)
Wenn ein Mitarbeitender die Organisation verlässt, löschen Sie üblicherweise das Nutzerprofil aus Ihrem Active Directory oder entfernen den Nutzer zumindest aus der Gruppe AllFlexopusUsers. Über die Integration erhalten wir zwei Anfragen:
- Nutzer aus Gruppe
AllFlexopusUsersgelöscht - Nutzer hat keinen Zugriff auf die Anwendung
Die zweite Anfrage deaktiviert den Nutzer im Flexopus-Nutzerverzeichnis und der Nutzer kann sich nicht mehr anmelden. Das SAML2 Single Sign-On funktioniert nicht mehr und der Nutzer wird in Flexopus ebenfalls auf den Status deaktiviert gesetzt. Im Löschkonzept erfahren Sie, wie deaktivierte Nutzer automatisch gelöscht werden können:
TODO - Löschkonzept
Wie kann ich die SCIM-Integration deaktivieren?
Sie können die SCIM-Integration deaktivieren, indem Sie Ihr Azure Active Directory öffnen, die Unternehmensanwendung Flexopus SSO / SCIM aufrufen und auf den Button Bereitstellung stoppen klicken:

Navigieren Sie anschließend in Flexopus als Administrator zu Dashboard > Globale Einstellungen > Integrationen und klicken Sie auf den Button Token löschen.

Es öffnet sich ein Popup, in dem Sie gefragt werden, ob Sie die Gruppen trennen möchten. Aktivieren Sie diese Option. Dadurch werden die aktuellen externen Read-only-Gruppen in interne Gruppen umgewandelt, sodass Sie sie später bearbeiten können.

Fertig. Die SCIM-Integration ist gelöscht.
Fehlerbehebung / FAQ
Was sind verschachtelte Gruppen und warum werden sie nicht unterstützt?
Verschachtelte Gruppen sind Gruppen, die andere Gruppen enthalten, die wiederum weitere Gruppen enthalten können. Theoretisch könnte dies ein unendlicher Datenbaum sein. Die Unterstützung einer solchen Datenstruktur über eine automatisierte Schnittstelle wie SCIM ist eine anspruchsvolle Entwicklungsaufgabe. Wir planen, diese Entwicklungsherausforderung anzugehen, sind jedoch noch nicht so weit. Bitte verwenden Sie vorerst dynamische Gruppen, die mit verschachtelten Gruppen verknüpft sind.
Kann ich SCIM ohne SAML2 verwenden?
Ja, das ist möglich, aber wir empfehlen es nicht. Es kann zu vielen komplexen Problemen führen, da SCIM wichtige Felder schreibt, zum Beispiel: E-Mail, UPN und External ID. Wenn 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 ein neues SCIM-Token generieren?
Ja, Sie können jederzeit ein neues Token generieren. Navigieren Sie zum Admin-Dashboard und erstellen Sie ein neues Token. Ein Popup fragt Sie, ob Sie die aktuellen externen Gruppen in interne Gruppen umwandeln möchten.
Was passiert, wenn ich querverweise und eine bereits bestehende Unternehmensanwendung sowie SCIM-Konfiguration wiederverwende?
SCIM verwendet eine eigene ID für jeden Nutzer und SCIM merkt sich diese ID. Wenn Sie SCIM mit einer Anwendung verknüpft haben und diese Verknüpfung auf eine andere Flexopus-Anwendung ändern, zum Beispiel beim Wechsel von Demo zu Produktion, beginnt SCIM im Hintergrund, Nutzer zu überschreiben. Die SCIM_ID eines Nutzers in der alten Anwendung ist nicht dieselbe wie in der neuen Anwendung. Dadurch entsteht ein Nutzer-Querverweis: Nutzer A mit SCIM ID u10 kann sich in der neuen Anwendung als Nutzer B u10 anmelden. Die einzige Möglichkeit, dieses Problem zu beheben, besteht darin, die Anwendung aus einem Backup wiederherzustellen oder die gesamte Nutzerbasis zurückzusetzen.
Wie kann SCIM bestehende Nutzer identifizieren, um doppelte Einträge zu vermeiden?
Ein Nutzer hat 4 Arten von Identifikationsfeldern, die verwendet werden. Die Priorität der Identifikation lautet: SCIM_ID, EXTERNAL_PROVIDER_ID, UPN, EMAIL. Zunächst prüft SCIM, ob ein Nutzer mit der SCIM_ID existiert. Falls nicht, prüft es die EXTERNAL_PROVIDER_ID. Diese ist eine eindeutige ID, die vom Identity Provider (IdP), in diesem Fall von Microsoft, gesetzt wird. Wenn die EXTERNAL_PROVIDER_ID mit keinem bestehenden Nutzer übereinstimmt, prüfen wir den UPN und anschließend die EMAIL. Wenn keines der Felder übereinstimmt, erstellen wir einen neuen Nutzer. Das bedeutet, dass doppelte Nutzer nur entstehen können, wenn die Attributzuordnung durcheinandergebracht wird oder Felder, die eindeutig sein sollten, aus irgendeinem Grund geändert werden.



