Salesforce
Criado para:
- Desenvolvedor
O Adobe Experience Platform permite que os dados sejam assimilados de fontes externas e, ao mesmo tempo, fornece a capacidade de estruturar, rotular e aprimorar os dados recebidos usando os serviços da Experience Platform. Você pode assimilar dados de várias fontes, como aplicativos da Adobe, armazenamento baseado em nuvem, bancos de dados e muitas outras.
A Experience Platform oferece suporte para assimilação de dados de um sistema CRM de terceiros. O suporte para provedores de CRM inclui Salesforce.
Configure sua origem Salesforce para o Experience Platform no Azure
Siga as etapas abaixo para saber como configurar sua conta do Salesforce para o Experience Platform no Azure.
LISTA DE PERMISSÕES de endereço IP
Uma lista de endereços IP deve ser adicionada a uma lista de permissões antes de trabalhar com conectores de origem. Falha ao adicionar endereços IP específicos da região à lista de permissões pode levar a erros ou ao não desempenho ao usar origens. Consulte a página lista de permissões de endereço IP para obter mais informações.
Mapeamento de campo de Salesforce para XDM
Para estabelecer uma conexão de origem entre Salesforce e o Experience Platform, os campos de dados de origem Salesforce devem ser mapeados para seus campos XDM de destino apropriados antes de serem assimilados na Experience Platform.
Consulte o seguinte para obter informações detalhadas sobre as regras de mapeamento de campos entre Salesforce conjuntos de dados e a Experience Platform:
Configurar o namespace Salesforce e o utilitário de geração automática de esquema
Para usar a origem Salesforce como parte de B2B-CDP, primeiro você deve configurar um utilitário Postman para gerar automaticamente seus namespaces e esquemas Salesforce. A documentação a seguir fornece informações adicionais sobre a configuração do utilitário Postman:
- Você pode baixar a coleção de utilitários de geração automática de namespace e esquema e o ambiente deste repositório do GitHub.
- Para obter informações sobre como usar as APIs do Experience Platform, incluindo detalhes sobre como coletar valores para cabeçalhos necessários e ler chamadas de API de exemplo, consulte o manual em introdução às APIs do Experience Platform.
- Para obter informações sobre como gerar suas credenciais para as APIs do Experience Platform, consulte o tutorial sobre autenticação e acesso às APIs do Experience Platform.
- Para obter informações sobre como configurar o Postman para APIs do Experience Platform, consulte o tutorial em configuração do console do desenvolvedor e Postman.
Com um console de desenvolvedor do Experience Platform e Postman configurados, agora você pode começar a aplicar os valores de ambiente apropriados ao seu ambiente Postman.
A tabela a seguir contém valores de exemplo, bem como informações adicionais sobre como preencher o ambiente Postman:
CLIENT_SECRET
{ACCESS_TOKEN}
. Consulte o tutorial sobre autenticação e acesso a APIs do Experience Platform para obter informações sobre como recuperar o {CLIENT_SECRET}
.{CLIENT_SECRET}
JWT_TOKEN
{JWT_TOKEN}
.{JWT_TOKEN}
API_KEY
{API_KEY}
.c8d9a2f5c1e03789bd22e8efdd1bdc1b
ACCESS_TOKEN
{ACCESS_TOKEN}
.Bearer {ACCESS_TOKEN}
META_SCOPE
ent_dataservices_sdk
.ent_dataservices_sdk
CONTAINER_ID
global
contém todas as classes, grupos de campos de esquema, tipos de dados e esquemas padrão fornecidos pelo parceiro da Adobe e da Experience Platform. Com relação a Marketo, esse valor é fixo e sempre é definido como global
.global
PRIVATE_KEY
{PRIVATE_KEY}
TECHNICAL_ACCOUNT_ID
D42AEVJZTTJC6LZADUBVPA15@techacct.adobe.com
IMS
ims-na1.adobelogin.com
.ims-na1.adobelogin.com
IMS_ORG
{ORG_ID}
.ABCEH0D9KX6A7WA7ATQE0TE@adobeOrg
SANDBOX_NAME
prod
TENANT_ID
b2bcdpproductiontest
PLATFORM_URL
http://platform.adobe.io/
.http://platform.adobe.io/
munchkinId
munchkinId
.123-ABC-456
sfdc_org_id
00D4W000000FgYJUA0
has_abm
false
has_msi
false
Execute os scripts
Com a coleção e o ambiente Postman configurados, agora é possível executar o script por meio da interface Postman.
Na interface Postman, selecione a pasta raiz do utilitário gerador automático e, em seguida, selecione Run no cabeçalho superior.
A interface Runner é exibida. Aqui, verifique se todas as caixas de seleção estão marcadas e selecione Run Namespaces and Schemas Autogeneration Utility.
Uma solicitação bem-sucedida cria os namespaces B2B e esquemas de acordo com as especificações beta.
Configure sua origem do Salesforce para o Experience Platform no Amazon Web Services
Siga as etapas abaixo para saber como configurar sua conta do Salesforce para o Experience Platform no Amazon Web Services (AWS).
Pré-requisitos
Para conectar sua conta do Salesforce à Experience Platform em uma região do AWS, você deve ter:
- Uma conta Salesforce com acesso à API.
- Um Salesforce Connected App que você pode usar para habilitar o fluxo de OAuth JWT_BEARER.
- As permissões necessárias em Salesforce para acessar dados.
INCLUI NA LISTA DE PERMISSÕES de endereço IP para conexão no AWS
Você deve adicionar endereços IP específicos da sua região à inclui na lista de permissões antes de conectar suas fontes à Experience Platform no AWS. Para obter mais informações, leia o manual sobre sobre como ler os endereços IP de incluir na lista de permissões para se conectar ao Experience Platform no AWS para obter mais informações.
Criar um Salesforce Connected App
Primeiro, use o seguinte para criar um par de certificados/chaves de arquivos PEM.
openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
- No painel Salesforce, selecione as configurações (
- Navegue até App Manager e selecione New Connection App.
- Forneça um nome para o aplicativo e permita que o restante dos campos seja preenchido automaticamente.
- Habilitar a caixa para Enable OAuth Settings.
- Defina uma URL de retorno de chamada. Como isso não será usado para JWT, você pode usar
https://localhost
. - Habilitar a caixa para Use Digital Signatures.
- Faça upload do arquivo cert.pem criado anteriormente.
Adicionar permissões necessárias
Adicione as seguintes permissões:
- Gerenciar dados do usuário por meio das APIs (api)
- Acessar permissões personalizadas (custom_permissions)
- Acessar o serviço de URL de identidade (id, perfil, email, endereço, telefone)
- Acessar identificadores exclusivos (openid)
- Executar solicitações a qualquer momento (refresh_token, offline_access)
Após adicionar suas permissões, habilite a caixa para Issue JSON Web Token (JWT)-based access tokens for named user.
Em seguida, selecione Save, Continue e Manage Customer Details. Use o painel de detalhes do consumidor para recuperar o seguinte:
- Chave do consumidor: posteriormente, você usará essa chave do consumidor como sua ID de cliente ao autenticar sua conta do Salesforce para a Experience Platform.
- Segredo do consumidor: posteriormente, você usará esse segredo do consumidor como sua ID de cliente ao autenticar sua conta do Salesforce para a Experience Platform.
Autorizar o usuário Salesforce para o Aplicativo Conectado
Siga as etapas abaixo para obter autorização para usar o Aplicativo conectado:
- Navegue até Manage Connected Apps.
- Selecione Edit.
- Configure Permitted Users como Admin approved users are pre-authorized e selecione Save.
- Navegue até Settings> Manage Users >Profiles.
- Edite o perfil associado ao usuário.
- Navegue até Connected App Access e selecione o aplicativo criado em uma etapa anterior.
Gerar token de portador JWT
Siga as etapas abaixo para gerar o token do portador JWT.
Converter par de chaves em pkcs12
Para gerar o token do portador JWT, primeiro use o seguinte comando para converter o certificado/par de chaves em formato pkcs12. Durante esta etapa, você também deve definir uma senha de exportação quando solicitado.
openssl pkcs12 -export -in cert.pem -inkey key.pem -name jwtcert >jwtcert.p12
Criar armazenamento de chaves java baseado em pkcs12
Em seguida, use o seguinte comando para criar um keystore java com base no pkcs12 que você acabou de gerar. Durante esta etapa, você também deve definir uma senha de armazenamento de chaves de destino quando solicitado. Além disso, você deve fornecer a senha de exportação anterior como a senha do armazenamento de chaves de origem.
keytool -importkeystore -srckeystore jwtcert.p12 -destkeystore keystore.jks -srcstoretype pkcs12 -alias jwtcert
Confirme se o keystroke.jks inclui um alias jwtcert
Em seguida, use o comando a seguir para confirmar se o seu keystroke.jks
inclui um alias jwtcert
. Durante esta etapa, você será solicitado a fornecer a senha do armazenamento de chaves de destino que foi gerada na etapa anterior.
keytool -keystore keystore.jks -list
Gerar token assinado
Finalmente, use a classe java JWTExample abaixo para gerar seu token assinado.
package org.example;
import org.apache.commons.codec.binary.Base64;
import java.io.*;
import java.security.*;
import java.text.MessageFormat;
public class Main {
public static void main(String[] args) {
String header = "{\"alg\":\"RS256\"}";
String claimTemplate = "'{'\"iss\": \"{0}\", \"sub\": \"{1}\", \"aud\": \"{2}\", \"exp\": \"{3}\"'}'";
try {
StringBuffer token = new StringBuffer();
//Encode the JWT Header and add it to our string to sign
token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
//Separate with a period
token.append(".");
//Create the JWT Claims Object
String[] claimArray = new String[5];
claimArray[0] = "{CLIENT_ID}";
claimArray[1] = "{AUTHORIZED_SALESFORCE_USERNAME}";
claimArray[2] = "{SALESFORCE_LOGIN_URL}";
claimArray[3] = Long.toString((System.currentTimeMillis() / 1000) + 2629746*4);
MessageFormat claims;
claims = new MessageFormat(claimTemplate);
String payload = claims.format(claimArray);
//Add the encoded claims object
token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("path/to/keystore"), "keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("jwtcert", "privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
//Separate with a period
token.append(".");
//Add the encoded signature
token.append(signedPayload);
System.out.println(token.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
claimArray[0]
claimArray[0]
com sua ID de cliente.claimArray[1]
claimArray[1]
com o nome de usuário Salesforce autorizado no aplicativo.claimArray[2]
claimArray[2]
com sua URL de logon Salesforce.claimArray[3]
claimArray[3]
com uma data de expiração formatada em milissegundos desde a época. Por exemplo, 3660624000000
é 12-31-2085./path/to/keystore
/path/to/keystore
pelo caminho correto para seu keystore.jkskeystorepassword
keystorepassword
pela senha do keystore de destino.privatekeypassword
privatekeypassword
pela senha do keystore de origem.Próximas etapas
Após concluir o pré-requisito configurado para sua conta do Salesforce, você pode prosseguir para conectar sua conta do Salesforce à Experience Platform e assimilar seus dados do CRM. Leia a documentação abaixo para obter mais informações:
Conectar o Salesforce ao Experience Platform usando APIs
A documentação abaixo fornece informações sobre como conectar o Salesforce ao Experience Platform usando APIs ou a interface do usuário: