OAuth 2.0 hybrid nettserverflyt
Bruk OAuth 2.0 hybridnettserverflyt til å gi hybridapper direkte administrasjon av nettøkter. Når godkjenningserveren gir et tilgangstoken, inkluderes økt-ID-ene (SID) for de forespurte domenene i svaret. Hybridappen kan deretter angi informasjonskapsler for Lightning, Visualforce og innholdsdomener og knytte et tilgangstoken til en nettøkt, og slik sørge for uavbrutt tjeneste.
Nødvendige utgaver
| Tilgjengelig i både Salesforce Classic (ikke tilgjengelig i alle organisasjoner) og Lightning Experience |
| Tilgjengelig i alle versjoner |
Se Nye tilkoblede apper kan ikke opprettes lenger i Spring ‘26-utgivelsen for å få flere detaljer.
Hybridnettserverflyten følger de samme godkjenningstrinnene som brukes i OAuth 2.0 User-Agent Flow for Desktop eller Mobile App Integration, med unntak av at hybridnettserverflyten bruker en hybrid_auth_code som tildelingstype. Eksempel: Du bygger en hybridapp for salgsavdelingen for at de skal få tilgang til informasjon når de er på farten, inkludert et kontrollpanel som sporer de beste salgsprospektene. Denne appen implementerer hybrid bruker-agent-tokenflyten, som følger disse trinnene.
- Opprett en tilkoblet app for å integrere hybridappen med Salesforce API. Aktiver OAuth-innstillinger og tildel disse OAuth-omfangene til den tilkoblede appen.
-
-
lightning -
content -
refresh_token -
visualforce -
web
-
- Sluttbrukeren åpner appen og dirigeres til Salesforce for å godkjenne og autorisere appen.
- Når brukeren har godkjent tilgang for denne godkjenningsflyten, mottar appen tilbakekallet fra Salesforce til URL-adressen for omdirigering, som trekker ut tilgangs- og oppdateringstokenene. SID-er for Visualforce, Lightning og innhold for de respektive domenene er også inkludert, sammen med øktinformasjonskapslene som gjør det mulig for appen å knytte seg direkte til en nettøkt.
Merk Denne flyten støtter JWT-baserte tilgangstokener bare hvis den tilkoblede appen eller den eksterne klientappen ikke har oppdateringstokenrotasjon aktivert. Hvis oppdateringstokenrotasjon er aktivert, returnerer tokenforespørselen eninvalid_grant-feil. - Appen fastsetter Lightning-, Visualforce- og innholdsdomenenes øktinformasjonskapsler og bygger bro for et tilgangstoken til en nettøkt.
- Brukeren får tilgang til kontrollpanelet med de beste salgsprospektene uten avbrutte økter.
Be om en godkjenningskode
For å starte OAuth 2.0-nettserverflyten sender den eksterne tjenesten – via den tilkoblede appen – en godkjenningskodeforespørsel med utstedelsestypen for godkjenningskode, til Salesforce-godkjenningssluttpunktet. Med en godkjenningskode kan den tilkoblede appen bevise at den er godkjent som en sikker besøkende på stedet og at den har tillatelse til å be om et tilgangstoken.
Godkjenningskoden lages i form av en HTTP-omdirigering, som den følgende.
https://MyDomainName.my.salesforce.com/services/oauth2/authorize?
client_id=3MVG9IHf89I1t8hrvswazsWedXWY0i1qK20PSFaInvUgLFB6vrcb9bbWFTSIHpO8G2jxBLJA6uZGyPFC5Aejq&
redirect_uri=https://www.mycustomerorderstatus.com/oauth2/callback&
response_type=codeInkluder disse parameterne i en godkjenningskodeforespørsel.
| Parameter | Beskrivelse |
|---|---|
Request Header
|
Salesforce OAuth 2.0-godkjenningssluttpunktet. Tilkoblede apper sender OAuth-godkjenningsforespørsler til dette sluttpunktet. |
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. |
redirect_uri
|
URL-adressen dit brukere omdirigeres etter en vellykket godkjenning. URI-adressen for omdirigering må stemme med en av verdiene feltet URL-adresse for tilbakekall i den tilkoblede appen. Hvis ikke, mislykkes godkjenningen. Du finner URI-adressen for omdirigering på siden Behandle tilkoblede apper for den tilkoblede appen eller fra definisjonen for den tilkoblede appen. Denne verdien må være URL-kodet. |
response_type
|
OAuth 2.0-utstedelsestypen som den tilkoblede appen ber om. Verdien for denne flyten må være code for å angi at den tilkoblede appen ber om en godkjenningskode. |
Du kan også inkluder disse parameterne i en godkjenningskodeforespørsel.
| Parameter | Beskrivelse |
|---|---|
scope
|
Tillatelser som definerer hvilke typer beskyttede ressurser en tilkoblet app kan få tilgang til. Du tildeler omfang til en tilkoblet app når du bygger den, og de inkluderes i OAuth-tokenet i løpet av godkjenningsflyten. Hvis du ikke inkluderer denne parameteren, blir det anmodet om alle omfang som er tildelt den tilkoblede appen. Omfangene som sendes i denne parameteren, må være et delsett av de registrerte omfangene. |
state
|
Eventuell status som den eksterne nettjenesten ber om få sendt til URL-adresse for tilbakekall. Denne verdien må være URL-kodet. |
immediate
|
En boolsk verdi for å bestemme om brukeren skal bes om å logge seg på og godkjenne. Standardverdien er
|
code_challenge
|
Angir SHA256-hash-verdien for Denne parameteren kreves hvis det er angitt en
|
display
|
Endrer visningstypen for påloggings- og godkjenningssidene. Salesforce støtter disse verdiene.
|
login_hint
|
Gir en gyldig brukernavnverdi for å forhåndsutfylle påloggingssiden med brukernavnet, for eksempel For å overføre |
nonce
|
Brukes sammen med openid-omfanget for å be om et bruker-ID-token. Bruker-ID-tokenet returneres i svaret. Denne parameteren er valgfri, men den bidrar til å oppdage repetisjonsangrep.
|
prompt
|
Angir hvordan godkjenningsserveren ber brukeren om ny autentisering og godkjenning. Salesforce støtter disse verdiene.
Du kan overføre |
Uvid-Hint hode |
Hvis du vil koble denne flyten til den headless-gjesteflyten, kan du eventuelt inkludere et Hvis du implementerer gjestebrukerflyten i appen, kan du eventuelt bruke dette hodet til å overføre et JSON Web Token-basert tilgangstoken (JWT) som inneholder en unik besøks-ID (UVID) knyttet til en gjestebrukers identitet. Ved å overføre UVID-koden til en navngitt brukerflyt kan du overføre kontekstinformasjon fra en gjestebrukerøkt, som brukerens preferanser for informasjonskapsler, til en navngitt brukerøkt. |
uvid_hint body-parameter |
En ren I stedet for å sende UVID i forespørselsteksten kan du også sende den i et JWT-basert token med en UVID via |
Bruker godkjenner og godkjenner tilgang
Før Salesforce gir godkjenningskoder til tilkoblede apper blir brukerne som godkjenner, bedt om å logge seg på Salesforce.
Etter en vellykket pålogging omdirigerer Salesforce brukere til godkjenningssiden for å gi tilgang til appen.
Hvis brukerne tidligere har godkjent tilgang, er det ikke nødvendig å godkjenne tilgang på nytt.
Salesforce utsteder godkjenningskode
Etter at brukerne har godkjent tilgang til en tilkoblet app, omdirigerer Salesforce brukerne til URL-adressen for tilbakekall, der de kan vise tilbakekallet med en godkjenningskode.
https://www.mycustomerorderstatus.com/oauth2/callback?
code=aPrx4sgoM2Nd1zWeFVlOWveD0HhYmiDiLmlLnXEBgX01tpVOQMWVSUuafFPHu3kCSjzk4CUTZg==- Den første delen av tilbakekallet er den tilkoblede appens URL-adresse for tilbakekall:
https://www.mycustomerorderstatus.com/oauth2/callback. - Den andre delen er godkjenningskoden som den tilkoblede appen bruker til å hente et tilgangstoken:
code=aPrx4sgoM2Nd1zWeFVlOWveD0HhYmiDiLmlLnXEBgX01tpVOQMWVSUuafFPHu3kCSjzk4CUTZg==. Godkjenningskoden utløper etter 15 minutter.
Hvis state-parameteren er inkludert i den opprinnelige spørringsstrengen, overføres den angitte statusen til godkjenningstrinnet.
Be om et tilgangstoken
For å be om et tilgangstoken overfører den tilkoblede appen godkjenningskoden til Salesforce-tokensluttpunktet som en HTTP POST-forespørsel.
POST /services/oauth2/token HTTP/1.1
Host: mycompany.my.salesforce.com
Content-length: 307
Content-type: application/x-www-form-urlencoded
grant_type=authorization_code&
code=aPrxhgZ2MIpkSy0aOdn07LjKFvsFOis6RGcWXz7p8JQCjcqfed5NQLe7sxWwMY_JQFuLwHRaRA==&
client_id=3MVG9IHf89I1t8hrvswazsWedXWY0iqK20PSFaInvUgLFB6vrcb9bbWFTSIHpO8G2jxBLJA6uZGyPFC5Aejq&
client_secret=*******************&
redirect_uri=https://www.mycustomerorderstatus.com/oauth2/callback
POST-forespørselen i eksempelet inneholder disse parameterne.
| Parameter | Beskrivelse |
|---|---|
Request Header
|
Forespørselshodet kan inneholde disse parameterne.
Forespørselshodet støtter også disse parameterne.
|
grant_type
|
Valideringstypen som den tilkoblede appen kan levere for å bevise at den er en sikker besøkende. For nettserverflyten må verdien være authorization_code. |
code
|
En midlertidig godkjenningskode mottatt fra godkjenningsserveren. Den tilkoblede appen bruker denne koden i utveksling for et tilgangstoken. Denne typen OAuth 2.0-flyt er en sikker måte å overføre tilgangstokenet tilbake til programmet på. |
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. Denne parameteren kreves med mindre den tilkoblede appen ikke har Krev hemmelighet for nettserverflyt aktivert. Hvis det ikke kreves en |
redirect_uri
|
URL-adressen dit brukere omdirigeres etter en vellykket godkjenning. URI-adressen for omdirigering må stemme med en av verdiene feltet URL-adresse for tilbakekall i den tilkoblede appen. Hvis ikke, mislykkes godkjenningen. Du finner URI-adressen for omdirigering på siden Behandle tilkoblede apper for den tilkoblede appen eller fra definisjonen for den tilkoblede appen. Denne verdien må være URL-kodet. |
Du kan også inkludere disse parameterne.
| Parameter | Beskrivelse |
|---|---|
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.
|
client_assertion_type
|
Oppgi denne verdien når du bruker Verdien av |
code_verifier
|
Kreves bare hvis en code_challenge-parameter var angitt i godkjenningsforespørselen. Angir 128 byte tilfeldige data med høy entropi for å gjøre det vanskelig å gjette
|
format
|
Hvis det ikke er inkludert i forespørselens hode, kan du spesifisere det forventede returformatet.
|
client_assertion i stedet for client_secretHvis du oppgir en client_assertion i stedet for en client_secret, må verdien i client_assertion inkludere disse parameterne.
iss:client_idfra definisjonen av den tilkoblede appen.sub:client_idfra definisjonen av den tilkoblede appen.aud: URL-adressen for tokenservlet: https://hostname/services/oauth2/token.exp: Utløpstiden for deklarasjonen innen 5 minutter, uttrykt som antall sekunder fra 1970-01-01T0:0:0Z målt i UTC.
client_assertion må også signeres med den private nøkkelen som er knyttet til OAuth-brukerens opplastede sertifikat. Bare algoritmen RS256 støttes. Se OpenID Connect-spesifikasjonene for private_key_jwt-klientgodkjenningsmetoden.
I stedet for å sende klientlegitimasjon som parametere i hoveddelen i POST-forespørselen, støtter Salesforce godkjenningsskjemaet HTTP Basic. Dette skjemaets format krever client_id og client_secret i godkjenningshodet for innlegget som følger.
Authorization: Basic64Encode(client_id:secret)
client_id og client_secret skilles med et kolon (:). Du finner mer informasjon i dokumentet Rammeverk for OAuth 2.0-godkjenning.
Dette eksemplet viser en POST-forespørsel om tilgangstoken som bruker HTTP Basic-godkjenningsskjemaet i stedet for å sende klientlegitimasjon i POST-forespørselens hoveddel.
POST /services/oauth2/token HTTP/1.1
Host: mycompany.my.salesforce.com
Authorization: Basic client_id=3MVG9IHf89I1t8hrvswazsWedXWY0iqK20PSFaInvUgLFB6vrcb9bbWFTSIHpO8G2jxBLJA6uZGyPFC5Aejq&
client_secret=*******************&
grant_type=authorization_code&code=aPrxsmIEeqM9PiQroGEWx1UiMQd95_5JUZ
VEhsOFhS8EVvbfYBBJli2W5fn3zbo.8hojaNW_1g%3D%3D&
redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jspclient_id og client_secret sendes i POST-teksten, ignoreres godkjenningshodet.Salesforce utsteder et tilgangstoken
Når Salesforce har validert appens legitimasjon, sender den tilbake et svar med tilgangstokenet.
I dette er eksempelet er svaret i JSON-format.
{
"access_token": "00DB0000000TfcR!AQQAQFhoK8vTMg_rKA.esrJ2bCs.OOIjJgl.9Cx6O7KqjZmHMLOyVb.U61BU9tm4xRusf7d3fD1P9oefzqS6i9sJMPWj48IK",
"signature": "d/SxeYBxH0GSVko0HMgcUxuZy0PA2cDDz1u7g7JtDHw=",
"scope": "web openid",
"id_token": "eyJraWQiOiIyMjAiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdF9oYXNoIjoiSVBRNkJOTjlvUnUyazdaYnYwbkZrUSIsInN1YiI6Imh0dHBzOi8vbG9...",
"instance_url": "https://mycompany.my.salesforce.com",
"id": "https://login.salesforce.com/id/00DB0000000TfcRMAS/005B0000005Bk90IAC",
"token_type": "Bearer",
"issued_at": "1558553873237"
}
Tokensvaret inkluderer disse parameterne.
| 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. |
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. |
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 tilkoblet app når du bygger den, og de inkluderes i OAuth-tokenet i løpet av godkjenningsflyten. |
content_domain
|
Domenet for innholdsøkten, som tilordnes til innholds-SID: MyDomainName.file.force.com →
content_sid.
|
content_sid
|
SID-en som er knyttet til domenet for innholdsøkten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel. |
lightning_domain
|
Domenet for Lightning-økten, som tilordnes til Lightning SID: <MyDomainName or instance>.lightning.force.com →
lightning_sid.
|
lightning_sid
|
SID-en som er knyttet til domenet for Lightning-økten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel. |
visualforce_domain
|
Domenet for Visualforce-økten, som tilordnes til Visualforce SID: MyDomainName.vf.force.com →
visualforce_sid.
|
visualforce_sid
|
SID-en som er knyttet til domenet for Visualforce-økten. Salesforce returnerer en unik SID som hybridappen fastsetter direkte i domenets øktinformasjonskapsel. |
csrf_token
|
CSRF (Cross-Site Request Forgery)-tokenet som skal hindre angrep under underordnede økter. |
id_token
|
En signert datastruktur som inneholder godkjente brukerattributter, inkludert en unik identifikator for brukeren og et tidsstempel som viser når tokenet ble utstedt. Det identifiserer også appen som spør. Se OpenID Connect-spesifikasjoner. Denne parameteren returneres hvis scope-parameteren inkluderer |
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. |
token_type
|
En Bearer-tokentype, som brukes til alle svar som inkluderer et tilgangstoken.
|
issued_at
|
Tidsstempel for når signaturen ble opprettet, i millisekunder. |
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. |
Tokensvaret kan også inneholde disse parameterne.
