Loading
Identifisere brukerne og administrere tilgang
OAuth 2.0 oppdateringstokenflyt for hybridapp

OAuth 2.0 oppdateringstokenflyt for hybridapp

Bruk OAuth 2.0 oppdateringstokenflyt for hybridapp til å gi hybridapper direkte administrasjon av nettøkter når en første økt utløper. Når godkjenningserveren gir et nytt tilgangstoken med tildelingstypen hybrid_refresh, inkluderes økt-ID-ene (SID) for de forespurte domenene i svaret. Hybridappen kan fastsette informasjonskapsler for Lightning-, Visualforce- og innholdsdomener og bruke frontdoor.jsp til å bygge bro for tilgangstokenet til en nettøkt og slik gi uavbrutt tjeneste. Oppdateringstokenflyten for hybridapp fornyer tilgangstokener som er utstedt av OAuth 2.0-nettserver-, brukeragent- og hybridapp-tokenflyten.

Nødvendige utgaver

Tilgjengelig i både Salesforce Classic (ikke tilgjengelig i alle organisasjoner) og Lightning Experience
Tilgjengelig i alle versjoner
Merk
Merk Mobile SDK 9.1 støtter OAuth 2.0-hybridappflyter.

Når en hybridapp – via en ekstern klientapp – har mottatt et tilgangstoken, kan den bruke et oppdateringstoken til å få en ny økt når den gjeldende økten utløper. Den eksterne klientappens verdi for tidsavbrudd av økt bestemmer når et tilgangstoken ikke er gyldig lenger, og når det skal søkes om et nytt med et oppdateringstoken.

For å få bedre sikkerhet aktiverer du oppdateringstokenrotasjon i den eksterne klientappen når du konfigurerer dens OAuth-innstillinger. Når denne innstillingen er aktivert, utsteder den eksterne klientappen 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.

Merk
Merk For oppdateringstokenflyten for hybridappen støttes bare oppdateringstokenrotasjon hvis du utsteder ugjennomsiktige tilgangstokener. Hvis den eksterne klientappen er konfigurert til å utstede JWT-baserte tilgangstokener, returnerer oppdateringstokenflyten for hybridappen en invalid_grant-feil når du prøver å be om et token.

Oppdateringstokenflyten for hybridappen involverer følgende trinn.

Viktig
Viktig Når du utvikler OAuth-integrasjoner, overfører du alltid sensitiv informasjon i hoveddelen av en POST-forespørsel eller i et forespørselshode. Ikke bruk GET-parametere i URL-spørrestrengen til å overføre sensitiv informasjon. Sensitiv informasjon inkluderer, men er ikke begrenset til brukernavn, passord, OAuth-tokener, klienthemmeligheter og eventuell personlig identifiserbar informasjon. Hvis du vil ha mer informasjon om gode fremgangsmåter for sikkerhet, kan du se Lagre sensitive data i Secure Coding Guide.

Be om et nytt tilgangstoken

Appen kan bruke oppdateringstokenet til å få et nytt tilgangstoken ved å sende en POST-forespørsel om oppdateringstoken til Salesforce-sluttpunktet.

Den eksterne klientappen kan sende client_id og client_secret i hoveddelen av oppdateringstokenforespørselen POST, som vist her.

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

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 client_id og client_secret i godkjenningshodet til innlegget: 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-forespørsel om oppdateringstoken for hybridapp 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=hybrid_refresh&
refresh_token=your token here
Merk
Merk Hvis client_id og client_secret sendes i POST-teksten, ignoreres godkjenningshodet.

Inkluder følgende parametere i begge formatene for POST-forespørsel om oppdateringstoken.

Parameter Beskrivelse
client_id Forbrukernøkkelen til den eksterne klientappen. For å få tilgang til forbrukernøkkelen finner du den eksterne klientappen i Appbehandling for ekstern klient og velger Rediger innstillinger fra rullegardinlisten. Utvid deretter delen OAuth-innstillinger og klikk på Forbrukernøkkel og Hemmelighet. Du blir noen ganger bedt om å bekrefte identiteten din før du kan vise forbrukernøkkelen.
client_secret Forbrukerhemmeligheten for den eksterne klientappen. For å få tilgang til forbrukerhemmeligheten finner du den eksterne klientappen fra rullegardinlisten External Client App Manager og velger Rediger innstillinger. Utvid deretter delen OAuth-innstillinger og klikk på Forbrukernøkkel og Hemmelighet. Du blir noen ganger bedt om å bekrefte identiteten din før du kan vise forbrukerhemmeligheten.
grant_type OAuth 2.0-utstedelsestypen som den eksterne klientappen ber om. Verdien må være hybrid_refresh 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 eksterne klientappen 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 client_assertion-parameteren.

