breadcrumbDescription
OAuth 1.0.A-forløb
Hvis din organisation bruger OAuth 1.0.A-protokollen, skal du bruge dette autorisationsforløb til at integrere en klient – via en tilsluttet app – med Salesforce-API'en.
EditionsHeading
| Tilgængelig i: både Salesforce Classic og Lightning Experience |
| Tilgængelig i: Alle versioner |
| Brugertilladelser påkrævet | |
|---|---|
| Hvis du vil administrere, oprette, redigere og slette OAuth-apps: | Administrer tilsluttede apps |
Her er de større autorisationstrin.
- Den tilsluttede app anmoder om et anmodningstoken. Salesforce bekræfter anmodningen og returnerer et anmodningstoken.
- Brugeren logger ind og autoriserer den tilsluttede app for at få adgang til data.
- Den tilsluttede app anmoder om et adgangstoken.
- Når Salesforce har bekræftet anmodningen og tildelt tokenet, får den tilsluttede app adgang til data.
Hvis du vil se listen over mulige fejlkoder, der returneres af Salesforce, kan du se OAuth 1.0.A-fejlkoder.
Anmod om et anmodningstoken
For at starte OAuth 1.0.A-forløbet sender den tilsluttede app en anmodning til handlerslutpunktet for Salesforce OAuth-tokenet (https://login.salesforce.com/_nc_external/system/security/oauth/RequestTokenHandler).
Inkluder følgende OAuth-parametre i anmodningen.
Når Salesforce har modtaget anmodningen, gør det følgende:
- Validerer anmodningen med dets egen kopi af forbrugerhemmeligheden.
- Genererer et svar, der indeholder et anmodningstoken og anmodningstokenhemmeligheden i HTTP-teksten som navn/værdi-par.
- Sender svaret tilbage til forbrugeren.
Et anmodningstoken er kun gyldigt i 15 minutter, plus 3 minutter for at tage højde for forskelle mellem maskinernes ure.
Bruger autoriserer adgang
Når den tilsluttede app har oprettet sin indledende anmodning om anmodningstokenet, bliver brugeren bedt om at autorisere adgang.
- Den tilsluttede app omdirigerer brugeren til https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp. Den rette GET-forespørgselsparameter føjes til denne URL:
oauth_token(anmodningstoken)oauth_consumer_key
Bemærk Hvis enoauth_callback-parameter er inkluderet, ignoreres den. - Brugeren bliver bedt om at autorisere adgang for den tilsluttede app på siden for autorisation af fjernadgang.
- Når brugeren har autoriseret adgang, genererer Salesforce adgangstokenet og hemmeligheden for adgangstokenet.
Bemærk En bruger kan tildele et begrænset antal samtidige adgangtokener til en app. Standarden er fem pr. app pr. bruger. Hvis denne godkendelse overskrider organisationsgrænsen, får brugeren besked, og de sidst brugte tokener tilbagekaldes. - Salesforce bekræfter tilbagekalds-URL'en og omdirigerer brugeren på følgende måde.
- Hvis det
oauth_callback, der er defineret i anmodningstokenet eroob, og den tilsluttede apps tilbagekalds-URL er gyldig, omdirigeres brugeren til denne URL. - Hvis det
oauth_callback, der er defineret i anmodningstokenet, er en gyldig URL, omdirigeres brugeren til denne URL.
- Hvis det
Anmod om adgangstokenet
Når brugeren godkender adgang for den tilsluttede app, kan denne udveksle et anmodningstoken for et adgangstoken. Det opretter en HTTPS GET- eller POST-anmodning til https://login.salesforce.com/_nc_external/system/security/oauth/AccessTokenHandler. Medtag disse parametre i forespørgslen eller post-dataene.
| Parameter | Beskrivelse |
|---|---|
oauth_consumer_key
|
Forbrugernøglen for den tilsluttede app. Hvis du vil have adgang til forbrugernøglen, skal du fra Appstyring finde den tilsluttede app og vælge Vis fra rullelisten. Klik derefter på Administrer forbrugerdetaljer, og bekræft din identitet. |
oauth_signature_method
|
OAuth-signaturmetoden skal være HMAC-SHA1 for dette forløb. |
| oauth_signature | Den OAuth-signatur, der bruges til login, som du genererer i henhold til OAuth-specifikationen for HMAC-SHA1. Se oauth_signature. |
oauth_timestamp
|
Tidsstempel for, hvornår signaturen blev oprettet. |
oauth_token
|
Det anmodningstoken, som den tilsluttede app modtog i sin indledende anmodning. |
oauth_nonce
|
Valgfri. Giver serviceudbyderen mulighed for at bekræfte, at der ikke er oprettet en anmodning tidligere og hjælper med til at forhindre genafspilningsangreb. |
oauth_verifier
|
Den hemmelighed for anmodningstokenet, som den tilsluttede app modtog i sin indledende anmodning. |
oauth_version
|
Valgfri. Hvis dette er inkluderet, skal OAuth-versionen være 1.0 for dette forløb. |
Salesforce validerer disse elementer i anmodningen:
- Forbrugerhemmelighed
- Forbrugernøgle
- Signatur
- Om anmodningstokenet har været brugt tidligere
- Tidsstemplet (skal være inden for 15 minutter, plus 3 minutter for at tage højde for forskelle mellem maskinernes ure)
- Om Nonce aldrig har været brugt tidligere
Ved valideringen returnerer Salesforce adgangstokenet hemmeligheden for adgangstokenet i HTTP-svarteksten som navn/værdi-par.
Adgang til data
Når den tilsluttede app er i besiddelse af et gyldigt adgangstoken, kan den få adgang til Salesforce-data ved at sende en anmodning til https://login.salesforce.com. Følgende parametre er inkluderet i HTTP POST-autorisationssidehovedet.
| Parameter | Beskrivelse |
|---|---|
oauth_consumer_key
|
Den tilsluttede apps forbrugernøgle. Hvis du vil have adgang til forbrugernøglen, skal du fra Appstyring finde den tilsluttede app og vælge Vis fra rullelisten. Klik derefter på Administrer forbrugerdetaljer. Du bliver nogle gange bedt om at bekræfte din identitet. |
oauth_token
|
Det adgangstoken, som den tilsluttede app modtog fra Salesforce. |
oauth_signature_method
|
OAuth-signaturmetoden skal være HMAC-SHA1 for dette forløb. |
| oauth_signature | Den OAuth-signatur, der bruges til login, som du genererer i henhold til OAuth-specifikationen for HMAC-SHA1. Se oauth_signature. |
oauth_timestamp
|
Tidsstempel for, hvornår signaturen blev oprettet. |
oauth_nonce
|
Valgfri. Giver serviceudbyderen mulighed for at bekræfte, at der ikke er oprettet en anmodning tidligere og hjælper med til at forhindre genafspilningsangreb. |
oauth_version
|
Valgfri. Hvis dette er inkluderet, skal OAuth-versionen være 1.0 for dette forløb. |
Salesforce validerer anmodningen og sender et gyldigt sessions-id til den tilsluttede app. Sessions-id'et har en kort levetid og er kun gyldigt for frontdoor.jsp. Hvis du vil have et session-id, der kan bruges direkte, skal du bruge udveksling af API-adgangstoken.
Når den tilsluttede app er i besiddelse af et gyldigt adgangstoken, kan den anmode om at få adgang til Salesforce-data ved brug af Lightning-platforms-API. Den tilsluttede app kan sende en anmodning til https://login.salesforce.com/services/OAuth/type/api-version.
Erstat URL-variablerne med følgende:
- type skal have en af følgende værdier:
u– Partner WSDLc– Enterprise WSDL
- api-version skal være en gyldig API-version.
Medtag følgende parametre i HTTPS POST-autorisationssidehovedet.
| Parameter | Beskrivelse |
|---|---|
oauth_consumer_key |
Forbrugernøglen for den tilsluttede app. Hvis du vil have adgang til forbrugernøglen, skal du fra Appstyring finde den tilsluttede app og vælge Vis fra rullelisten. Klik derefter på Administrer forbrugerdetaljer. Du bliver nogle gange bedt om at bekræfte din identitet. |
oauth_token |
Det adgangstoken, som den tilsluttede app modtog fra Salesforce. |
oauth_signature_method |
OAuth-signaturmetoden skal være HMAC-SHA1 for dette forløb. |
| oauth_signature | Den OAuth-signatur, der bruges til login, som du genererer i henhold til OAuth-specifikationen for HMAC-SHA1. Se oauth_signature. |
oauth_timestamp |
Tidsstempel for, hvornår signaturen blev oprettet. |
oauth_nonce |
Valgfri. Giver serviceudbyderen mulighed for at bekræfte, at der ikke er oprettet en anmodning tidligere og hjælper med til at forhindre genafspilningsangreb. |
oauth_version |
Valgfri. Hvis dette er inkluderet, skal OAuth-versionen være 1.0 for dette forløb. |
Salesforce validerer anmodningen og sender et gyldigt sessions-id til forbrugeren. Svarsidehovedet indeholder følgende indhold.
<response>
<metadataServerUrl>https://yourInstance.salesforce.com/services/Soap/m/17.0/00D300000006qjK
</metadataServerUrl>
<sandbox>false</sandbox>
<serverUrl>https://yourInstance.salesforce.com/services/Soap/u/17.0/00D300000006qjK
</serverUrl>
<sessionId>00D300000006qrN!AQoAQJTMzwTa67tGgQck1ng_xgMSuWVBpFwZ1xUq2kLjMYg6Zq
GTS8Ezu_C3w0pdT1DMyHiJgB6fbhhEPxKjGqlYnlROIUs1</sessionId>
</response>