Loading
Erweitern von Salesforce mit Klicks, ohne Code
Einrichten der Authentifizierung für Lightning Out 2.0

Einrichten der Authentifizierung für Lightning Out 2.0

Damit eine externe Anwendung auf Komponenten in einer Lightning Out 2.0-Anwendung zugreifen kann, muss der Endbenutzer in Salesforce authentifiziert sein. Die externe Anwendung muss auch für den Zugriff auf Salesforce-Ressourcen autorisiert sein. Implementieren Sie zum Einrichten der Authentifizierung und Autorisierung einen OAuth 2.0-Flow und konfigurieren Sie eine externe Client-Anwendung in Ihrer Organisation. Konfigurieren Sie dann Ihre externe Anwendung so, dass entweder der Endpunkt der Lightning Out 2.0-Benutzeroberflächenbrücke oder der standardmäßige Salesforce-Benutzeroberflächenbrücken-Endpunkt aufgerufen wird. Der Aufruf generiert zur Laufzeit einen Haustür-URL, der zum Einrichten einer Salesforce-Sitzung für die Lightning Out 2.0-Anwendung verwendet wird.

Erforderliche Editionen

Verfügbarkeit: Lightning Experience

Verfügbarkeit: Professional, Enterprise, Performance, Unlimited, alle Agentforce 1 Edition und Developer Edition

Erforderliche Benutzerberechtigungen
Erstellen von lokalen externen Client-Anwendungen: Erstellen, Bearbeiten und Löschen von externen Client-Anwendungen
Konfigurieren der OAuth-Einstellungen für externe Client-Anwendungen: Erstellen, Bearbeiten und Löschen von externen Client-Anwendungen
Ändern der CORS-Einstellungen: "Alle Daten modifizieren" UND "Anwendung anpassen"
Erstellen und Ändern einer Lightning Out 2.0-Anwendung: Anwendung anpassen

Führen Sie zunächst die Schritte unter Vorbereiten auf das Erstellen einer Lightning Out 2.0-Anwendung aus.

  1. Entwerfen und implementieren Sie einen unterstützten OAuth 2.0-Autorisierungs-Flow.
    Wichtig
    Wichtig Lightning Out 2.0 unterstützt OAuth 2.0-Flows, die ein webbasiertes Zugriffstoken mit Benutzerkontext bereitstellen, einschließlich des Webserver-Flows und des JSON-Webtoken-Bearer-Flows. Der Flow für Client-Anmeldeinformationen wird nicht unterstützt, da er keinen Benutzerkontext bereitstellt. Daher filtert Salesforce den Webumfang aus seinem Zugriffstoken heraus.
  2. Erstellen Sie in Ihrer Organisation eine externe Client-Anwendung mit aktiviertem OAuth.
    Verwenden Sie diese Anweisungen, um sich einzurichten: Erstellen Sie eine externe Client-Anwendung und konfigurieren Sie die OAuth-Einstellungen für die externe Client-Anwendung.
  3. Verwenden Sie in Ihrem EuRH die folgenden OAuth-Einstellungen.
    1. Fügen Sie die Umfänge "Benutzerdaten über Webbrowser (web)" oder "Vollständiger Zugriff (voll)" für OAuth hinzu.
      Wenn Ihr EuRH den JWT-Bearer-Flow verwendet, schließen Sie auch den Umfang "Anforderungen jederzeit durchführen (refresh_token)" ein.
    2. Wenn Ihr EuRH einen der aufgeführten Flows im Abschnitt "Flow-Aktivierung" verwendet, aktivieren und konfigurieren Sie die Einstellungen für diesen Flow.
      Denken Sie daran, dass Lightning Out 2.0 den Flow für Client-Anmeldeinformationen nicht unterstützt.
    3. Im Abschnitt "Sicherheit" können Sie die folgenden Standardeinstellungen ausgewählt lassen: Geheimnis für Webserver-Flow erforderlich, Geheimnis für Aktualisierungstoken-Flow erforderlich und Erweiterung Proof Key for Code Exchange (PKCE) für unterstützte Autorisierungs-Flows erforderlich.
      Lightning Out 2.0 unterstützt auch die Aktualisierungstokenrotation und JWT-basierte Zugriffstoken.
  4. Rufen Sie einen API-Endpunkt der Benutzeroberflächenbrücke über Ihre externe Anwendung auf, um zur Laufzeit einen URL für die Eingangstür abzurufen. Verwenden Sie dazu eine der folgenden Methoden.