Verdien av client_assertion_type må være urn:ietf:params:oauth:client-assertion-type:jwt-bearer.

format

Hvis det ikke er inkludert i forespørselens hode, kan du spesifisere det forventede returformatet. format-parameteren prioriteres foran forespørselens hode. Disse formatene støttes:

  • urlencoded
  • json (standard)
  • xml

Salesforce utsteder et nytt tilgangstoken

Når forespørselen er bekreftet, sender Salesforce et nytt tilgangstoken til 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":"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…"}

Og her er et eksempel på et XML-svar.

<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>

Dette eksempelet viser et URL-kodet svar.

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...&

Følgende parametere kan inkluderes i hovedinnholdet i svaret.

Parameter Beskrivelse
access_token OAuth-token som en ekstern klientapp bruker til å be om tilgang til en beskyttet ressurs på vegne av klientprogrammet. Andre tillatelser i form av omfang kan følge med tilgangstokenet.
token_type En Bearer-tokentype, som brukes til alle svar som inkluderer et tilgangstoken.
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.
content_domain

Domenet for innholdsøkten, som tilordnes til innholds-SID: MyDomainName.file.force.com → content_sid.

Du mottar denne verdien bare hvis du tildeler content-omfanget.

content_sid

SID-en som er knyttet til domenet for innholdsøkten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel.

Du mottar denne verdien bare hvis du tildeler content-omfanget.

lightning_domain

Domenet for Lightning-økten, som tilordnes til Lightning SID: MyDomainName.lightning.force.com → lightning_sid.

Du mottar denne verdien bare hvis du tildeler lightning-omfanget.

lightning_sid

SID-en som er knyttet til domenet for Lightning-økten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel.

Du mottar denne verdien bare hvis du tildeler lightning-omfanget.

visualforce_domain

Domenet for Visualforce-økten, som tilordnes til Visualforce SID: MyDomainName.vf.force.com → visualforce_sid.

Du mottar denne verdien bare hvis du tildeler visualforce-omfanget.

visualforce_sid

SID-en som er knyttet til domenet for Visualforce-økten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel.

Du mottar denne verdien bare hvis du tildeler visualforce-omfanget.

csrf_token

CSRF (Cross-Site Request Forgery)-tokenet som skal hindre angrep under underordnede økter.

Du mottar denne verdien bare hvis du tildeler lightning-omfanget.

scope

Omfangene som er knyttet til tilgangstokenet.

Omfang definerer ytterligere hvilke typer beskyttede ressurser denne klienten kan få tilgang til. Du tildeler omfang til en ekstern klientapp når du bygger den, og de inkluderes i OAuth-tokenene i godkjenningsflyten.

Du finner gyldige parametere i OAuth-omfang.

sidCookieName Navnet på øktinformasjonskapselen som hybridappen bruker som direkte tilknytning til en nettøkt. Standardverdien er sid.
cookie-sid_Client En øktinformasjonskapsel som oppdager og hindrer tukling med en økt. Denne øktinformasjonskapselen gjør det mulig for hybridappen å knytte seg direkte til en nettøkt.
cookie-clientSrc En øktinformasjonskapsel som brukes som sikkerhetsbeskyttelse. Denne øktinformasjonskapselen gjør det mulig for hybridappen å knytte seg direkte til en nettøkt.
parent_sid

En SID som er knyttet til brukerens overordnede brukergrensesnittøkt. parent_sid inkluderes bare hvis appen er aktivert for å utstede JWT-baserte tilgangstokener.

App fastsetter domene-SID-er og bygger bro til en nettøkt

Hybridappen angir domenenes tilknyttede SID-er i øktinformasjonskapslene for direkte tilknytning til en nettøkt. Se Behandle informasjonskapslinger i OAuth 2.0-hybridappflyt for å se eksempler på informasjonskapsler som angis for hvert domene.

For implementeringer som tilbakestiller brukerdivisjon av objekter for innstillingen Tilbakestill til standarddivisjon ved pålogging, må hybridappen forene en nettøkt ved bruk av frontdoor.jsp. Hvis du vil ha mer informasjon, kan du se Bruk Frontdoor.jsp til å bygge bro mellom økter i Salesforce. Hvis du vil vite mer om brukerdivisjoner, kan du se Organisere data med divisjoner.

 
Laster
Salesforce Help | Article