Sie befinden sich hier:
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.
-
Entwerfen und implementieren Sie einen unterstützten OAuth 2.0-Autorisierungs-Flow.
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. -
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.
-
Verwenden Sie in Ihrem EuRH die folgenden OAuth-Einstellungen.
-
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.
-
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.
-
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.
-
Fügen Sie die Umfänge "Benutzerdaten über Webbrowser (web)" oder "Vollständiger Zugriff (voll)" für OAuth hinzu.
-
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 Haustür-URLs vom Lightning Out 2.0-Endpunkt.
Diese Methode bietet nur Zugriff auf Lightning Out 2.0-Ressourcen. Sie erfordert fast kein zusätzliches Setup und bietet integrierten Cross-Origin Resource Sharing (CORS)-Schutz. Wenn Sie diese Methode verwenden möchten, müssen Sie der Salesforce CORS-Zulassungsliste Ihren Domänennamen für externe Anwendungen hinzufügen. Entsprechende Informationen finden Sie unter Vorbereiten auf das Erstellen einer Lightning Out 2.0-Anwendung.
-
Abrufen eines Frontdoor-URLs vom standardmäßigen API-Endpunkt der Benutzeroberflächen-Brücke.
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.
-
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.
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 |
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 " 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.
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.
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.
