Application Authentication-Sicherheitsanbieter in Jitterbit App Builder
Übersicht
Diese Seite zeigt, wie man den Application Authentication-Sicherheitsanbieter konfiguriert, eine der von App Builder unterstützten Benutzerauthentifizierungsmethoden (siehe Benutzerauthentifizierungsmethoden für einen Überblick über alle Methoden). Bei Application Authentication erstellt man eine benutzerdefinierte Anmeldeseite mit App Builder-Tools, und App Builder verwaltet den Umleitungsfluss: Wenn ein nicht authentifizierter Benutzer versucht, auf eine geschützte Seite zuzugreifen, leitet App Builder ihn zur Anmeldeseite um und bringt ihn nach erfolgreicher Authentifizierung zur ursprünglich angeforderten Seite zurück.
Anders als die lokale Authentifizierung und SSO bietet diese Methode keine integrierten Benutzerverwaltungsfunktionen und erfordert daher erheblich mehr Konfigurationsaufwand. Der Entwickler ist verantwortlich für den Aufbau aller Aspekte des Authentifizierungsflusses, von der Validierung der Anmeldedaten bis zur Benutzerbereitstellung und Gruppenzuweisung. Details zu diesem Prozess finden Sie im Abschnitt Authentifizierungsfluss. Eine detaillierte Anleitung zu einem hypothetischen Szenario finden Sie im Abschnitt Schritt-für-Schritt-Konfigurationsanleitung.
Anwendungsfälle
Application Authentication ist die beste Benutzerauthentifizierungsmethode, wenn:
-
man Anmeldedaten gegen eine Datenquelle seiner Wahl validieren muss, anstatt gegen die Benutzertabelle von App Builder.
-
die Anwendung eine Integration mit einer API eines Drittanbieters erfordert.
-
man einen benutzerdefinierten MFA-Fluss benötigt, wie z. B. die Verifizierung einer Telefonnummer mit einem einmaligen Passcode (OTP).
-
man Benutzern eine halbautonyme Anmeldung ermöglichen möchte.
Authentifizierungsfluss
Application Authentication gibt dem Entwickler vollständige Kontrolle über den Anmeldeprozess. App Builder kümmert sich um die Umleitung von Benutzern zu einer benutzerdefinierten Anmeldeseite und zurück nach erfolgreicher Authentifizierung, aber die gesamte Logik dazwischen muss vom Entwickler entworfen und implementiert werden. Das genaue Verständnis dieses Flusses ist daher essentiell: Es bestimmt, welche Komponenten man implementieren muss und wie sie zusammenhängen.
Der Entwickler ist für die Implementierung der folgenden Aspekte verantwortlich:
-
Validierung von Benutzeranmeldedaten 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 Passwort-Reset- und Kontowiederherstellungsflüssen.
-
Durchsetzung von Passwortrichtlinien.
Wenn ein Benutzer versucht, sich anzumelden, finden folgende Ereignisse nacheinander statt:
-
Initiale Anfrage: Ein nicht authentifizierter Benutzer versucht, auf einen „Deep Link" zu einer Seite in der App zuzugreifen, die eine Anmeldung erfordert. Der Link kann sogar URL-Parameter enthalten.
Beispiel-URLhttps://<your-domain>/app/MyApp/MyProtectedPage?orderId=123 -
Authentifizierungsabfrage: App Builder bestimmt, dass der Benutzer nicht angemeldet ist und die Seite Authentifizierung erfordert. Ein „Challenge" wird eingeleitet.
-
Umleitung zur Anmeldeseite: App Builder leitet den Benutzer zur benutzerdefinierten Anmeldeseite um, die in der LoginPath-Eigenschaft des Application Authentication-Sicherheitsanbieters definiert ist.
Wichtig
Damit dies automatisch geschieht, müssen Sie folgende Schritte durchführen:
-
Legen Sie diesen Sicherheitsanbieter als Standard-Authentifizierung für die Anwendung fest. (Dies überschreibt jeden systemweiten Standard, der in IDE > Sicherheitsanbieter > Konfiguration > Standard-Authentifizierung festgelegt werden könnte.)
-
Aktivieren Sie die Option Bei Challenge umleiten.
-
-
Benutzer meldet sich an: Der Benutzer gibt seine Anmeldedaten auf der benutzerdefinierten Anmeldeseite ein und sendet das Formular ab.
-
Authentifizierungsregel wird ausgeführt: Die benutzerdefinierte Authentifizierungsregel wird ausgeführt, validiert die Anmeldedaten und meldet den Benutzer bei App Builder an.
-
Umleitung zur Originalseite: Nach erfolgreicher Anmeldung leitet App Builder den Benutzer automatisch zur ursprünglich versuchten Seite um, einschließlich aller ursprünglichen URL-Parameter.
Konfigurationsübersicht
Um die Anwendungsauthentifizierung zu konfigurieren, müssen Sie mehrere Komponenten in Ihrer Umgebung und innerhalb Ihrer Anwendung einrichten.
Umgebungskonfiguration
Folgende Elemente müssen in jeder Umgebung konfiguriert werden (z. B. Dev, QA und Production):
-
Login-Seitenanwendung: Eine separate, eigenständige App Builder-Anwendung, die als Ihr Anmeldeformular dient.
-
Sicherheitsanbieter für Anwendungsauthentifizierung: Der Sicherheitsanbieter, der das benutzerdefinierte Anmeldeverhalten definiert.
-
Generische Benutzerkonten: Ein oder mehrere Benutzerkonten in App Builder, denen authentifizierte Benutzer zugeordnet werden.
Anwendungskonfiguration
Sie müssen folgende Elemente in Ihrer Hauptanwendung konfigurieren:
-
Authentifizierungsregel: Eine Geschäftsregel, die die Logik zur Überprüfung von Benutzeranmeldedaten 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 Sie durch die vollständige Konfiguration der Anwendungsauthentifizierung. Um die Anweisungen konkreter zu gestalten, enthält jeder Schritt ein Beispiel basierend auf einem einfachen Szenario: ein Kundenportal, das Benutzeranmeldedaten anhand einer externen Datenquelle (namens Customers) validiert, die E-Mail-Adressen und Passwort-Hashes enthält. Alle authentifizierten Kunden werden einem einzigen generischen App Builder-Benutzerkonto zugeordnet. Ihre Implementierung unterscheidet sich in den Details, aber die Struktur und Reihenfolge der Schritte bleiben gleich.
1. Erstellen Sie die Login-Seitenanwendung
Die Login-Seite ist eine eigenständige App Builder-Anwendung, deren einziger Zweck darin besteht, Benutzeranmeldedaten zu erfassen und zu übermitteln. Sie muss eine separate Anwendung von Ihrer Hauptanwendung sein, damit unauthentifizierte Benutzer sie erreichen können, bevor sie sich anmelden.
Um die Anwendung zu erstellen, folgen Sie den Schritten unter Erstellen Sie eine neue App. Nachdem die Anwendung vorhanden ist, konfigurieren Sie ihre Login-Seite mit den folgenden Anforderungen:
-
Die Seite muss für die Gruppe Anonymous User zugänglich sein. Dies ist erforderlich, da unauthentifizierte Benutzer die Login-Seite erreichen können müssen, bevor sie sich angemeldet haben. Ohne dies schlägt die Challenge-Umleitung fehl.
-
Die Seite muss ein Panel enthalten, das auf einer Tabelle ausgeführt wird, die zur Erfassung der im Formular eingegebenen Anmeldedaten verwendet wird. Die Tabelle Session ist die empfohlene Wahl, da sie Formularwerte für die aktuelle Sitzung speichert, ohne sie zu speichern. Alternativ können Sie eine benutzerdefinierte Tabelle verwenden (z. B. eine
LoginAttempt-Tabelle im Modus Add, damit jeder Anmeldeversuch einen neuen Datensatz einfügt). Ihre Authentifizierungsregel liest die Anmeldedaten aus der Tabelle, die Sie auswählen. -
Die Seite benötigt ein oder mehrere bearbeitbare Felder zur Erfassung von Benutzeranmeldedaten (z. B. Email, User Name oder Phone Number).
-
(Optional) Ein Feld Password mit konfigurierter Passwortvalidierung.
-
Eine Schaltfläche Login, die Ihre Authentifizierungsregel auslöst. Diese Schaltfläche sollte nicht zu einer anderen Seite verlinken; ihr einziger Zweck ist die Ausführung der Regel.
-
(Optional) Links für Forgot Password- oder Sign up-Flows, falls Ihre Anwendung diese benötigt.
Beispielsweise könnte die Login-App den Namen Customer Login tragen und eine einzelne Seite namens Sign In enthalten, die zwei auf der Tabelle Session basierende Anmeldedatenfelder hätte: ein Feld Email und ein Feld Password mit konfigurierter Passwortvalidierung. Eine Schaltfläche Sign In löst dann die Authentifizierungsregel aus.
2. Erstellen Sie den Sicherheitsanbieter für die Anwendungsauthentifizierung
Um den Sicherheitsanbieter für die Anwendungsauthentifizierung zu erstellen, folgen Sie diesen Schritten:
-
Wählen Sie IDE > Security Providers.
-
Klicken Sie auf + Security Provider.
-
Legen Sie auf der Seite Provider folgende Einstellungen fest:
-
Name: Ein Name für Ihren Anbieter (z. B.
CustomerPortalAuth). -
Type: Wählen Sie Application Authentication.
-
Enabled: Lassen Sie dies deaktiviert, bis die gesamte Konfiguration abgeschlossen ist.
-
-
Show on Login Form: Aktivieren Sie dieses Kontrollkästchen.
-
Default Page: Wählen Sie die Standard-Landingpage aus, die ein Benutzer nach der Anmeldung 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 Public gekennzeichnet sein.
-
Sign Out Page: Wählen Sie die Seite aus, zu der Benutzer nach dem Abmelden weitergeleitet werden. Wenn Sie möchten, dass Benutzer nach dem Abmelden zu Ihrer benutzerdefinierten Anmeldeseite zurückkehren, wählen Sie diese Seite hier aus. Die ausgewählte Seite muss in ihren Edge Case-Einstellungen als Public gekennzeichnet sein.
-
Klicken Sie auf Save.
-
Klicken Sie unter Properties auf + Property.
-
Legen Sie im Popup Properties die Werte wie folgt fest:
-
Parameter: Wählen Sie
LoginPathaus. -
Value: Geben Sie den root-relativen Pfad zu Ihrer Login-Page-App ein. Der Pfad muss URL-codiert sein und mit einem
/beginnen.Example/app/Customer%20Login/Sign%20In
-
-
Speichern Sie die Eigenschaften und schließen Sie das Popup.
3. Ein generisches Benutzerkonto konfigurieren
App Builder bietet zwei Hauptansätze für die Verwaltung von Benutzerkonten mit Application Authentication:
-
Zuordnung zu einem generischen Benutzerkonto: Dies umfasst das Erstellen eines oder mehrerer bereits bestehender Benutzerkonten in App Builder, denen authentifizierte externe Benutzer zugeordnet werden. Dies ist besonders nützlich für Szenarien wie semi-anonymer Zugriff (z. B. mit Telefonnummer und OTP), bei denen alle externen Benutzer ein Konto mit niedrigen Privilegien gemeinsam nutzen könnten.
-
Dynamische Benutzerbereitstellung: Dieser fortgeschrittenere Ansatz umfasst das Erstellen von einzelnen Benutzerkonten in App Builder während des Anmeldeprozesses.
Dieser Abschnitt konzentriert sich auf den ersten Ansatz: die Zuordnung zu einem generischen Benutzerkonto. Gehen Sie hierzu wie folgt vor:
-
Wählen Sie IDE > User Management und erstellen Sie ein neues Benutzerkonto (z. B.
PortalUser). Dies ist das Konto, das die Berechtigungen innerhalb der App bereitstellt. -
Weisen Sie den Benutzer den Groups zu, die die erforderlichen Rollen für Ihre Anwendung gewähren.
-
Klicken Sie unter Identities auf + Identity, um eine Identität für diesen Benutzer mit den folgenden Einstellungen zu erstellen:
-
Name: Geben Sie den Wert ein, den Ihre Anwendung verwendet, um die Person zu identifizieren, z. B. ihren Benutzernamen oder ihre E-Mail-Adresse. Dies muss für jeden Benutzer eindeutig sein. App Builder verwendet dies, 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 die zuverlässigste Methode für App Builder, einen Benutzer zu erkennen, auch wenn sich seine E-Mail-Adresse oder sein Benutzername ändert. Wenn Sie diese angeben, verwendet App Builder sie immer zuerst, um den Benutzer zu finden.
-
Im Szenario des Kundenportals heißt das generische Benutzerkonto PortalUser und sein Identitäts-Name ist auf portal.user@example.com eingestellt. Alle Kunden, die sich erfolgreich authentifizieren, werden diesem Konto zugeordnet.
4. Die Authentifizierungsregel erstellen
Sie benötigen eine Geschäftsregel, um die tatsächliche Authentifizierungslogik zu handhaben. Gehen Sie wie folgt vor:
-
Erstellen Sie eine CRUD XP Business Rule, die eine Insert-Aktion ausführt.
-
Legen Sie die Target Data Source auf
Vinylund das Target auf das öffentliche DatenobjektAuthenticatefest. -
Verbinden Sie in der SQL-Anweisung der Regel Ihre externe Tabelle mit Benutzeranmeldeinformationen mit der Tabelle, die von Ihrem Login-Page-Formular verwendet wird (z. B. die Session-Tabelle), um den vom Benutzer eingegebenen Benutzernamen und das Passwort abzurufen.
Wichtig
Verwenden Sie nicht die integrierte User-Tabelle von App Builder zur Passwortvalidierung. Die User-Tabelle macht das Passwortfeld aus Sicherheitsgründen nicht verfügbar, wodurch die Passwortvalidierung ohne ein benutzerdefiniertes Plugin unmöglich ist. Verwenden Sie stattdessen eine externe Datenquelle zum Speichern und Validieren von Benutzeranmeldeinformationen.
-
Ordnen Sie die folgenden vier erforderlichen Spalten dem
Authenticate-Ziel zu:-
AuthenticateID: Eine neue GUID. Verwenden Sie
newUUID(). -
ProviderId: Die ID Ihres Application Authentication-Sicherheitsanbieters.
-
-
AppUserId: Ein Identifikator für den Endbenutzer, der sich anmeldet (z. B. seine E-Mail oder sein Benutzername). Dieser wird für die Überwachung über die Funktion
who('appuserid')verwendet. -
Name: Der Name der generischen Benutzer-Identität, der zugeordnet werden soll (z. B.
portal.user@example.com). Dies kann hartcodiert oder dynamisch basierend auf den Benutzeranmeldedaten bestimmt werden.
Im Kundenportal-Szenario verknüpft die SQL-Regel die Tabelle Session mit der externen Tabelle Customers im Feld Email. Die Spaltenzuordnungen sind: AuthenticateID verwendet newUUID(), ProviderId ist die ID des CustomerPortalAuth-Providers, AppUserId wird dem Feld Email aus der Tabelle Session zugeordnet, und Name wird auf den festen Wert portal.user@example.com gesetzt. Beachten Sie, dass die genaue SQL-Abfrage für die Verknüpfung, einschließlich der Behandlung der Passwortvalidierung, von der Struktur deiner externen Datenquelle abhängt.
5. Automatische Umleitung bei Authentifizierungsaufforderung aktivieren
Um sicherzustellen, dass Benutzer automatisch zu deiner benutzerdefinierten Anmeldeseite weitergeleitet werden, wenn sie auf eine geschützte Seite zugreifen, musst du diese zwei Einstellungen aktivieren:
-
Konfiguriere den Standard-Authentifizierungsprovider:
(Der Standard-Authentifizierungsprovider kann systemweit oder auf Anwendungsebene festgelegt werden. Die Einstellung auf Anwendungsebene setzt die systemweite Option außer Kraft.)
Gehe wie folgt vor, um den Standard auf Anwendungsebene zu konfigurieren:
-
Wähle IDE > Security Providers.
-
Wähle im Panel Security Providers die Option More > Applications (Weitere > Anwendungen).
-
Klicke auf das Symbol Edit (Bearbeiten) für deine Anwendung.
-
Setze Default Authentication auf den erstellten Application Authentication-Provider.
-
Klicke auf Proceed und schließe das Popup.
-
-
Konfiguriere die Umleitung bei Authentifizierungsaufforderung:
-
Klicke auf der Seite Security Providers auf das Symbol Open record (Datensatz öffnen) für deinen Application Authentication-Provider.
-
Klicke unter Provider auf Edit (Bearbeiten).
-
Aktiviere die Option Redirect On Challenge.
-
Klicke auf Save (Speichern).
-
Im Kundenportal-Szenario setzt du beispielsweise Default Authentication auf CustomerPortalAuth für die Anwendung Customer Portal.
6. Aktivieren und testen
Sobald alle obigen Schritte abgeschlossen sind, gehe zurück zu deinem Application Authentication-Sicherheitsprovider in der IDE und aktiviere ihn. Du kannst nun den gesamten Anmeldeprozess testen.
Benutzer- und Gruppenbereitstellung
Application Authentication behandelt nur den Authentifizierungsschritt. Es erstellt nicht automatisch Benutzerkonten und weist keine Gruppenberechtigung zu. Wenn deine Anwendung erfordert, dass Benutzer nach der Anmeldung bestimmte Zugriffsrechte haben, musst du dies separat konfigurieren.
Ein häufiges Problem nach erfolgreicher Authentifizierung ist, dass Benutzer beim Zugriff auf die Startseite der Anwendung eine Fehlermeldung „Zugriff verweigert" erhalten. Dies tritt auf, wenn das Benutzerkonto (oder das generische Konto, dem es zugeordnet ist) keiner Gruppe mit den erforderlichen Anwendungsberechtigungen zugewiesen wurde.
Um einer Gruppe Zugriff auf eine Anwendung zu gewähren, siehe Gruppenbereitstellung. Du musst Manage Privileges verwenden, um die Anwendung zum Berechtigungssatz der Gruppe hinzuzufügen und dann die entsprechenden Rollen zu gewähren.
Wenn dein Flow auch das programmgesteuerte Erstellen von Benutzerkonten erfordert (z. B. Registrieren neuer Benutzer zum Anmeldezeitpunkt), siehe Benutzer- und Gruppenbereitstellung.
Weiterführende Themen
Link zu einer authentifizierten App mit URL-Parametern
Eine der leistungsstärksten Funktionen dieses Flows ist die Möglichkeit, einem Benutzer einen Link zu einem bestimmten Datensatz oder einer gefilterten Ansicht in deiner App zu senden. Da App Builder die ursprünglich angeforderte URL (einschließlich aller Abfrageparameter) durch den Authentifizierungsprozess beibehält, kannst du Deep Links ohne spezielle Formatierung erstellen. Du kannst einem Benutzer beispielsweise 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 deiner Anmeldeseite weitergeleitet und nach der Anmeldung zur Seite Orders mit automatisch geladener Bestellung 5011 umgeleitet.
Herausforderung manuell auslösen
App Builder fordert unauthentifizierte Benutzer zwar automatisch auf, wenn diese auf eine geschützte Seite zugreifen, aber Sie können diesen Prozess auch manuell über die Logik Ihrer Anwendung auslösen. Dies ist nützlich in Szenarien wie dem Ablauf einer Benutzersitzung oder beim Bereitstellen einer dedizierten Schaltfläche Anmelden in der Kopfzeile Ihrer Anwendung.
Dazu 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 anfügen, wie zum Beispiel einen Mausklick auf eine Schaltfläche.
Manuellen Anmelde-Trigger erstellen
-
Geschäftsregel erstellen: Erstellen Sie eine neue CRUD XP-Geschäftsregel und geben Sie ihr einen aussagekräftigen Namen, z. B.
Manual Login Challenge. -
Regelziel konfigurieren:
-
Setzen Sie die Zieldatenquelle auf
Vinyl. -
Setzen Sie das Ziel auf das öffentliche Datenobjekt
Challenge. -
Setzen Sie die Aktion auf
Insert.
-
-
Provider-ID zuordnen: In der Regelgestaltung müssen Sie nur eine Spalte zuordnen. Ordnen Sie die ID Ihres Authentifizierungsanbieters für Anwendungen der Spalte ProviderId im Ziel
Challengezu. Diese ID finden Sie auf der Seite Sicherheitsanbieter in der IDE. -
Regel auslösen: Fügen Sie diese neue Geschäftsregel an ein Ereignis an. Sie könnten beispielsweise eine Schaltfläche Anmelden zur Kopfzeile Ihrer Anwendung hinzufügen und deren Ereignis
on-clickso konfigurieren, dass die RegelManual Login Challengeausgeführt wird.
Wenn diese Regel ausgeführt wird, leitet App Builder den Benutzer sofort zur Anmeldeseite um, die in LoginPath des Sicherheitsanbieters definiert ist, und behält die aktuelle Seite des Benutzers bei, sodass dieser nach einer erfolgreichen Anmeldung dorthin zurückgeleitet werden kann.