Loading
Identifizieren der Benutzer und Verwalten des Zugriffs
Aktualisierungstoken-Flow der OAuth 2.0-Hybridanwendung

Aktualisierungstoken-Flow der OAuth 2.0-Hybridanwendung

Mit dem Aktualisierungstoken-Flow der OAuth 2.0-Hybridanwendung können Hybridanwendungen Websitzungen nach Ablauf der ersten Sitzung direkt verwalten. Wenn der Autorisierungsserver ein neues Zugriffstoken unter Verwendung des Gewährungstyps "hybrid_refresh" ausstellt, fügt er die Sitzungs-IDs (SID) der angeforderten Domänen in seine Antwort ein. Die Hybridanwendung kann Lightning-, Visualforce- und Inhaltsdomänencookies setzen und mithilfe von "frontdoor.jsp" das Zugriffstoken in eine Websitzung integrieren, um so Unterbrechungen zu vermeiden. Der Aktualisierungstoken-Flow der Hybridanwendung wird zur Erneuerung von Token verwendet, die vom OAuth 2.0-Webserver-Flow, dem OAuth 2.0-Benutzeragenten-Flow oder dem Token-Flow der OAuth 2.0-Hybridanwendung ausgestellt wurden.

Erforderliche Editionen

Verfügbarkeit: Salesforce Classic (nicht in allen Organisationen verfügbar) und Lightning Experience
Verfügbarkeit: Alle Editionen
Hinweis
Hinweis Die Erstellung verbundener Anwendungen ist ab der Version Spring '26 eingeschränkt. Sie können vorhandene verbundene Anwendungen während und nach der Version Spring '26 weiterhin verwenden. Es wird jedoch empfohlen, stattdessen externe Client-Anwendungen zu verwenden. Wenn Sie weiterhin verbundene Anwendungen erstellen müssen, wenden Sie sich an den Salesforce-Support.

Weitere Details finden Sie unter Neue verbundene Anwendungen können in der Version Spring '26 nicht mehr erstellt werden.

Nachdem eine Hybridanwendung über eine verbundene Anwendung ein Zugriffstoken erhalten hat, kann sie unter Verwendung eines Aktualisierungstokens eine neue Sitzung abrufen, wenn die aktuelle Sitzung abläuft. Der Sitzungs-Timeout-Wert der verbundenen Anwendung legt fest, wann ein Zugriffstoken nicht mehr gültig ist und wann ein neues beantragt werden muss.

Aktivieren Sie für mehr Sicherheit die Aktualisierungstokenrotation in Ihrer verbundenen Anwendung oder externen Client-Anwendung, wenn Sie ihre OAuth-Einstellungen konfigurieren. Wenn diese Einstellung aktiviert ist, stellt die verbundene Anwendung bei jedem Aufruf des Flows ein neues Aktualisierungstoken zusammen mit dem Zugriffstoken aus. Das vorherige Aktualisierungstoken wird automatisch ungültig. Durch die Aktualisierungstokenrotation wird sichergestellt, dass jedes Aktualisierungstoken nur einmal pro Benutzer verwendet wird, sodass Aktualisierungstoken nicht zum Abrufen neuer Zugriffstoken verwendet werden können. Wenn jemand versucht, ein abgelaufenes Aktualisierungstoken zu verwenden, macht Salesforce das aktuelle Aktualisierungstoken und alle zugehörigen Zugriffstoken ungültig. Zum Abrufen eines neuen Aktualisierungstokens muss der Client einen neuen Flow vollständig ausführen.

Hinweis
Hinweis Für den Aktualisierungstoken-Flow der Hybridanwendung wird die Aktualisierungstokenrotation nur unterstützt, wenn Sie opake Zugriffstoken ausstellen. Wenn Ihre verbundene Anwendung oder externe Client-Anwendung so konfiguriert ist, dass JWT-basierte Zugriffstoken ausgestellt werden, gibt der Aktualisierungstoken-Flow der Hybridanwendung den Fehler invalid_grant zurück, wenn Sie versuchen, ein Token anzufordern.

Der Aktualisierungstoken-Flow der Hybridanwendung umfasst die folgenden Schritte.

