Anwendung Authentifizierung Sicherheitsanbieter im Jitterbit App Builder
Übersicht
Diese Seite beschreibt, wie der Anwendung Authentifizierung Sicherheitsanbieter konfiguriert wird, eine der von App Builder unterstützten Methoden zur Benutzerauthentifizierung (siehe Benutzerauthentifizierungsmethoden für einen Überblick über alle). Mit der Anwendung Authentifizierung erstellen Sie eine benutzerdefinierte Anmeldeseite mit den Werkzeugen von App Builder, und App Builder verwaltet den Umleitungsfluss: Wenn ein nicht authentifizierter Benutzer versucht, auf eine geschützte Seite zuzugreifen, leitet App Builder ihn zu Ihrer Anmeldeseite weiter und bringt ihn nach einer erfolgreichen Authentifizierung zurück zu der Seite, die er ursprünglich angefordert hat.
Im Gegensatz zur lokalen Authentifizierung und SSO bietet diese Methode keine integrierten Benutzerverwaltungsfunktionen und erfordert daher erheblich mehr Einrichtung. Der Entwickler ist dafür verantwortlich, jeden Aspekt des Authentifizierungsflusses zu erstellen, von der Validierung der Anmeldeinformationen bis zur Benutzerbereitstellung und Gruppenzuweisung. Für Details dazu siehe den Abschnitt Authentifizierungsfluss. Eine detaillierte Schritt-für-Schritt-Anleitung eines hypothetischen Szenarios finden Sie im Abschnitt Schritt-für-Schritt-Konfigurationsanleitung.
Anwendungsfälle
Die Anwendung Authentifizierung ist die beste Methode zur Benutzerauthentifizierung, wenn:
-
Sie Anmeldeinformationen gegen eine Datenquelle Ihrer Wahl validieren müssen, anstatt gegen die Benutzertabelle von App Builder.
-
Ihre Anwendung eine Integration mit einer Drittanbieter-Authentifizierungs-API erfordert.
-
Sie einen benutzerdefinierten MFA-Fluss benötigen, wie z. B. die Verifizierung einer Telefonnummer mit einem einmaligen Passwort (OTP).
-
Sie es Benutzern ermöglichen möchten, sich halb-anonym anzumelden.
Authentifizierungsfluss
Die Anwendung Authentifizierung gibt dem Entwickler die volle Kontrolle über den Anmeldeprozess. App Builder kümmert sich um die Umleitung der Benutzer zu Ihrer benutzerdefinierten Anmeldeseite und zurück nach einer erfolgreichen Authentifizierung, aber die gesamte Logik dazwischen muss vom Entwickler entworfen und erstellt werden. Daher ist es entscheidend, diesen Fluss genau zu verstehen: Er bestimmt, welche Komponenten Sie erstellen müssen und wie sie zusammenpassen.
Der Entwickler ist verantwortlich für die Implementierung der folgenden Punkte:
-
Validierung der Benutzeranmeldeinformationen gegen eine Datenquelle.
-
Implementierung von MFA oder sekundären Authentifizierungsfaktoren, falls erforderlich.
-
Erstellung und Bereitstellung von Benutzerkonten.
-
Zuweisung von Benutzern zu Gruppen und Konfiguration von Berechtigungen.
-
Erstellung von Passwortzurücksetz- und Kontowiederherstellungsabläufen.
-
Durchsetzung von Passwortrichtlinien.
Wenn ein Benutzer versucht, sich anzumelden, erfolgt die folgende Abfolge von Ereignissen:
-
Erster Antrag: Ein nicht authentifizierter Benutzer versucht, auf einen "Deep Link" zu einer Seite innerhalb Ihrer App zuzugreifen, die eine Anmeldung erfordert. Der Link kann sogar URL-Parameter enthalten.
Beispiel-URLhttps://<your-domain>/app/MyApp/MyProtectedPage?orderId=123 -
Authentifizierungsherausforderung: App Builder stellt fest, dass der Benutzer nicht angemeldet ist und dass die Seite eine Authentifizierung erfordert. Es wird eine "Herausforderung" initiiert.
-
Weiterleitung zur Anmeldeseite: App Builder leitet den Benutzer zur benutzerdefinierten Anmeldeseite weiter, die im LoginPath-Eigenschaft Ihres Anwendungs-Authentifizierungs-Sicherheitsanbieters definiert ist.
Wichtig
Damit dies automatisch geschieht, müssen Sie Folgendes tun:
-
Setzen Sie diesen Sicherheitsanbieter als den Standard-Authentifizierungs-Anbieter für Ihre Anwendung. (Dies überschreibt jeden systemweiten Standard, der möglicherweise in IDE > Sicherheitsanbieter > Konfiguration > Standard-Authentifizierung festgelegt ist.)
-
Aktivieren Sie die Option Redirect On Challenge.
-
-
Benutzer meldet sich an: Der Benutzer gibt seine Anmeldeinformationen auf Ihrer benutzerdefinierten Anmeldeseite ein und sendet das Formular ab.
-
Authentifizierungsregel wird ausgeführt: Ihre benutzerdefinierte Authentifizierungsregel wird ausgeführt, überprüft die Anmeldeinformationen und meldet den Benutzer bei App Builder an.
-
Weiterleitung zur ursprünglichen Seite: Nach einer erfolgreichen Anmeldung leitet App Builder den Benutzer automatisch zurück zu der Seite, auf die er ursprünglich zugreifen wollte, einschließlich aller ursprünglichen URL-Parameter.
Konfigurationsübersicht
Um die Anwendungs-Authentifizierung zu konfigurieren, müssen Sie mehrere Komponenten in Ihrer Umgebung und innerhalb Ihrer Anwendung einrichten.
Umgebungsconfiguration
Folgendes muss in jeder Umgebung konfiguriert werden (zum Beispiel Dev, QA und Produktion):
-
Anmeldeseitenanwendung: Eine separate, eigenständige App Builder-Anwendung, die als Ihr Anmeldeformular dient.
-
Anwendungsauthentifizierungs-Sicherheitsanbieter: Der Sicherheitsanbieter, der das benutzerdefinierte Anmeldeverhalten definiert.
-
Generische Benutzerkonten: Ein oder mehrere Benutzerkonten im App Builder, denen authentifizierte Benutzer zugeordnet sind.
Anwendungsconfiguration
Sie müssen diese Elemente in Ihrer Hauptanwendung konfigurieren:
-
Authentifizierungsregel: Eine Geschäftsregel, die die Logik zur Überprüfung der Benutzeranmeldeinformationen enthält.
-
(Optional) Unterstützende Tabellen: Tabellen zur Verwaltung von Benutzersitzungen, Passwörtern und anwendungsspezifischen Benutzerdaten.
Schritt-für-Schritt-Konfigurationsanleitung
Die folgenden Schritte führen durch die vollständige Konfiguration der Anwendungsauthentifizierung. Um die Anweisungen konkreter zu gestalten, enthält jeder Schritt ein Beispiel basierend auf einem einfachen Szenario: einem Kundenportal, das die Benutzeranmeldeinformationen gegen eine externe Datenquelle (genannt Customers) validiert, die E-Mail-Adressen und Passwort-Hashes enthält. Alle authentifizierten Kunden werden einem einzigen generischen App Builder-Benutzerkonto zugeordnet. Ihre Implementierung wird in den Einzelheiten abweichen, aber die Struktur und Reihenfolge der Schritte bleibt gleich.
1. Erstellen Sie die Anmeldeseitenanwendung
Die Anmeldeseite ist eine eigenständige App Builder-Anwendung, deren einziger Zweck es ist, Benutzeranmeldeinformationen zu sammeln und zu übermitteln. Sie muss eine separate Anwendung von Ihrer Hauptanwendung sein, damit nicht authentifizierte Benutzer sie erreichen können, bevor sie sich anmelden.
Um die Anwendung zu erstellen, folgen Sie den Schritten in Eine neue App erstellen. Sobald die Anwendung existiert, konfigurieren Sie ihre Anmeldeseite mit den folgenden Anforderungen:
-
Die Seite muss für die Gruppe Anonymer Benutzer zugänglich sein. Dies ist erforderlich, da nicht authentifizierte Benutzer die Anmeldeseite erreichen müssen, bevor sie sich anmelden. Ohne dies schlägt die Umleitungsherausforderung fehl.
-
Die Seite muss ein Panel enthalten, das von einer Tabelle betrieben wird, die zur Erfassung der im Formular eingegebenen Anmeldeinformationen verwendet wird. Die Session-Tabelle ist die empfohlene Wahl, da sie die Formularwerte für die aktuelle Sitzung speichert, ohne sie dauerhaft zu speichern. Alternativ können Sie eine benutzerdefinierte Tabelle verwenden (zum Beispiel eine
LoginAttempt-Tabelle, die auf Hinzufügen-Modus eingestellt ist, sodass jeder Anmeldeversuch einen neuen Datensatz einfügt). Ihre Authentifizierungsregel liest die Anmeldeinformationen aus der Tabelle, die Sie wählen. -
Die Seite benötigt ein oder mehrere bearbeitbare Felder zur Erfassung der Benutzeranmeldeinformationen (wie E-Mail, Benutzername oder Telefonnummer).
-
(Optional) Ein Passwort-Feld mit konfigurierter Passwortvalidierung.
-
Ein Anmelden-Button, der Ihre Authentifizierungsregel auslöst. Dieser Button sollte nicht mit einer Seite verlinkt sein; sein einziger Zweck ist es, die Regel auszuführen.
-
(Optional) Links für Passwort vergessen oder Registrieren-Flüsse, falls Ihre Anwendung diese benötigt.
Zum Beispiel könnte die Anmelde-App Kundenanmeldung heißen und eine einzelne Seite mit dem Namen Anmelden enthalten, die zwei Anmeldefelder basierend auf der Session-Tabelle hat: ein E-Mail-Feld und ein Passwort-Feld mit konfigurierter Passwortvalidierung. Ein Anmelden-Button löst dann die Authentifizierungsregel aus.
2. Erstellen Sie den Sicherheitsanbieter für die Anwendungsauthentifizierung
Um den Sicherheitsanbieter für die Anwendungsauthentifizierung zu erstellen, befolgen Sie diese Schritte:
-
Wählen Sie IDE > Sicherheitsanbieter.
-
Klicken Sie im Panel Benutzerauthentifizierung auf + Benutzerauthentifizierung.
-
Auf der Seite Anbieter setzen Sie Folgendes:
-
Name: Ein Name für Ihren Anbieter (zum Beispiel
CustomerPortalAuth). -
Typ: Wählen Sie Anwendungsauthentifizierung.
-
Aktiviert: Lassen Sie dies deaktiviert, bis die gesamte Konfiguration abgeschlossen ist.
-
Auf Anmeldeformular anzeigen: Aktivieren Sie dieses Kästchen.
-
Standardseite: Wählen Sie die Standard-Startseite, die ein Benutzer nach dem Anmelden sehen sollte, wenn er ursprünglich nicht versucht hat, auf eine bestimmte Deep-Link-Seite zuzugreifen. Die Seite muss in ihren Edge Case-Einstellungen als Öffentlich markiert sein.
-
-
Abmeldeseite: Wählen Sie die Seite aus, zu der Benutzer nach der Abmeldung weitergeleitet werden. Wenn Sie möchten, dass Benutzer nach der Abmeldung zu Ihrer benutzerdefinierten Anmeldeseite zurückkehren, wählen Sie diese Seite hier aus. Die ausgewählte Seite muss in ihren Edge Case-Einstellungen als Öffentlich markiert sein.
-
Klicken Sie auf Speichern.
-
Unter Eigenschaften klicken Sie auf + Eigenschaft.
-
Im Popup Eigenschaften setzen Sie die Werte wie folgt:
-
Parameter: Wählen Sie
LoginPath. -
Wert: Geben Sie den relativ zum Root-Pfad Ihrer Anmeldeseite-App an. Der Pfad muss URL-kodiert sein und mit einem
/beginnen.Beispiel/app/Customer%20Login/Sign%20In
-
-
Speichern Sie die Eigenschaften und schließen Sie das Popup.
3. Konfigurieren eines generischen Benutzerkontos
App Builder bietet zwei Hauptansätze zur Handhabung von Benutzerkonten mit der Anwendungsauthentifizierung:
-
Zuweisung zu einem generischen Benutzerkonto: Dies beinhaltet die Erstellung eines oder mehrerer bereits vorhandener Benutzerkonten im App Builder, auf die authentifizierte externe Benutzer zugewiesen werden. Dies ist besonders nützlich für Szenarien wie semi-anonyme Zugriffe (zum Beispiel unter Verwendung einer Telefonnummer und OTP), bei denen alle externen Benutzer möglicherweise ein Konto mit niedrigen Berechtigungen teilen.
-
Dynamische Benutzerbereitstellung: Dieser fortgeschrittenere Ansatz beinhaltet die Erstellung von einzelnen Benutzerkonten im App Builder während des Anmeldeprozesses.
Dieser Abschnitt konzentriert sich auf den ersten Ansatz: Zuweisung zu einem generischen Benutzerkonto. Gehen Sie dazu wie folgt vor:
-
Wählen Sie IDE > Benutzerverwaltung und erstellen Sie ein neues Benutzerkonto (zum Beispiel
PortalUser). Dies ist das Konto, das die Berechtigungen innerhalb der App bereitstellt. -
Weisen Sie den Benutzer den Gruppen zu, die die erforderlichen Rollen für Ihre Anwendung gewähren.
-
Unter Identitäten klicken Sie auf + Identität, um eine Identität für diesen Benutzer mit den folgenden Einstellungen zu erstellen:
- Name: Geben Sie den Wert ein, den Ihre Anwendung verwenden wird, um die Person zu identifizieren, z. B. ihren Benutzernamen oder ihre E-Mail-Adresse. Dies muss für jeden Benutzer einzigartig sein. App Builder wird dies verwenden, um das richtige Benutzerkonto zu finden, es sei denn, Sie geben auch einen Wert für Identifier an.
-
Identifier (optional, aber empfohlen): Geben Sie eine permanente, eindeutige ID für diesen Benutzer ein. Dies ist der zuverlässigste Weg für den App Builder, einen Benutzer zu erkennen, selbst wenn sich seine E-Mail-Adresse oder sein Benutzername ändert. Wenn Sie dies bereitstellen, verwendet der App Builder es immer zuerst, um den Benutzer zu finden.
Zum Beispiel wird im Szenario des Kundenportals das generische Benutzerkonto PortalUser genannt und seine Identität Name ist auf portal.user@example.com gesetzt. Alle Kunden, die sich erfolgreich authentifizieren, werden diesem Konto zugeordnet.
4. Erstellen Sie die Authentifizierungsregel
Sie benötigen eine Geschäftsregel, um die tatsächliche Authentifizierungslogik zu handhaben. Um eine einzurichten, folgen Sie diesen Schritten:
-
Erstellen Sie eine CRUD XP Geschäftsregel, die eine Einfügen-Aktion ausführt.
-
Setzen Sie die Ziel-Datenquelle auf
Vinylund das Ziel auf das öffentliche DatenobjektAuthenticate. -
Verbinden Sie in der SQL der Regel Ihre externe Benutzerdatenbanktabelle mit der Tabelle, die von Ihrem Anmeldeformular verwendet wird (zum Beispiel der Session-Tabelle), um den Benutzernamen und das Passwort abzurufen, die der Benutzer eingegeben hat.
Wichtig
Verwenden Sie nicht die integrierte User-Tabelle des App Builders zur Validierung von Passwörtern. Die User-Tabelle gibt das Passwortfeld aus Sicherheitsgründen nicht preis, was eine Passwortvalidierung dagegen ohne ein benutzerdefiniertes Plugin unmöglich macht. Verwenden Sie stattdessen eine externe Datenquelle, um Benutzerdaten zu speichern und zu validieren.
-
Ordnen Sie die folgenden vier erforderlichen Spalten dem Ziel
Authenticatezu:-
AuthenticateID: Eine neue GUID. Verwenden Sie
newUUID(). -
ProviderId: Die ID Ihres Sicherheitsanbieters für die Anwendungsauthentifizierung.
-
AppUserId: Ein Identifikator für den Endbenutzer, der sich anmeldet (zum Beispiel seine E-Mail oder seinen Benutzernamen). Dies wird für die Prüfung über die
who('appuserid')-Funktion verwendet. -
Name: Der Name der Identität des generischen Benutzers, auf den abgebildet werden soll (zum Beispiel
portal.user@example.com). Dies kann fest codiert oder dynamisch basierend auf den Anmeldeinformationen des Benutzers bestimmt werden.
-
Für das Kundenportal-Szenario verbindet die SQL-Abfrage der Regel die Session-Tabelle mit der externen Customers-Tabelle über das Feld Email. Die Spaltenzuordnungen sind: AuthenticateID verwendet newUUID(), ProviderId ist die ID des CustomerPortalAuth-Anbieters, AppUserId wird dem Email-Feld aus der Session-Tabelle zugeordnet, und Name ist auf den festen Wert portal.user@example.com gesetzt. Beachten Sie, dass die genaue SQL-Abfrage für den Join, einschließlich der Handhabung der Passwortvalidierung, von der Struktur Ihrer externen Datenquelle abhängt.
5. Automatische Weiterleitung bei Herausforderung aktivieren
Um sicherzustellen, dass Benutzer automatisch auf Ihre benutzerdefinierte Anmeldeseite weitergeleitet werden, wenn sie auf eine geschützte Seite zugreifen, müssen Sie diese beiden Einstellungen aktivieren:
-
Konfigurieren Sie den Standard-Authentifizierungsanbieter:
(Der Standard-Authentifizierungsanbieter kann systemweit oder auf Anwendungsebene festgelegt werden. Die Einstellung auf Anwendungsebene hat Vorrang vor der systemweiten Option.)
Um den Standard auf Anwendungsebene zu konfigurieren, befolgen Sie diese Schritte:
-
Wählen Sie IDE > Sicherheitsanbieter.
-
Unter Benutzerauthentifizierung wählen Sie Mehr > Anwendungen verwalten.
-
Klicken Sie auf das Bearbeiten-Symbol für Ihre Anwendung.
-
Setzen Sie Standard-Authentifizierung auf den von Ihnen erstellten Anwendungs-Authentifizierungsanbieter.
-
Klicken Sie auf Fortfahren und schließen Sie das Popup.
-
-
Konfigurieren Sie die Weiterleitung bei Herausforderung:
-
Auf der Seite Sicherheitsanbieter klicken Sie auf das Datensatz öffnen-Symbol für Ihren Anwendungs-Authentifizierungsanbieter.
-
Unter Anbieter klicken Sie auf Bearbeiten.
-
Aktivieren Sie die Option Weiterleitung bei Herausforderung.
-
Klicken Sie auf Speichern.
-
Für das Kundenportal-Szenario setzen Sie Standard-Authentifizierung auf CustomerPortalAuth für die Anwendung Customer Portal.
6. Aktivieren und testen
Sobald alle oben genannten Schritte abgeschlossen sind, kehren Sie zu Ihrem Anwendungs-Authentifizierungs-Sicherheitsanbieter in der IDE zurück und aktivieren Sie ihn. Sie können nun den gesamten Anmeldefluss testen.
Benutzer- und Gruppenbereitstellung
Die Anwendungsauthentifizierung behandelt nur den Authentifizierungsschritt. Sie erstellt nicht automatisch Benutzerkonten oder weist Gruppenberechtigungen zu. Wenn Ihre Anwendung erfordert, dass Benutzer nach der Anmeldung spezifische Zugriffsrechte haben, müssen Sie dies separat konfigurieren.
Ein häufiges Problem nach einer erfolgreichen Authentifizierung ist, dass Benutzer beim Versuch, die Startseite der Anwendung zu erreichen, eine Zugriffsverweigerung erhalten. Dies geschieht, wenn das Benutzerkonto (oder das generische Konto, dem es zugeordnet ist) nicht einer Gruppe mit den erforderlichen Anwendungsberechtigungen zugewiesen wurde.
Um einer Gruppe den Zugriff auf eine Anwendung zu gewähren, siehe Gruppenbereitstellung. Sie müssen Berechtigungen verwalten verwenden, um die Anwendung zum Berechtigungsset der Gruppe hinzuzufügen und dann die entsprechenden Rollen zu gewähren.
Wenn Ihr Ablauf auch das programmgesteuerte Erstellen von Benutzerkonten erfordert (zum Beispiel das Registrieren neuer Benutzer zur Anmeldezeit), siehe Benutzer- und Gruppenbereitstellung.
Erweiterte Themen
Link zu einer authentifizierten App mit URL-Parametern
Eine der leistungsstärksten Funktionen dieses Ablaufs ist die Möglichkeit, einem Benutzer einen Link zu einem bestimmten Datensatz oder gefilterten Ansicht innerhalb Ihrer App zu senden. Da der App Builder die ursprünglich angeforderte URL (einschließlich aller Abfrageparameter) während des Authentifizierungsprozesses beibehält, können Sie Deep Links ohne spezielle Formatierung erstellen. Zum Beispiel können Sie einem Benutzer einen Link zu einer bestimmten Bestellung senden: https://<your-domain>/app/MyApp/Orders?Orders.OrderId=5011. Wenn der nicht authentifizierte Benutzer auf diesen Link klickt, wird er zu Ihrer Anmeldeseite weitergeleitet und nach dem Einloggen automatisch zur Orders-Seite mit der Bestellung 5011 weitergeleitet.
Manuell eine Herausforderung auslösen
Während der App Builder nicht authentifizierte Benutzer automatisch herausfordert, wenn sie auf eine geschützte Seite zugreifen, können Sie diesen Prozess auch manuell aus Ihrer Anwendungslogik heraus auslösen. Dies ist nützlich für Szenarien wie das Ablaufen einer Benutzersitzung oder um einen speziellen Anmelden-Button in der Kopfzeile Ihrer Anwendung bereitzustellen.
Um dies zu tun, erstellen Sie eine einfache Geschäftsregel, die einen Datensatz in das öffentliche Datenobjekt Challenge einfügt. Sie können diese Regel dann an ein Ereignis anhängen, wie z. B. einen Button-Klick.
So erstellen Sie einen manuellen Login-Trigger
-
Erstellen Sie eine Geschäftsregel: Erstellen Sie eine neue CRUD XP Geschäftsregel und geben Sie ihr einen beschreibenden Namen, wie z. B.
Manual Login Challenge. -
Konfigurieren Sie das Regelziel:
-
Setzen Sie die Ziel-Datenquelle auf
Vinyl. -
Setzen Sie das Ziel auf das öffentliche Datenobjekt
Challenge. -
Setzen Sie die Aktion auf
Insert.
-
-
Ordnen Sie die Anbieter-ID zu: Im Design der Regel müssen Sie nur eine Spalte zuordnen. Ordnen Sie die ID Ihres Sicherheitsanbieters für die Anwendungsauthentifizierung der ProviderId-Spalte im Ziel
Challengezu. Diese ID finden Sie auf der Seite Sicherheitsanbieter im IDE. -
Triggern Sie die Regel: Hängen Sie diese neue Geschäftsregel an ein Ereignis an. Zum Beispiel könnten Sie einen Login-Button in die Kopfzeile Ihrer Anwendung einfügen und dessen
on-click-Ereignis so konfigurieren, dass die RegelManual Login Challengeausgeführt wird.
Wenn diese Regel ausgeführt wird, leitet der App Builder den Benutzer sofort zur Anmeldeseite weiter, die im LoginPath Ihres Sicherheitsanbieters definiert ist, und bewahrt die aktuelle Seite des Benutzers, damit er nach einer erfolgreichen Anmeldung dorthin zurückkehren kann.