Sie befinden sich hier:
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 |
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.
invalid_grant zurück, wenn Sie versuchen, ein Token anzufordern.Der Aktualisierungstoken-Flow der Hybridanwendung umfasst die folgenden Schritte.
- Die Anwendung verwendet das bestehende Aktualisierungstoken, um ein neues Zugriffstoken anzufordern.
- Nach der Überprüfung der Anforderung stellt Salesforce der Anwendung ein neues Zugriffstoken aus.
- Die Anwendung legt die SIDs direkt in den Sitzungscookies der Domänen fest und überbrückt eine Websitzung.
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
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 Der Wert von |
format
|
Sofern nicht in der Abfragezeichenfolge enthalten, können Sie das erwartete Rückgabeformat angeben. Der Parameter "
|
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: Sie erhalten diesen Wert nur, wenn Sie den Umfang |
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 |
lightning_domain
|
Die Domäne der Lightning-Sitzung, die der Lightning-SID zugeordnet ist: Sie erhalten diesen Wert nur, wenn Sie den Umfang |
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 |
visualforce_domain
|
Die Domäne der Visualforce-Sitzung, die der Visualforce-SID zugeordnet ist: Sie erhalten diesen Wert nur, wenn Sie den Umfang |
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 |
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 |
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 |
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.