Abrufen eines Frontdoor-URLs vom Lightning Out 2.0-Endpunkt

Das Lightning Out 2.0-Servlet erweitert die Benutzeroberflächen-Bridge-API, indem es CORS-Unterstützung bietet, und schränkt den Zugriff auf Salesforce-Ressourcen nur auf Lightning Out 2.0-Anwendungen ein.

Anstelle des standardmäßigen UI Bridge-API-Endpunkt-services/oauth2/singleaccess verwendet das Lightning Out 2.0-Servlet den speziellen Endpunkt-services/oauth2/lightningoutsingleaccess. Dieser Endpunkt wird zu einer Lightning Web Runtime-Anwendung weitergeleitet, die eine gültige Salesforce-Sitzungs-ID (SID) als Cookie festlegt. Die SID wird mit allen künftigen Anforderungen an die Organisation gesendet, sodass sich der Benutzer bei Verwendung der Lightning Out 2.0-Anwendung nicht erneut authentifizieren muss.

Wichtig
Wichtig Stellen Sie vor dem Senden einer Anforderung an den API-Endpunkt der Lightning Out 2.0-Benutzeroberflächenbrücke sicher, dass Ihre Lightning Out 2.0-Anwendung im Lightning Out 2.0-Anwendungs-Manager aktiviert ist. Entsprechende Informationen finden Sie unter Build a Lightning Out 2.0 App.

Senden Sie zum Generieren eines Haustür-URLs über Ihre externe Anwendung eine POST-Anforderung an den https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess-Endpunkt. Fügen Sie Ihre Lightning Out 2.0-Anwendungs-ID und das OAuth 2.0-Zugriffstoken als Anforderungstextparameter hinzu.

Anforderungstextparameter Beschreibung
lightning_out_app_id

Pflichtangabe. Die Lightning Out 2.0-Anwendungs-ID.

Sie finden diese ID auf der Lightning Out 2.0-Anwendungs-Manager-Seite für die Anwendung.

Diese ID entspricht dem Wert des Attributs app-id in der lightning-out-application-Webkomponente. Weitere Informationen zur Lightning Out 2.0-Anwendungskomponente finden Sie im Lightning Web Components Developer Guide unter Grundlegendes zur Lightning Out 2.0-Architektur.

access_token

Pflichtangabe. Das gültige OAuth 2.0-Zugriffstoken aus der ersten Sitzung des Benutzers.

Es kann sich um ein opakes Zugriffstoken oder ein JSON-Webtoken (JWT)-basiertes Zugriffstoken handeln. Das Zugriffstoken muss den Umfang "web" oder "full" aufweisen. Geben Sie in den Einstellungen der externen Client-Anwendung Umfänge für die Anwendung an, die das Zugriffstoken ausgestellt hat.

Der dem Zugriffstoken zugeordnete Benutzer kann nicht über die Berechtigung "Nur API-Benutzer" verfügen.

Im Folgenden finden Sie eine POST-Beispielanforderung, die cURL verwendet.

curl -X POST \
  'https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess' \
--form 'access_token="access-token-value"' \
--form 'lightning_out_app_id="app-id"'

Im Folgenden finden Sie eine weitere POST-Beispielanforderung, die JavaScript verwendet. Stellen Sie sicher, dass die Content-Type als application/x-www-form-urlencoded deklariert ist.

