OAuth 2-vergunning
Destination SDK steunt verscheidene vergunningsmethodes aan uw bestemming. Onder deze is de optie om aan uw bestemming voor authentiek te verklaren door het OAuth 2 vergunningskaderte 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 op een andere manier Experience Platform in uw systeem registreren. Het doel is een cliëntidentiteitskaart 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/callback
https://platform-nld2.adobe.io/data/core/activation/oauth/api/v1/callback
https://platform-aus5.adobe.io/data/core/activation/oauth/api/v1/callback
https://platform-can2.adobe.io/data/core/activation/oauth/api/v1/callback
https://platform-gbr9.adobe.io/data/core/activation/oauth/api/v1/callback
https://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;
- De callback-URL van de Adobe (voor de autorisatiecode-subsidie).
Wat u 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 bestemmingsconfiguratietoevoegen, onder de customerAuthenticationConfigurations
parameter. Zie klantenauthentificatievoor 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 steunt de drie OAuth 2 subsidietypes in onderstaande lijst. Als u een douane OAuth 2 opstelling hebt, kan de Adobe het met behulp van douanevelden in uw integratie steunen. Raadpleeg de secties voor elk type subsidie voor meer informatie.
- U geeft de invoerparameters op volgens de instructies in de onderstaande secties. De Adobe-interne systemen verbinden met het vergunningssysteem van uw platform en grijpen outputparameters, die worden gebruikt om de gebruiker voor authentiek te verklaren en vergunning aan uw bestemming te handhaven.
- 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 2en 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 vergunningskader voor Destination SDK ontworpen die veranderingen in het bovengenoemde standaardgebiedspatroon kan behandelen terwijl het steunen van een mechanisme om ongeldige output, zoals verlopen toegangstokens automatisch opnieuw te produceren.
De output omvat in alle gevallen een toegangstoken, dat door Experience Platform wordt gebruikt om vergunning aan uw bestemming voor authentiek te verklaren en te handhaven.
Het systeem dat de 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 bestemmingsconfiguratiecreeert:
{
//...
"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"]
}
]
//...
}
authType
grant
accessTokenUrl
authorizationUrl
refreshTokenUrl
refreshTokenUrl
gelijk aan die van accessTokenUrl
.clientId
clientSecret
scope
OAuth 2 with Password Grant
Voor OAuth 2 de subsidie van het Wachtwoord (lees de RFC normen specs), vereist het Experience Platform de gebruikersbenaming en het wachtwoord van de gebruiker. In de vergunningsstroom, ruilt het Experience Platform deze geloofsbrieven voor een toegangstoken en, naar keuze, verfrist teken.
Adobe maakt gebruik van de standaardinvoer hieronder om bestemmingsconfiguratie te vereenvoudigen, met de capaciteit om waarden met voeten te treden:
- 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"
in de bestemmingsconfiguratie toevoegt, zal het systeem de gebruiker verzoeken om een gebruikersbenaming en een wachtwoord in het Experience Platform UI te verstrekken, wanneer zij aan uw bestemming voor authentiek verklaren.Aan opstelling deze vergunningsmethode voor uw bestemming, voeg de volgende lijnen aan uw configuratie toe, wanneer u een bestemmingsconfiguratiecreeert:
{
//...
"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"]
}
]
authType
grant
accessTokenUrl
clientId
clientSecret
scope
OAuth 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 configuratievoor 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 bestemmingsconfiguratiecreeert:
{
//...
"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"]
}
]
//...
}
authType
grant
accessTokenUrl
refreshTokenUrl
refreshTokenUrl
gelijk aan die van accessTokenUrl
.clientId
clientSecret
scope
Uw 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.name
authenticationDataFields.title
authenticationDataFields.description
authenticationDataFields.type
Geaccepteerde waarden:
string
, boolean
, integer
authenticationDataFields.isRequired
authenticationDataFields.format
"format":"password"
selecteert, versleutelt de 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.fieldType
authenticationDataFields.value
authenticationDataFields.type
.authenticationDataFields.authenticationResponsePath
Toegang token vernieuwen access-token-refresh
Adobe heeft een systeem ontworpen dat verlopen toegangstokens vernieuwt 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 de Adobe het malplaatjeverzoek 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.destinationServerType
URL_BASED
.accessTokenRequest.urlBasedDestination.url.templatingStrategy
- Gebruik
PEBBLE_V1
als u sjablonen voor de waarde inaccessTokenRequest.urlBasedDestination.url.value
gebruikt. - Gebruik
NONE
als de waarde in het veldaccessTokenRequest.urlBasedDestination.url.value
een constante is.
accessTokenRequest.urlBasedDestination.url.value
accessTokenRequest.httpTemplate.requestBody.templatingStrategy
- Gebruik
PEBBLE_V1
als u sjablonen gebruikt voor de waarden inaccessTokenRequest.httpTemplate.requestBody.value
. - Gebruik
NONE
als de waarde in het veldaccessTokenRequest.httpTemplate.requestBody.value
een constante is.
accessTokenRequest.httpTemplate.requestBody.value
accessTokenRequest.httpTemplate.httpMethod
POST
.accessTokenRequest.httpTemplate.contentType
Bijvoorbeeld:
application/x-www-form-urlencoded
of application/json
.accessTokenRequest.httpTemplate.headers
accessTokenRequest.responseFields.templatingStrategy
- Gebruik
PEBBLE_V1
als u sjablonen gebruikt voor de waarden inaccessTokenRequest.responseFields.value
. - Gebruik
NONE
als de waarde in het veldaccessTokenRequest.responseFields.value
een constante is.
accessTokenRequest.responseFields.value
accessTokenRequest.validations.name
accessTokenRequest.validations.actualValue.templatingStrategy
- Gebruik
PEBBLE_V1
als u sjablonen gebruikt voor de waarden inaccessTokenRequest.validations.actualValue.value
. - Gebruik
NONE
als de waarde in het veldaccessTokenRequest.validations.actualValue.value
een constante is.
accessTokenRequest.validations.actualValue.value
accessTokenRequest.validations.expectedValue.templatingStrategy
- Gebruik
PEBBLE_V1
als u sjablonen gebruikt voor de waarden inaccessTokenRequest.validations.expectedValue.value
. - Gebruik
NONE
als de waarde in het veldaccessTokenRequest.validations.expectedValue.value
een constante is.
accessTokenRequest.validations.expectedValue.value
Sjabloonconventies 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 taalvertrouwd te maken die door Adobe wordt gebruikt en naar de malplaatjeverdrag 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 met Destination SDK de OAuth 2-ondersteunde bestemming instellen. Lees Destination SDK van het Gebruik om uw bestemmingvoor volgende stappen te vormen.