Wichtig
Wichtig Übergeben Sie beim Entwickeln von OAuth-Integrationen immer vertrauliche Informationen im Text einer POST-Anforderung oder in einer Anforderungskopfzeile. Verwenden Sie keine GET-Parameter in der URL-Abfragezeichenfolge, um vertrauliche Informationen weiterzugeben. Zu den vertraulichen Informationen zählen Benutzernamen, Kennwörter, OAuth-Token, Client-Geheimnisse und alle personenbezogenen Informationen. Weitere Informationen zu bewährten Vorgehensweisen für die Sicherheit finden Sie im Secure Coding Guide unter Speichern vertraulicher Daten.

Anfordern eines neuen Zugriffstokens

Die Anwendung kann über das Aktualisierungstoken ein neues Zugriffstoken abrufen, indem sie eine POST-Anforderung für Aktualisierungstoken an den Salesforce-Token-Endpunkt sendet.

Die verbundene Anwendung kann die client_id und das client_secret im Text der POST-Anforderung für Aktualisierungstoken senden, wie hier gezeigt.

POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com/ 
grant_type=hybrid_refresh&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571&
refresh_token=your token here

Anstatt die Client-Anmeldeinformationen als Parameter im Textkörper der POST-Anforderung eines Aktualisierungstokens zu senden, können Sie das grundlegende HTTP-Authentifizierungsschema verwenden. Für das Format dieses Schemas sind die client_id und client_secret in der Autorisierungskopfzeile des Posts erforderlich: Authorization: Basic64Encode(client_id:secret) hinzu.

client_id und client_secret werden durch einen Doppelpunkt (:) getrennt. Weitere Informationen finden Sie im OAuth 2.0 Authorization Framework.

In diesem Beispiel wird eine POST-Anforderung einer Hybridanwendung für ein Aktualisierungstoken gezeigt, die das grundlegende HTTP-Authentifizierungsschema verwendet, statt die Client-Anmeldeinformationen im Textkörper der POST-Anforderung zu senden.

POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
Authorization:  Basic 
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571
grant_type=hybrid_refresh&
refresh_token=your token here
Hinweis
Hinweis Wenn client_id und client_secret im POST-Text gesendet werden, wird die Autorisierungskopfzeile ignoriert.

Fügen Sie für alle POST-Anforderungsformate eines Aktualisierungstokens folgende Parameter ein.

Parameter Beschreibung
client_id Der Verbraucherschlüssel der verbundenen Anwendung. Suchen Sie im Anwendungs-Manager nach der verbundenen Anwendung und wählen Sie in der Dropdown-Liste Anzeigen aus, um auf den Verbraucherschlüssel zuzugreifen. Klicken Sie dann auf Verbraucherdetails verwalten. Manchmal werden Sie aufgefordert, Ihre Identität zu bestätigen, bevor Sie den Verbraucherschlüssel anzeigen können.
client_secret Das Verbrauchergeheimnis der verbundenen Anwendung. Wenn Sie auf das Verbrauchergeheimnis zugreifen möchten, suchen Sie im Anwendungs-Manager nach der verbundenen Anwendung und wählen Sie im Dropdown-Menü Anzeigen aus. Klicken Sie dann auf Verbraucherdetails verwalten. Manchmal werden Sie aufgefordert, Ihre Identität zu bestätigen, bevor Sie das Verbrauchergeheimnis anzeigen können.
grant_type Der OAuth 2.0-Gewährungstyp, der von der verbundenen Anwendung angefordert wird. Bei diesem Flow muss der Wert hybrid_refresh lauten.
refresh_token Vom Webserver-Flow, Benutzeragenten-Flow oder Token-Flow der Hybridanwendung erhaltenes Token. Dieser Wert ist ein Geheimnis. Ergreifen Sie entsprechende Maßnahmen, um ihn zu schützen. Dieser Parameter wird nur zurückgegeben, wenn für Ihre verbundene Anwendung refresh_token als Umfang eingerichtet ist.
client_assertion Statt client_secret weiterzugeben, können Sie client_assertion und client_assertion_type angeben. Wenn kein client_secret angegeben ist, sucht Salesforce nach client_assertion und client_assertion_type. Entsprechende Informationen finden Sie im Thema über das Verwenden von client_assertion anstelle von client_secret.
client_assertion_type

Geben Sie diesen Wert an, wenn Sie den Parameter client_assertion verwenden.

Der Wert von client_assertion_type muss urn:ietf:params:oauth:client-assertion-type:jwt-bearer sein.

format

Sofern nicht in der Abfragezeichenfolge enthalten, können Sie das erwartete Rückgabeformat angeben. Der Parameter "format" hat Vorrang vor dem Anforderungskopf. Die folgenden Formate werden unterstützt.

  • urlencoded
  • json (Standard)
  • xml

