Ir para o conteúdo

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.

  1. 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/

  2. 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.

    Exemplo de prompt de comando do administrador

  3. Após executar o comando acima, você deverá encontrar dois arquivos criados

    Exemplo dos arquivos gerados

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

  1. Faça login em Salesforce .com ou em seu ambiente sandbox do Salesforce
  2. Na página inicial, vá para Ferramentas da plataforma > Aplicativos > Gerenciador de aplicativos
  3. 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)
  4. Clique em Salvar e em Continuar
  5. Agora que o aplicativo conectado foi criado, precisamos copiar o ID do cliente e o Segredo do cliente para este aplicativo
  6. 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.
  7. Em seguida, precisamos ajustar as configurações do aplicativo conectado para pré-aprovar nosso usuário
  8. 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"
  9. 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"
  10. Clique em Salvar
  11. Assim que a página for atualizada, você deverá ver uma seção "Perfis" perto da parte inferior. Clique no botão "Gerenciar perfis".
  12. Adicione o perfil que você está conectando, neste exemplo estamos usando o perfil Administrador do Sistema
  13. Clique em Salvar
  14. 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.

  1. 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.

    jwt_folder.png

  2. 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.

    jwt_properties.png

  3. 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.

  1. Acesse Vinyl IDE e clique em Data Servers
  2. Clique no botão + Servidor para adicionar uma nova fonte de dados
  3. Atribua um Nome de servidor
  4. Defina o Tipo como Salesforce ADO.NET
  5. Clique em Salvar. Certifique-se de marcar a caixa de seleção Sandbox se estiver se conectando a uma instância de sandbox.

    jwt_server.png

  6. Depois que a fonte de dados for salva, clique no ícone da maleta Configurações avançadas

  7. Em seguida, clique em Editar e expanda a seção Avançado

    serveradvanced.png

  8. 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:

    advancedsettings.png

  9. Agora que está tudo configurado, role para baixo e teste a conexão. Se tudo foi configurado corretamente, você receberá uma mensagem de Sucesso.

  10. Agora você pode importar tabelas e acessar dados do Salesforce