fetch(
    "https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess", 
    {
        method: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        },
        body: "access_token=access-token-value&lightning_out_app_id=app-id"
    }
)
    .then((response) => {
        console.log("Status:", response.status);
        return response.json();
    })
    .then((data) => {
        console.log("Success:", data);
    })
    .catch((error) => {
        console.error("Error:", error);
    });

Bei Erfolg gibt die Benutzeroberflächen-Brücken-API eine JSON-Antwort mit dem Haustür-URL zurück.

HTTP/1.1 200 OK

Content-Type: application/json
Cache-Control: no-cache,must-revalidate,max-age=0,no-store,private
....

{"frontdoor_uri":"https://MyDomainName.my.salesforce.com/secur/frontdoor.jsp?otp=otp_value"}

Wenn dies nicht der Fall ist, gibt die API eine Fehlermeldung zurück. Beschreibungen zu Fehlermeldungen finden Sie unter Generieren eines Frontdoor-URLs zum Herstellen einer Brücke in Benutzeroberflächensitzungen.

Wenn der Haustür-URL zurückgegeben wird, legen Sie das Attribut frontdoor-url für die lightning-out-application-Komponente auf den Wert frontdoor_uri fest. Stellen Sie sicher, dass der frontdoor-url-Attributwert nur eine Zeichenfolge des URLs und nicht die gesamte JSON-Antwort ist.

Tipp
Tipp Informationen dazu, aus welchen HTML-Elementen eine Lightning Out 2.0-Anwendung besteht, einschließlich der lightning-out-application-Komponentendefinition, finden Sie unter Grundlegendes zur Lightning Out 2.0-Architektur.

Nachdem das Attribut frontdoor-url festgelegt wurde, wird eine Lightning Web Runtime-Anwendung geladen und eine gültige Salesforce-Sitzungs-ID festgelegt. Ihre Lightning Out 2.0-Anwendung wird nun auf der externen Hostseite geladen.

Abrufen eines Frontdoor-URLs vom API-Endpunkt der Standard-Benutzeroberflächen-Brücke

Statt den API-Endpunkt der Lightning Out 2.0-Benutzeroberflächenbrücke zu verwenden, können Sie einen URL für die Eingangstür über den standardmäßigen API-Endpunkt der Benutzeroberflächenbrücke abrufenservices/oauth2/singleaccess. Bei dieser Methode müssen Sie Ihren eigenen serverseitigen Autorisierungs-Flow für Ihre externe Anwendung konfigurieren. Diese Methode ermöglicht jedoch eine genauere Kontrolle, wenn Ihr Unternehmen bestimmte Sicherheitsanforderungen erfüllt.

Hinweis
Hinweis Im Gegensatz zum Lightning Out 2.0-Endpunkt unterstützt der standardmäßige API-Endpunkt für die Benutzeroberfläche die im Salesforce-Setup konfigurierten CORS-Einstellungen nicht.

Anweisungen finden Sie unter Generieren eines Frontdoor-URLs zum Herstellen einer Brücke in Benutzeroberflächensitzungen. Fügen Sie den Parameter redirect_uri nicht in Ihre Anforderung ein. Benutzern werden die Lightning Out 2.0-Anwendungskomponenten nicht auf die Salesforce-Startseite geleitet, sondern auf der externen Hostseite.

Wenn der Haustür-URL zurückgegeben wird, legen Sie das Attribut frontdoor-url für die lightning-out-application auf den Wert frontdoor_uri fest. Stellen Sie sicher, dass der frontdoor-url-Attributwert nur eine Zeichenfolge des URLs und nicht die gesamte JSON-Antwort ist.

Nachdem das Attribut frontdoor-url festgelegt wurde, wird eine Lightning Web Runtime-Anwendung geladen und eine gültige Salesforce-Sitzungs-ID festgelegt. Ihre Lightning Out 2.0-Anwendung wird nun auf der externen Hostseite geladen.

 
Laden
Salesforce Help | Article