Salesforce stellt ein neues Zugriffstoken aus

Nach der Überprüfung der Anforderung sendet Salesforce eine Antwort mit einem neuen Zugriffstoken an die Anwendung. Hier eine JSON-Beispielantwort von Salesforce.

{ "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448384422",
"instance_url":"https://yourInstance.salesforce.com/",
"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",
"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4",
"token_type":"Bearer",
"scope":"web visualforce refresh_token lightning content",
"cookie-clientSrc":"10.xxx.xx.xx",
"sidCookieName":"sid",
"cookie-sid_Client":"0000000...",
"content_domain":"MyDomainName.file.force.com",
"content_sid":"00Dxx0000006Gb…",
"lightning_domain":"MyDomainName.lightning.force.com",
"lightning_sid”:”00Dxx000000…",
"csrf_token":"ABCD…",
"visualforce_domain":"MyDomainName.vf.force.com",
"visualforce_sid":"00Dxx000000…"}

Und hier eine XML-Beispielantwort.

<Oauth>
   <access_token>00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNB...</access_token>
   <token_type>Bearer</token_type>
   <scope>web visualforce refresh_token lightning content</scope>
   <cookie-clientSrc>10.xxx.xx.xx</cookie-clientSrc>
   <sidCookieName>sid</sidCookieName>
   <cookie-sid_Client>0000000...</cookie-sid_Client>
   <content_domain>MyDomainName.file.force.com</content_domain>
   <content_sid>00Dxx0000006Gb…</content_sid>
   <lightning_domain>MyDomainName.lightning.force.com</lightning_domain>
   <lightning_sid>00Dxx000000…</lighning_sid>
   <csrf_token>ABCD…</csrf_token>
   <visualforce_domain>MyDomainName.vf.force.com</visualforce_domain>
   <visualforce_sid>00Dxx000000…</visualforce_sid>
<instance_url>https://yourInstance.salesforce.com/</instance_url>
<id>https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P</id>
   <issued_at>1278448101416</issued_at>
   <signature>CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe+fVg=</signature>
</Oauth>

In diesem Beispiel ist eine URL-codierte Antwort dargestellt.

access_token=00Dx0000000BV7z%21AR8AQP0jITN80ESEsj5E...&
token_type=Bearer&
instance_url=https%3A%2F%2FyourInstance.salesforce.com&
id=https://login.salesforce.com%2Fid%2F00Dx0000000BV7z%2F005x00000012Q9P&
issued_at=1278448101416&
signature=CMJ4l%2BCCaPQiKjoOEwEig9H4wqhpuLSk4J2...
cookie-clientSrc=10.xxx.xx.xx&
content_domain=MyDomainName.file.force.com&
content_sid=00Dxx0000006Gb...&
lightning_domain=MyDomainName.lightning.force.com&
lightning_sid=00Dxx000000...&
csrf_token=ABCD...&
visualforce_domain=MyDomainName.vf.force.com&
visualforce_sid=00Dxx000000...&
scope=web+visualforce+refresh_token+lightning+content&
sidCookieName=sid&
cookie-sid_Client=0000000...&

Der Text der Antwort kann folgende Parameter enthalten.

Parameter Beschreibung
access_token OAuth-Token, das von einer verbundenen Anwendung verwendet wird, um im Auftrag der Client-Anwendung den Zugriff auf eine geschützte Ressource anzufordern. Zusätzliche Berechtigungen in Form von Geltungsbereichen können mit dem Zugriffstoken einhergehen.
token_type Ein Bearer-Tokentyp, der für alle Antworten verwendet wird, die ein Zugriffstoken enthalten.
instance_url Ein URL, der die Instanz der Organisation des Benutzers angibt. Beispiel: https://yourInstance.salesforce.com/ hinzu.
id Identitäts-URL, der zur Identifizierung des Benutzers sowie zur Abfrage weiterer Informationen über den Benutzer verwendet werden kann. Entsprechende Informationen finden Sie unter Identitäts-URLs.
issued_at Zeitstempel der Signaturerstellung in Millisekunden.
signature Mit "client_secret" signierte Base64-codierte HMAC-SHA256-Signatur. Die Signatur kann die verkettete ID und "issued_at value" enthalten, mit denen Sie überprüfen können, ob sich der Identitäts-URL nicht geändert hat, nachdem er vom Server gesendet wurde.
sfdc_site_url Wenn der Benutzer Mitglied einer Experience Cloud-Site ist, wird der Site-URL angegeben.
sfdc_site_id Wenn der Benutzer Mitglied einer Experience Cloud-Site ist, wird die Site-ID des Benutzers angegeben.
content_domain

