OAuth 2.0 oppdateringstokenflyt for fornyede økter
OAuth 2.0-oppdateringstokenflyten fornyer tilgangstokener som er utstedt av OAuth 2.0-nettserverflyten eller OAuth 2.0-brukeragentflyten.
Nødvendige utgaver
| Tilgjengelig i både Salesforce Classic (ikke tilgjengelig i alle organisasjoner) og Lightning Experience |
| Tilgjengelig i alle versjoner |
Etter at en klient – via en tilkoblet app – har mottatt et tilgangstoken, kan den bruke et oppdateringstoken til å få en ny økt når dens gjeldende økt utløper. Den tilkoblede appens verdi for tidsavbrudd bestemmes når et tilgangstoken ikke er gyldig lenger, og når det skal bes om et nytt ved hjelp av et oppdateringstoken.
For å få bedre sikkerhet aktiverer du oppdateringstokenrotasjon i den tilkoblede appen eller den eksterne klientappen når du konfigurerer OAuth-innstillingene for den. Når denne innstillingen er aktivert, utsteder den tilkoblede appen et nytt oppdateringstoken sammen med tilgangstokenet hver gang flyten kalles opp. Det forrige oppdateringstokenet blir automatisk ugyldiggjort. Oppdateringstokenrotasjon sikrer at hvert oppdateringstoken brukes bare én gang per bruker, slik at oppdateringstokener ikke kan brukes til å få nye tilgangstokener. Hvis noen prøver å bruke et oppdateringstoken som har blitt rotert ut, gjør Salesforce det gjeldende oppdateringstokenet og eventuelle tilknyttede tilgangstokener ugyldige. For å få et nytt oppdateringstoken må klienten fullføre en ny flyt.
Oppdateringstokenflyten involverer disse trinnene.
- Den tilkoblede appen bruker det eksisterende oppdateringstokenet til å be om et nytt tilgangstoken.
- Etter at forespørselen har blitt bekreftet, vil Salesforce utstede et nytt tilgangstoken til klienten.
Be om et oppdatert tilgangstoken
En tilkoblet app kan bruke oppdateringstokenet til å få et nytt tilgangstoken ved å sende en av følgende POST-forespørsler om oppdateringstoken til Salesforce-sluttpunktet.
Den tilkoblede appen kan sende client_id og client_secret i hoveddelen av POST-forespørselen om oppdateringstoken, som vist her.
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com/
grant_type=refresh_token&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571&
refresh_token=your token here I stedet for å sende klientlegitimasjon som parametere i hoveddelen i POST-forespørselen om oppdateringstokenet, kan du bruke gjennom HTTP Basic-godkjenningsskjemaet. Dette skjemaets format krever følgende client_id og client_secret i godkjenningshodet for stillingen:
Authorization:
Basic64Encode(client_id:secret)
client_id og client_secret skilles med et kolon (:). Du finner mer informasjon i Rammeverk for OAuth 2.0-godkjenning.
Dette eksemplet viser en POST-oppdateringstokenforespørsel som bruker HTTP Basic-godkjenningsskjemaet i stedet for å sende klientlegitimasjon i POST-forespørselens hoveddel.
POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
Authorization: Basic
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571
grant_type=refresh_token&
refresh_token=your token here client_id og client_secret sendes i POST-teksten, ignoreres godkjenningshodet.Unngå å sende samtidige forespørsler som inneholder det samme oppdateringstokenet. Hvis klienten sender identiske forespørsler samtidig, mislykkes noen av forespørslene midlertidig, og Status-kolonnen i Påloggingshistorikk viser Mislykket: Tokenforespørselen behandles allerede. I stedet for kontinuerlig å sende forespørsler om nye tilgangstokener, bufrer og gjenbruker du tokener i stedet. Hvis du sender samtidige forespørsler med samme oppdateringstoken, noe som ikke anbefales, utvikler du en måte å prøve forespørslene på igjen når denne feilen oppstår.
Inkluder følgende parametere i begge formatene for POST-forespørsel om oppdateringstoken.
| Parameter | Beskrivelse |
|---|---|
client_id
|
Consumernøkkelen for den tilkoblede appen. For å få tilgang til forbrukernøkkelen finner du den tilkoblede appen i Appbehandling og velger Vis fra rullegardinlisten. Klikk deretter på Behandle forbrukerdetaljer. Du blir noen ganger bedt om å bekrefte identiteten din før du kan vise forbrukernøkkelen. |
client_secret
|
Consumerhemmeligheten for den tilkoblede appen. For å få tilgang til forbrukerhemmeligheten finner du den tilkoblede appen i Appbehandling og velger Vis fra rullegardinlisten. Klikk deretter på Behandle forbrukerdetaljer. Du blir noen ganger bedt om å bekrefte identiteten din før du kan vise forbrukerhemmeligheten. |
grant_type
|
OAuth 2.0-utstedelsestypen som den tilkoblede appen ber om. Verdien må være refresh_token for denne flyten. |
refresh_token
|
Token hentet fra webserver, brukeragent eller hybridapp-tokenflyt. Denne verdien er en hemmelighet. Iverksett nødvendige tiltak for å beskytte den. Denne parameteren returneres bare hvis den tilkoblede appen er konfigurert med et refresh_token-omfang. |
client_assertion
|
I stedet for å sende en client_secret, kan du gi en client_assertion og client_assertion_type. Hvis det ikke oppgis noen client_secret-parameter, ser Salesforce etter client_assertion og client_assertion_type. Se Bruk client_assertion i stedet for client_secret. |
client_assertion_type
|
Oppgi denne verdien når du bruker Verdien av |
format
|
Hvis det ikke er inkludert i forespørselens hode, kan du spesifisere det forventede returformatet.
|
Salesforce utsteder et nytt tilgangstoken
Etter at forespørselen har blitt bekreftet, sender Salesforce et nytt tilgangstoken til den tilkoblede appen.
Her er et eksempel på et JSON-svar fra 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":"id api refresh_token"
}Og her er et eksempel på et XML-svar.
<Oauth>
<access_token>00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNB
aT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4
</access_token>
<token_type>Bearer
</token_type>
<scope>id api refresh_token
</scope>
<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>Dette eksempelet viser et URL-kodet svar.
access_token=00Dx0000000BV7z%21AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7TrqoDjoNIWQ2
ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4
&token_type=Bearer&scope=id%20api%20refresh_token
&instance_url=https%3A%2F%2FyourInstance.salesforce.com
&id=https://login.salesforce.com%2Fid%2F00Dx0000000BV7z%2F005x00000012Q9P
&issued_at=1278448101416
&signature=CMJ4l%2BCCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe%2BfVg%3DHvis oppdateringstokenrotasjon er aktivert for den tilkoblede appen eller den eksterne klientappen, inkluderer svaret et nytt oppdateringstoken. Her er et eksempel på et JSON-svar hvis oppdateringstokenrotasjon er aktivert.
{
"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7T...",
"refresh_token":"CjAwRHgwMDAwMDAwQlY3eiFBUjhBUVAwaklUTjgwRVNFc2o1RWJhWl...",
"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",
"scope":"id api refresh_token",
"instance_url":"https://yourInstance.salesforce.com/",
"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P"
"token_type":"Bearer",
"issued_at":"1278448384422",
}Følgende parametere kan inkluderes i hovedinnholdet i svaret.
| Parameter | Beskrivelse |
|---|---|
access_token
|
OAuth-token som en tilkoblet app bruker til å be om tilgang til en beskyttet ressurs på vegne av klientprogrammet. Andre tillatelser i form av omfang kan følge med tilgangstokenet. |
refresh_token
|
Et nytt oppdateringstoken. Bruk oppdateringstokenet til å hente et nytt tilgangstoken neste gang du kaller opp oppdateringstokenflyten. Denne parameteren inkluderes bare hvis du aktiverer oppdateringstokenrotasjon for den tilkoblede appen eller den eksterne klientappen. |
token_type
|
En Bearer-tokentype, som brukes til alle svar som inkluderer et tilgangstoken. |
token_format
|
Hvis den tilkoblede appen eller den eksterne klientappen er aktivert for å utstede JSON Web Token-baserte tilgangstokener (JWT), inkluderer svaret denne parameteren for å angi formatet på tilgangstokenet. Verdien er Denne parameteren inkluderes ikke hvis appen utsteder opaque tilgangstokener. |
instance_url
|
En URL-adresse som indikerer forekomsten av brukerens organisasjon. Eksempel: https://yourInstance.salesforce.com/. |
id
|
URL-adresse for identitet som kan brukes til å identifisere brukeren og til å be om mer informasjon om brukeren. Se URL-adresser for identitet. |
issued_at
|
Tidsstempel for når signaturen ble opprettet, i millisekunder. |
signature
|
Base64-kodet HMAC-SHA256-signatur signert med client_secret. Signaturen kan inkludere den sammenkjedede IDen og issued_at value, som du kan bruke til å bekrefte at URL-adressen for identitet ikke har blitt endret siden serveren sendte den. |
sfdc_site_url
|
Hvis brukeren er medlem av et Experience Cloud-nettsted, oppgis URL-adressen til nettstedet. |
sfdc_site_id
|
Hvis brukeren er medlem av et Experience Cloud-nettsted, oppgis brukerens nettsteds-ID. |

