OAuth 2-vergunning
Destination SDK ondersteunt verschillende machtigingsmethoden voor uw bestemming. Onder deze is de optie om aan uw bestemming voor authentiek te verklaren door het OAuth 2 vergunningskader te gebruiken.
Deze pagina beschrijft de diverse OAuth 2 vergunningsstromen die door Destination SDK worden gesteund, en verstrekt instructies aan opstelling OAuth 2 vergunning voor uw bestemming.
Ondersteunde integratietypen supported-integration-types
Raadpleeg de onderstaande tabel voor meer informatie over de integratietypen die de op deze pagina beschreven functionaliteit ondersteunen.
Hoe te om OAuth 2 vergunningsdetails aan uw bestemmingsconfiguratie toe te voegen how-to-setup
Vereisten in uw systeem prerequisites
Als eerste stap moet u in uw systeem een app voor Adobe Experience Platform maken of Experience Platform op een andere manier in uw systeem registreren. Het doel is een cliënt-identiteitskaart en cliëntgeheim te produceren, die nodig zijn om Experience Platform aan uw bestemming voor authentiek te verklaren.
Als onderdeel van deze configuratie in uw systeem hebt u de Adobe Experience Platform OAuth 2 omleiding/callback-URL's nodig, die u uit de onderstaande lijst kunt halen.
https://platform-va7.adobe.io/data/core/activation/oauth/api/v1/callbackhttps://platform-nld2.adobe.io/data/core/activation/oauth/api/v1/callbackhttps://platform-aus5.adobe.io/data/core/activation/oauth/api/v1/callbackhttps://platform-can2.adobe.io/data/core/activation/oauth/api/v1/callbackhttps://platform-gbr9.adobe.io/data/core/activation/oauth/api/v1/callbackhttps://platform.adobe.io/data/core/activation/oauth/api/v1/callback
Aan het eind van deze stap, zou u moeten hebben:
- een client-id;
- een clientgeheim;
- Adobe callback-URL (voor de autorisatiecode-subsidie).
Wat je moet doen in Destination SDK to-do-in-destination-sdk
Aan opstelling OAuth 2 vergunning voor uw bestemming in Experience Platform, moet u uw OAuth 2 details aan de bestemmingsconfiguratie toevoegen, onder de customerAuthenticationConfigurations parameter. Zie klantenauthentificatie voor gedetailleerde voorbeelden. Specifieke instructies over welke gebieden u aan uw configuratiemalplaatje, afhankelijk van uw OAuth 2 type van vergunningsvergunning moet toevoegen, zijn verder hieronder op deze pagina.
Ondersteunde OAuth 2-subsidietypen oauth2-grant-types
Experience Platform ondersteunt de drie OAuth 2-subsidietypen in de onderstaande tabel. Als u een aangepaste OAuth 2-instelling hebt, kan Adobe deze ondersteunen met behulp van aangepaste velden in uw integratie. Raadpleeg de secties voor elk type subsidie voor meer informatie.
- U geeft de invoerparameters op volgens de instructies in de onderstaande secties. Adobe-interne systemen maken verbinding met het autorisatiesysteem van uw platform en nemen uitvoerparameters op, die worden gebruikt om de gebruiker te verifiëren en de autorisatie naar uw bestemming te behouden.
- De invoerparameters die in de tabel vet worden gemarkeerd, zijn vereiste parameters in de OAuth 2-autorisatiestroom. De andere parameters zijn optioneel. Er zijn andere parameters van de douaneinput die niet hier worden getoond, maar bij lengte in de secties worden beschreven aanpassen uw configuratie OAuth 2 en het teken van de Toegang verfrist zich .
- clientId
- clientSecret
- bereik
- authenticationUrl
- accessTokenUrl
- refreshTokenUrl
- accessToken
- expiredIn
- refreshToken
- tokenType
- clientId
- clientSecret
- bereik
- accessTokenUrl
- gebruikersbenaming
- wachtwoord
- accessToken
- expiredIn
- refreshToken
- tokenType
- clientId
- clientSecret
- bereik
- accessTokenUrl
- accessToken
- expiredIn
- refreshToken
- tokenType
De bovenstaande tabel bevat een lijst met velden die worden gebruikt in standaard OAuth 2-stromen. Naast deze standaardgebieden, kunnen diverse partnerintegraties extra input en output vereisen. Adobe heeft een flexibel OAuth 2-machtigingskader voor Destination SDK ontworpen dat wijzigingen in het bovenstaande standaardveldpatroon kan verwerken en een mechanisme ondersteunt om automatisch ongeldige uitvoer te genereren, zoals verlopen toegangstokens.
De uitvoer bevat in alle gevallen een toegangstoken dat door Experience Platform wordt gebruikt voor verificatie en handhaving van de autorisatie voor uw bestemming.
Het systeem dat Adobe heeft ontworpen voor OAuth 2-autorisatie:
- Ondersteunt alle drie OAuth 2-subsidies en verwerkt eventuele variaties in deze subsidies, zoals extra gegevensvelden, niet-standaard API-aanroepen en meer.
- Ondersteunt toegangstokens met variërende levenwaarden, of het nu gaat om 90 dagen, 30 minuten of een andere levensduurwaarde die u opgeeft.
- Ondersteunt OAuth 2-machtigingsstromen met of zonder tokens vernieuwen.
OAuth 2 met vergunningscode authorization-code
Als uw bestemming een standaardOAuth 2.0 stroom van de Code van de Vergunning steunt (lees de RFC normen specs ) of een variatie van het, raadpleeg de vereiste en facultatieve hieronder gebieden:
- clientId
- clientSecret
- bereik
- authenticationUrl
- accessTokenUrl
- refreshTokenUrl
- accessToken
- expiredIn
- refreshToken
- tokenType
Aan opstelling deze vergunningsmethode voor uw bestemming, voeg de volgende lijnen aan uw configuratie toe, wanneer u een bestemmingsconfiguratie creeert:
{
//...
"customerAuthenticationConfigurations": [
{
"authType": "OAUTH2",
"grant": "OAUTH2_AUTHORIZATION_CODE",
"accessTokenUrl": "https://api.moviestar.com/OAuth/access_token",
"authorizationUrl": "https://www.moviestar.com/dialog/OAuth",
"refreshTokenUrl": "https://api.moviestar.com/OAuth/refresh_token",
"clientId": "Experience-Platform-client-id",
"clientSecret": "Experience-Platform-client-secret",
"scope": ["read", "write"]
}
]
//...
}
authTypegrantaccessTokenUrlauthorizationUrlrefreshTokenUrlrefreshTokenUrl gelijk aan die van accessTokenUrl .clientIdclientSecretscopeOAuth 2 with Password Grant
Voor OAuth 2 de subsidie van het Wachtwoord (lees de RFC normen specs ), vereist Experience Platform de gebruikersbenaming en het wachtwoord van de gebruiker. In de vergunningsstroom, ruilt Experience Platform deze geloofsbrieven voor een toegangstoken en, naar keuze, verfrist teken.
Adobe maakt gebruik van de standaardinvoer hieronder om de configuratie van de bestemming te vereenvoudigen, met de mogelijkheid om waarden te overschrijven:
- clientId
- clientSecret
- bereik
- accessTokenUrl
- gebruikersbenaming
- wachtwoord
- accessToken
- expiredIn
- refreshToken
- tokenType
username en password toe te voegen in de onderstaande configuratie. Wanneer u "grant": "OAUTH2_PASSWORD" toevoegt in de doelconfiguratie, vraagt het systeem de gebruiker een gebruikersnaam en wachtwoord op te geven in de Experience Platform-gebruikersinterface wanneer deze wordt geverifieerd op uw bestemming.Aan opstelling deze vergunningsmethode voor uw bestemming, voeg de volgende lijnen aan uw configuratie toe, wanneer u een bestemmingsconfiguratie creeert:
{
//...
"customerAuthenticationConfigurations": [
{
"authType": "OAUTH2",
"grant": "OAUTH2_PASSWORD",
"accessTokenUrl": "https://api.moviestar.com/OAuth/access_token",
"clientId": "Experience-Platform-client-id",
"clientSecret": "Experience-Platform-client-secret",
"scope": ["read", "write"]
}
]
authTypegrantaccessTokenUrlclientIdclientSecretscopeOAuth 2 met Client Credentials Grant
U kunt een OAuth 2 Credentials van de Cliënt vormen (lees de RFC normen specs ) bestemming, die de hieronder vermelde standaardinput en output steunt. U kunt de waarden aanpassen. Zie uw OAuth 2 configuratie voor details aanpassen.
- clientId
- clientSecret
- bereik
- accessTokenUrl
- accessToken
- expiredIn
- refreshToken
- tokenType
Aan opstelling deze vergunningsmethode voor uw bestemming, voeg de volgende lijnen aan uw configuratie toe, wanneer u een bestemmingsconfiguratie creeert:
{
//...
"customerAuthenticationConfigurations": [
{
"authType": "OAUTH2",
"grant": "OAUTH2_CLIENT_CREDENTIALS",
"accessTokenUrl": "https://api.moviestar.com/OAuth/access_token",
"refreshTokenUrl": "https://api.moviestar.com/OAuth/refresh_token",
"clientId": "Experience-Platform-client-id",
"clientSecret": "Experience-Platform-client-secret",
"scope": ["read", "write"]
}
]
//...
}
authTypegrantaccessTokenUrlrefreshTokenUrlrefreshTokenUrl gelijk aan die van accessTokenUrl .clientIdclientSecretscopeUw OAuth 2-configuratie aanpassen customize-configuration
De configuraties die in de bovenstaande secties worden beschreven, beschrijven standaard OAuth 2-subsidies. Nochtans, verstrekt het systeem dat door Adobe wordt ontworpen flexibiliteit zodat kunt u douaneparameters voor om het even welke variaties in OAuth 2 subsidie gebruiken. Als u de standaard OAuth 2-instellingen wilt aanpassen, gebruikt u de authenticationDataFields -parameters, zoals in de onderstaande voorbeelden wordt getoond.
Voorbeeld 1: authenticationDataFields gebruiken voor het vastleggen van informatie die afkomstig is van het antwoord op de machtiging example-1
In dit voorbeeld, heeft een bestemmingsplatform tokens verfrissen die na een bepaalde hoeveelheid tijd verlopen. In dit geval stelt de partner het aangepaste veld refreshTokenExpiration zo in dat de vervaldatum van het vernieuwingstoken wordt opgehaald uit het veld refresh_token_expires_in in de API-reactie.
{
"customerAuthenticationConfigurations":[
{
"authType":"OAUTH2",
"options":{
},
"grant":"OAUTH2_AUTHORIZATION_CODE",
"accessTokenUrl":"https://api.moviestar.com/OAuth/access_token",
"authorizationUrl":"https://api.moviestar.com/OAuth/authorization",
"scope":[
"read",
"write",
"delete"
],
"refreshTokenUrl":"https://api.moviestar.com/OAuth/accessToken",
"clientSecret":"client-secret-here",
"authenticationDataFields":[
{
"name":"refreshTokenExpiration",
"title":"Refresh Token Expires In",
"description":"Time in seconds when the refresh token will expire",
"type":"string",
"isRequired":false,
"source":"CUSTOMER",
"authenticationResponsePath":"refresh_token_expires_in"
}
]
}
]
}
Voorbeeld 2: met authenticationDataFields een speciaal vernieuwingstoken maken example-2
In dit voorbeeld, plaatst een partner - omhoog hun bestemming om speciaal te verstrekken verfrist teken. Bovendien wordt de vervaldatum voor toegangstokens niet teruggekeerd in de API reactie zodat kunnen zij een standaardwaarde, in dit geval 3600 seconden hardcoderen.
"authenticationDataFields": [
{
"name": "refreshToken",
"value": "special_refresh_token"
},
{
"name": "expiresIn",
"value": 3600
}
]
Voorbeeld 3: De gebruiker voert cliënt ID en cliëntgeheim in wanneer zij de bestemming vormen example-3
In dit voorbeeld, in plaats van het creëren van een globale cliëntidentiteitskaart en cliëntgeheim zoals aangetoond in de sectie Eerste vereisten in uw systeem , wordt de klant vereist om cliëntidentiteitskaart, cliëntgeheim, en rekeningsidentiteitskaart (identiteitskaart in te voeren die de klant gebruikt om in de bestemming te registreren)
{
//...
"customerAuthenticationConfigurations": [
{
"authType": "OAUTH2",
"grant": "OAUTH2_CLIENT_CREDENTIALS",
"authenticationDataFields": [
{
"name": "clientId",
"title": "Client ID",
"description": "Client ID",
"type": "string",
"isRequired": true,
"source": "CUSTOMER"
},
{
"name": "clientSecret",
"title": "Client Secret",
"description": "Client Secret",
"type": "string",
"isRequired": true,
"format": "password",
"source": "CUSTOMER"
},
{
"name": "moviestarId",
"title": "Moviestar ID",
"description": "Moviestar ID",
"type": "string",
"isRequired": true,
"source": "CUSTOMER"
}
],
"accessTokenRequest": {
"destinationServerType": "URL_BASED",
"urlBasedDestination": {
"url": {
"templatingStrategy": "PEBBLE_V1",
"value": "https://{{ authData.moviestarId }}.yourdestination.com/identity/oauth/token"
}
},
"httpTemplate": {
"requestBody": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{ formUrlEncode('grant_type', 'client_credentials', 'client_id', authData.clientId, 'client_secret', authData.clientSecret) | raw }}"
},
"httpMethod": "POST",
"contentType": "application/x-www-form-urlencoded"
},
"responseFields": [
{
"templatingStrategy": "PEBBLE_V1",
"value": "{{ response.body.access_token }}",
"name": "accessToken"
},
{
"templatingStrategy": "PEBBLE_V1",
"value": "{{ response.body.scope }}",
"name": "scope"
},
{
"templatingStrategy": "PEBBLE_V1",
"value": "{{ response.body.token_type }}",
"name": "tokenType"
},
{
"templatingStrategy": "PEBBLE_V1",
"value": "{{ response.body.expires_in }}",
"name": "expiresIn"
}
]
}
}
]
//...
}
U kunt de volgende parameters in authenticationDataFields gebruiken om uw configuratie aan te passen OAuth 2:
authenticationDataFields.nameauthenticationDataFields.titleauthenticationDataFields.descriptionauthenticationDataFields.typeGeaccepteerde waarden:
string , boolean , integerauthenticationDataFields.isRequiredauthenticationDataFields.format"format":"password" selecteert, versleutelt Adobe de waarde van het veld met machtigingsgegevens. Bij gebruik met "fieldType": "CUSTOMER" wordt hiermee ook de invoer in de gebruikersinterface verborgen wanneer de gebruiker in het veld typt.authenticationDataFields.fieldTypeauthenticationDataFields.valueauthenticationDataFields.type .authenticationDataFields.authenticationResponsePathToegang token vernieuwen access-token-refresh
Adobe heeft een systeem ontworpen waarmee verlopen toegangstokens worden vernieuwd zonder dat de gebruiker zich weer hoeft aan te melden bij uw platform. Het systeem kan een nieuw token genereren zodat de activering van uw bestemming naadloos voor de klant wordt voortgezet.
Om het teken van de opstellingstoegang te verfrissen zich, kunt u een templatized HTTP- verzoek moeten vormen die Adobe toestaat om een nieuw toegangstoken te krijgen, gebruikend verfrist symbolisch. Als het toegangstoken is verlopen, neemt Adobe het sjabloonverzoek dat door u wordt verstrekt, toevoegend de parameters u verstrekte. Gebruik de parameter accessTokenRequest om een toegangstoken te vormen verfrist zich mechanisme.
{
"customerAuthenticationConfigurations":[
{
"authType":"OAUTH2",
"grant":"OAUTH2_CLIENT_CREDENTIALS",
"accessTokenRequest":{
"destinationServerType":"URL_BASED",
"urlBasedDestination":{
"url":{
"templatingStrategy":"PEBBLE_V1",
"value":"https://{{authData.customerId}}.yourdestination.com/identity/oauth/token"
}
},
"httpTemplate":{
"requestBody":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{ formUrlEncode('grant_type', 'client_credentials', 'client_id', authData.clientId, 'client_secret', authData.clientSecret) | raw }}"
},
"httpMethod":"POST",
"contentType":"application/x-www-form-urlencoded",
"headers":[
]
},
"responseFields":[
{
"templatingStrategy":"PEBBLE_V1",
"value":"{{ response.body.expires_in }}",
"name":"expiresIn"
},
{
"templatingStrategy":"PEBBLE_V1",
"value":"{{ response.body.access_token }}",
"name":"accessToken"
}
],
"validations":[
{
"name":"access_token validation",
"actualValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{response.body.access_token is empty }}"
},
"expectedValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"false"
}
},
{
"name":"response status",
"actualValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"{{ response.status }}"
},
"expectedValue":{
"templatingStrategy":"PEBBLE_V1",
"value":"200"
}
}
]
}
}
]
}
U kunt de volgende parameters in accessTokenRequest gebruiken om uw token aan te passen vernieuwt proces:
accessTokenRequest.destinationServerTypeURL_BASED .accessTokenRequest.urlBasedDestination.url.templatingStrategy- Gebruik
PEBBLE_V1als u sjablonen voor de waarde inaccessTokenRequest.urlBasedDestination.url.valuegebruikt. - Gebruik
NONEals de waarde in het veldaccessTokenRequest.urlBasedDestination.url.valueeen constante is.
accessTokenRequest.urlBasedDestination.url.valueaccessTokenRequest.httpTemplate.requestBody.templatingStrategy- Gebruik
PEBBLE_V1als u sjablonen gebruikt voor de waarden inaccessTokenRequest.httpTemplate.requestBody.value. - Gebruik
NONEals de waarde in het veldaccessTokenRequest.httpTemplate.requestBody.valueeen constante is.
accessTokenRequest.httpTemplate.requestBody.valueaccessTokenRequest.httpTemplate.httpMethodPOST .accessTokenRequest.httpTemplate.contentTypeBijvoorbeeld:
application/x-www-form-urlencoded of application/json .accessTokenRequest.httpTemplate.headersaccessTokenRequest.responseFields.templatingStrategy- Gebruik
PEBBLE_V1als u sjablonen gebruikt voor de waarden inaccessTokenRequest.responseFields.value. - Gebruik
NONEals de waarde in het veldaccessTokenRequest.responseFields.valueeen constante is.
accessTokenRequest.responseFields.valueaccessTokenRequest.validations.nameaccessTokenRequest.validations.actualValue.templatingStrategy- Gebruik
PEBBLE_V1als u sjablonen gebruikt voor de waarden inaccessTokenRequest.validations.actualValue.value. - Gebruik
NONEals de waarde in het veldaccessTokenRequest.validations.actualValue.valueeen constante is.
accessTokenRequest.validations.actualValue.valueaccessTokenRequest.validations.expectedValue.templatingStrategy- Gebruik
PEBBLE_V1als u sjablonen gebruikt voor de waarden inaccessTokenRequest.validations.expectedValue.value. - Gebruik
NONEals de waarde in het veldaccessTokenRequest.validations.expectedValue.valueeen constante is.
accessTokenRequest.validations.expectedValue.valueSjabloonconventies templating-conventions
Afhankelijk van de aanpassing van uw toestemming, zou u tot gegevensgebieden in de vergunningsreactie kunnen moeten toegang hebben, zoals aangetoond in de vorige sectie. Om dat te doen, gelieve zich met de Pebble het trillen taal vertrouwd te maken die door Adobe wordt gebruikt en naar de malplaatjeovereenkomsten hieronder te verwijzen om uw OAuth 2 implementatie aan te passen.
{{ authData.accessToken }}{{ response.body.access_token }}{{ response.status }}{{ response.headers.server[0] }}{{ userContext.sandboxName }}{{ userContext.sandboxId }}{{ userContext.imsOrgId }}{{ userContext.client }} // the client executing the authorization attempt
Volgende stappen next-steps
Door dit artikel te lezen, hebt u nu inzicht in de OAuth 2 toestemmingspatronen die door Adobe Experience Platform worden gesteund en weet hoe te om uw bestemming met OAuth 2 vergunningssteun te vormen. Vervolgens kunt u Destination SDK gebruiken om uw door OAuth 2 ondersteunde bestemming in te stellen. Lees Destination SDK van het Gebruik om uw bestemming voor volgende stappen te vormen.