Guia de Conexão do Salesforce JWT OAuth¶
Nota
Este guia de conexão é o processo recomendado para autenticação de conta de serviço entre Vinyl e Salesforce. Consulte o Provedor de segurança - Salesforce / OpenID Connect se você deseja configurar a autenticação de conta em nível de usuário.
Pré-requisitos¶
- Você deve estar no Vinyl versão 3.1.32967 ou posterior.
- Você deve ter uma conta do Salesforce com pelo menos uma licença de usuário ativa do Salesforce e um ambiente sandbox ao qual se conectar.
Limitações¶
- Você só pode ter uma conexão Salesforce JWT por instância do Vinyl.
Criando um Certificado¶
O Salesforce aceita apenas JWTs assinados RSA SHA256, portanto, você precisa de um certificado x509 e sua chave privada associada.
-
Baixe e instale o OpenSSL
-
OpenSSL é uma ferramenta completa para criptografia e comunicação segura. Você pode baixá-lo gratuitamente: https://www.openssl.org/
-
Você também pode instalar o Git, pois ele tem OpenSSL instalado internamente: https://git-scm.com/
-
-
Após a instalação do OpenSSL, prossiga para criar um certificado e uma chave X509
-
Abra um terminal ou linha de comando, execute OpenSSL e execute o seguinte comando para criar um certificado e um arquivo de chave:
req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout myKey.key -out myCertificate.crt
-
Você será solicitado a preencher detalhes como país, nome comum ou endereço de Email. Não é necessário preencher todas as informações, mas o Nome Comum é obrigatório.
-
-
Após executar o comando acima, você deverá encontrar dois arquivos criados
Nota
Certifique-se de anotar ou copiar os arquivos do certificado e da chave para um local de fácil acesso
Configuração no Salesforce¶
Agora que temos nosso certificado, precisamos criar um aplicativo conectado no Salesforce.
Crie um Aplicativo OAuth Personalizado¶
- Faça login em Salesforce .com ou em seu ambiente sandbox do Salesforce
- Na página inicial, vá para Ferramentas da plataforma > Aplicativos > Gerenciador de aplicativos
- Clique no botão Novo aplicativo conectado e digite o seguinte:
- Nome do aplicativo conectado - O nome deve conter o nome do sistema e da integração, como Vinyl Integration para identificá-lo facilmente, mas pode ser o que você desejar
- Nome da API - Deixe o Salesforce preencher isso com base no nome do aplicativo conectado
- Email de contato - Qualquer email que você desejar
- Ativar configurações de OAuth - Marque esta caixa de seleção e as seguintes configurações aparecerão
- URL de retorno de chamada -
sfdc://oauth/jwt/success
- Usar assinaturas digitais - Marque esta caixa de seleção e carregue o arquivo myCertificate.crt que criamos anteriormente
- Escopos OAuth selecionados - Escolha "Gerenciar dados do usuário via APIs (api)", "Acesso total (completo)" e "Executar solicitações a qualquer momento (refresh_token, offline_access)
- Clique em Salvar e em Continuar
- Agora que o aplicativo conectado foi criado, precisamos copiar o ID do cliente e o Segredo do cliente para este aplicativo
- Na página principal do aplicativo conectado, clique no botão intitulado "Gerenciar detalhes do consumidor". Isso deve abrir uma nova página após a conclusão de um prompt de segurança, que contém o ID do cliente e o segredo do cliente do aplicativo. Anote isso, pois precisaremos dele mais tarde.
- Em seguida, precisamos ajustar as configurações do aplicativo conectado para pré-aprovar nosso usuário
- Na página do aplicativo conectado, clique no botão "Gerenciar" na parte superior da tela e, na página seguinte, clique no botão "Editar políticas"
- Na seção Políticas OAuth, alterou o menu suspenso Usuários permitidos de "Todos os usuários podem se autoautorizar" para "Usuários aprovados pelo administrador são pré-autorizados"
- Clique em Salvar
- Assim que a página for atualizada, você deverá ver uma seção "Perfis" perto da parte inferior. Clique no botão "Gerenciar perfis".
- Adicione o perfil que você está conectando, neste exemplo estamos usando o perfil Administrador do Sistema
- Clique em Salvar
- Isso conclui a seção de configuração do Salesforce
Configuração no App Server¶
Agora que criamos o aplicativo no Salesforce e carregamos nosso certificado nele, precisamos colocar o arquivo Key no servidor do aplicativo em que o Vinyl está sendo executado, para permitir que o Vinyl o acesse.
-
Na aplicação ou servidor Vinyl, crie ou utilize uma pasta existente para colocar o certificado e arquivo de chave que geramos anteriormente. Este exemplo mostra uma pasta criada chamada JWT.
-
Clique com o botão direito na pasta em que esses arquivos estão localizados e clique em Propriedades e depois na aba Segurança. Certifique-se de que esta pasta tenha controle total sobre o pool de aplicativos no qual o Vinyl está implantado.
-
Isso conclui a configuração no servidor de aplicativos
Configuração em Vinyl¶
Crie a Fonte de Dados Salesforce ADO.NET no Vinyl¶
Agora que criamos o aplicativo no Salesforce e carregamos nosso certificado nele, podemos prosseguir com a criação da fonte de dados do Salesforce no Vinyl.
- Acesse Vinyl IDE e clique em Data Servers
- Clique no botão + Servidor para adicionar uma nova fonte de dados
- Atribua um Nome de servidor
- Defina o Tipo como Salesforce ADO.NET
-
Clique em Salvar. Certifique-se de marcar a caixa de seleção Sandbox se estiver se conectando a uma instância de sandbox.
-
Depois que a fonte de dados for salva, clique no ícone da maleta Configurações avançadas
-
Em seguida, clique em Editar e expanda a seção Avançado
-
Defina as seguintes configurações:
- AuthScheme - OAuthJWT
- OAuthJWTCertType - PEMKEY_FILE
- OAuthJWTCert -Localização do arquivo chave que criamos anteriormente, deve estar em uma pasta em algum lugar. Por exemplo: C:\JWT\myKey.key
- OAuthJWTIssuer - Este é o valor do ID do cliente que obtivemos do Salesforce anteriormente.
- OAuthJWTSubject - Este deve ser seu email do Salesforce ou o email do usuário do Salesforce com o qual estamos autenticando.
Nota
Insira cada configuração no campo Avançado agrupadas em uma linha sem espaços e separe cada configuração com ponto e vírgula
(;)
. Aqui está um exemplo: -
Agora que está tudo configurado, role para baixo e teste a conexão. Se tudo foi configurado corretamente, você receberá uma mensagem de Sucesso.
- Agora você pode importar tabelas e acessar dados do Salesforce