OAuth 2.0-stroom voor clientinloggegevens voor integratie tussen servers
Soms wilt u informatie rechtstreeks delen tussen twee toepassingen zonder dat er een gebruiker aan te pas moet komen. Voor deze scenario's kunt u de OAuth 2.0-stroom voor clientinloggegevens gebruiken. Met deze stroom wisselt uw clienttoepassing de bijbehorende clientinloggegevens die zijn gedefinieerd in de verbonden app (bestaande uit de consumentensleutel en het consumentengeheim), uit voor een toegangstoken. Deze stroom elimineert de noodzaak voor expliciete gebruikersinteractie, maar u moet wel een integratiegebruiker opgeven om de integratie uit te voeren. U kunt deze stroom gebruiken als een veiliger alternatief voor de OAuth 2.0-stroom username-password.
Vereiste editions
| Beschikbaar in: zowel Salesforce Classic als Lightning Experience |
| Beschikbaar in: Alle editions |
Zie Nieuwe verbonden apps kunnen niet meer worden gemaakt in Spring '26 voor meer informatie.
Als u de stroom voor clientinloggegevens wilt gebruiken, moet u een verbonden app maken en de bijbehorende OAuth-instellingen en toegangsbeleidsvormen configureren.
U bouwt bijvoorbeeld een aangepaste app voor het uitvoeren van geautomatiseerde rapporten vanuit Salesforce. U wilt de app elke nacht rapporten laten uitvoeren. Om de aangepaste app te integreren met Salesforce, stelt u een verbonden app in. U kunt de verbonden app vervolgens configureren voor de stroom voor clientinloggegevens door de stroom in te schakelen en een integratiegebruiker toe te wijzen. Wanneer de service voor nachtelijke rapporten start, krijgt uw aangepaste app toegang tot Salesforce-gegevens met behulp van de onderstaande, kort beschreven stappen.
- De verbonden app stuurt de clientinloggegevens via een POST-verzoek naar het Salesforce token-eindpunt van OAuth.
- Salesforce valideert de clientinloggegevens en authenticeert de app.
- Salesforce retourneert een toegangstoken namens de integratiegebruiker die u hebt toegewezen.
- De verbonden app gebruikt het toegangstoken om een Salesforce-API aan te roepen, zoals de REST-API.
- De API antwoordt met de gevraagde gegevens voor het rapport.
Toegangstoken aanvragen
Laten we het proces voor het ophalen van een toegangstoken met de stroom voor clientinloggegevens eens nader bekijken.
De verbonden app initieert de stroom door de clientinloggegevens via POST te versturen naar het token-eindpunt van Salesforce. U kunt de clientinloggegevens als parameters opnemen in de hoofdtekst van het verzoek. Als u extra beveiliging wilt toevoegen, neemt u de clientinloggegevens op in een header voor basisautorisatie.
Dit is een voorbeeld van een POST-verzoek met de clientinloggegevens in de hoofdtekst van het verzoek.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
grant_type=client_credentials&
client_id=*******************&
client_secret=*******************Deze parameters moeten zijn opgenomen het verzoek.
| Parameter | Beschrijving |
|---|---|
client_id |
De consumentensleutel van de verbonden app. Als u toegang wilt tot de consumentensleutel, zoekt u in Appbeheer de verbonden app en selecteert u Weergeven in de vervolgkeuzelijst. Klik vervolgens op Consumentengegevens beheren. Soms wordt u gevraagd uw identiteit te verifiëren voordat u de consumentensleutel kunt weergeven. |
client_secret |
Het consumentengeheim van de verbonden app. Als u toegang wilt tot het consumentengeheim, zoekt u in Appbeheer de verbonden app en selecteert u Weergeven in de vervolgkeuzelijst. Klik vervolgens op Consumentengegevens beheren. Soms wordt u gevraagd uw identiteit te verifiëren voordat u het consumentengeheim kunt weergeven. |
grant_type |
Het OAuth 2.0-toekenningstype dat de verbonden app aanvraagt. Voor de stroom voor clientinloggegevens moet deze waarde zijn ingesteld op Zie 4.4 Client Credentials Grant (4.4 clientinloggegevens toekennen) in The OAuth 2.0 Authorization Framework van de Internet Engineering Task Force voor een gedetailleerde uitleg van het toekenningstype voor clientinloggegevens. |
Dit is een voorbeeld met de clientinloggegevens in een header voor basisautorisatie. Met deze notatie wordt de client_id toegevoegd aan de client_secret in de notatie client_id:client_secret en is de resulterende waarde Base64-gecodeerd.
POST /services/oauth2/token HTTP/1.1
Host: MyDomainName.my.salesforce.com
Header: Authorization: Basic
TXlDbGllbnRJRDpNeUNsaWVudFNlY3JldA==
grant_type=client_credentialsAls u deze notatie gebruikt, is de grant_type de enige verplichte parameter in de hoofdtekst van het verzoek. De grant_type moet zijn ingesteld op client_credentials.
Salesforce verleent een toegangstoken
Na validatie van de clientinloggegevens retourneert Salesforce een respons met daarin een toegangstoken en aangevraagde bereiken. De app kan het toegangstoken gebruiken om toegang te krijgen tot beschermde gegevens in Salesforce.
Dit is een voorbeeld van een respons met een toegangstoken in de JSON-indeling.
{
"access_token": "*******************",
"instance_url": "https://yourInstance.salesforce.com",
"id": "https://login.salesforce.com/id/XXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXX",
"token_type": "Bearer",
"scope": "id api",
"issued_at": "1657741493799",
"signature": "c2lnbmF0dXJl"
}Deze parameters zijn opgenomen in de respons.
| Parameter | Beschrijving |
|---|---|
access_token
|
Een OAuth-token dat een verbonden app gebruikt om toegang tot een beschermde resource aan te vragen namens de clienttoepassing. Het toegangstoken kan vergezeld gaan van aanvullende machtigingen in de vorm van bereiken. |
instance_url
|
Een URL die het exemplaar van de organisatie van de gebruiker aangeeft. Bijvoorbeeld: https://yourInstance.salesforce.com/. |
id
|
Een identiteits-URL die kan worden gebruikt om de organisatie en de integratiegebruiker te identificeren. De indeling van de URL is https://login.salesforce.com/id/orgID/userID. |
token_type
|
Een Bearer, dat wordt gebruikt voor alle responsen die een toegangstoken bevatten.
|
scope
|
De bereiken die zijn gekoppeld aan het toegangstoken. Bereiken definiëren meer gedetailleerd het type beschermde resources waartoe de client toegang kan krijgen. U wijst bereiken toe aan een verbonden app wanneer u deze samenstelt; tevens worden deze opgenomen bij de OAuth-tokens tijdens de autorisatiestroom. Omdat de stroom voor clientinloggegevens geen ondersteuning biedt voor UI-sessies en geen vernieuwingstoken uitgeeft, filtert Salesforce deze bereiken automatisch uit.
|
issued_at
|
Het tijdstempel voor wanneer de handtekening is gemaakt, in milliseconden. |
signature
|
Base64-gecodeerde HMAC-SHA256-handtekening ondertekend met de client_secret. De handtekening kan de aaneengeschakelde ID en issued_at bevatten, die u kunt gebruiken om te controleren of de identiteits-URL niet is gewijzigd sinds de server deze heeft verzonden. |