Die Domäne der Inhaltssitzung, die der Inhalts-SID zugeordnet ist: MyDomainName.file.force.com → content_sid hinzu.

Sie erhalten diesen Wert nur, wenn Sie den Umfang content zuweisen.

content_sid

Die SID, die der Domäne der Inhaltssitzung zugeordnet ist. Salesforce gibt eine eindeutige SID zurück, die die Hybridanwendung direkt im Sitzungscookie der Domäne ablegt.

Sie erhalten diesen Wert nur, wenn Sie den Umfang content zuweisen.

lightning_domain

Die Domäne der Lightning-Sitzung, die der Lightning-SID zugeordnet ist: MyDomainName.lightning.force.com → lightning_sid hinzu.

Sie erhalten diesen Wert nur, wenn Sie den Umfang lightning zuweisen.

lightning_sid

Die SID, die der Domäne der Lightning-Sitzung zugeordnet ist. Salesforce gibt eine eindeutige SID zurück, die die Hybridanwendung direkt im Sitzungscookie der Domäne ablegt.

Sie erhalten diesen Wert nur, wenn Sie den Umfang lightning zuweisen.

visualforce_domain

Die Domäne der Visualforce-Sitzung, die der Visualforce-SID zugeordnet ist: MyDomainName.vf.force.com → visualforce_sid hinzu.

Sie erhalten diesen Wert nur, wenn Sie den Umfang visualforce zuweisen.

visualforce_sid

Die SID, die der Domäne der Visualforce-Sitzung zugeordnet ist. Salesforce gibt eine eindeutige SID zurück, die die Hybridanwendung direkt im Sitzungscookie der Domäne ablegt.

Sie erhalten diesen Wert nur, wenn Sie den Umfang visualforce zuweisen.

csrf_token

Das Cross-Site-Request-Forgery (CSRF)-Token zur Verhinderung von Angriffen im Rahmen von untergeordneten Sitzungen.

Sie erhalten diesen Wert nur, wenn Sie den Umfang lightning zuweisen.

scope

Die dem Zugriffstoken zugeordneten Geltungsbereiche.

Geltungsbereiche definieren außerdem den Typ der geschützten Ressourcen, auf die der Client zugreifen kann. Sie weisen einer verbundenen Anwendung Geltungsbereiche zu, wenn Sie sie erstellen. Diese werden während des Autorisierungs-Flows in die OAuth-Token aufgenommen.

Gültige Parameter finden Sie unter OAuth-Geltungsbereiche.

sidCookieName Der Name des Sitzungscookies, den die Hybridanwendung zum direkten Überbrücken einer Websitzung verwendet. Der Standardwert ist sid.
cookie-sid_Client Ein Sitzungscookie, das Sitzungsmanipulationen erkennt und verhindert. Dieses Sitzungscookie ermöglicht es der Hybridanwendung, eine Websitzung direkt zu überbrücken.
cookie-clientSrc Ein Sitzungscookie, das für Sicherheitsvorkehrungen verwendet wird. Dieses Sitzungscookie ermöglicht es der Hybridanwendung, eine Websitzung direkt zu überbrücken.
parent_sid

Eine SID, die der übergeordneten Benutzeroberflächensitzung des Benutzers zugeordnet ist. Die parent_sid ist nur enthalten, wenn Ihre Anwendung JWT-basierte Zugriffstoken ausstellen kann.

Anwendung legt Domänen-SIDs fest und überbrückt eine Websitzung

Die Hybridanwendung fügt die den Domänen zugeordneten SIDs in die Sitzungscookies ein, um eine Websitzung direkt zu überbrücken.

Für Implementierungen, bei denen ein Benutzerbereich in Objekten für die Einstellung "Bei Anmeldung auf Standardunternehmensbereich zurücksetzen" zurückgesetzt wird, muss die Hybridanwendung eine Websitzung mit "frontdoor.jsp" überbrücken. Weitere Informationen finden Sie unter Verwenden von "frontdoor.jsp" zum Herstellen einer Bridge zwischen Sitzungen und Salesforce. Weitere Informationen zu Benutzerunternehmensbereichen finden Sie unter Organisieren von Daten mit Unternehmensbereichen.

 
Laden
Salesforce Help | Article