Fluxo de nome de usuário-senha do OAuth 2.0 para cenários especiais
Você pode usar o fluxo de nome de usuário e senha para autorizar um cliente, por meio de um aplicativo conectado, que já tenha as credenciais do usuário. Porém, recomendamos evitar esse fluxo porque ele envia e recebe credenciais. Use-o apenas se houver um alto grau de confiança entre o proprietário do recurso e o cliente, o cliente for um aplicativo de primeira parte, o Salesforce estiver hospedando os dados e não houver outros tipos de concessão disponíveis. Nesses casos, configure permissões do usuário para minimizar o acesso e proteger credenciais armazenadas contra acesso não autorizado.
Edições obrigatórias
| Disponível em: Salesforce Classic e Lightning Experience |
| Disponível em: Todas as edições |
O fluxo de nome de usuário e senha gera tokens de acesso, uma vez que IDs de Sessão do Salesforce não podem ser voltados para si próprios. Como os tokens de acesso são temporários, os aplicativos conectados que estão usando esse fluxo não são exibidos na página Uso de aplicativos OAuth conectados, mesmo que tenham uma sessão ativa. Esse fluxo não é compatível com tokens de atualização nem escopos. Os sites do Experience Cloud não oferecem suporte ao fluxo de nome de usuário e senha do OAuth 2.0.
Aqui estão as principais etapas envolvidas no fluxo de nome de usuário e senha.
- O aplicativo conectado solicita um token de acesso enviando as credenciais de login do usuário ao ponto de extremidade de token do Salesforce.
- Depois de verificar a solicitação, o Salesforce concede um token de acesso ao aplicativo conectado.
- O aplicativo conectado pode usar o token de acesso para acessar os dados protegidos em nome do usuário.
Solicitar uma chave de acesso
Para solicitar um token de acesso, o aplicativo conectado envia o nome de usuário e a senha como um POST fora de banda para o ponto de extremidade do Salesforce. Este POST é um exemplo.
grant_type=password&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&
client_secret=1955279925675241571&
username=testuser@salesforce.com&
password=mypasswordInclua essas credenciais no POST.
| Parâmetro | Descrição |
|---|---|
grant_type
|
O tipo de concessão OAuth 2.0 que o aplicativo conectado solicita. O valor deve ser password para esse fluxo. |
client_id
|
A chave de consumidor do aplicativo conectado. Para acessar a chave de consumidor, no Gerenciador de aplicativo, localize o aplicativo conectado e selecione Visualizar no menu suspenso. Então clique em Gerenciar detalhes do consumidor. Às vezes, você é solicitado a verificar sua identidade antes de visualizar a chave de consumidor. |
client_secret
|
O segredo do consumidor do aplicativo conectado. Para acessar o segredo de consumidor, no Gerenciador de aplicativo, localize o aplicativo conectado e selecione Visualizar no menu suspenso. Então clique em Gerenciar detalhes do consumidor. Às vezes, você é solicitado a verificar sua identidade para poder visualizar o segredo do consumidor. |
username
|
O nome de usuário referente ao usuário que o aplicativo está imitando. |
password
|
A senha referente ao usuário que o aplicativo está imitando. Ao usar o fluxo de nome de usuário e senha com a API, crie um campo na tela de login do nome de usuário e senha, em que os usuários possam especificar o token de segurança. O token de segurança é uma chave gerada automaticamente que deve ser adicionada ao final da senha para fazer login no Salesforce de uma rede não confiável. Concatene a senha e o token ao transmitir a solicitação para autenticação. |
format
|
Se não estiver incluído no cabeçalho da solicitação, você poderá especificar o formato de retorno esperado. O parâmetro
|
O Salesforce concede um token de acesso
Após a verificação da solicitação, o Salesforce envia uma resposta para o cliente.
Veja um exemplo de resposta.
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448832702",
"instance_url":"https://yourInstance.salesforce.com/",
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=",
"access_token":"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW19ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs",
"token_type":"Bearer"}Estes parâmetros estão no corpo da resposta.
| Parâmetro | Descrição |
|---|---|
id
|
Um URL de identidade que pode ser usado para identificar o usuário e consultar mais informações sobre o usuário. Veja os URLs de identidade. |
issued_at
|
Carimbo de data/hora de criação da assinatura em milissegundos. |
instance_url
|
Um URL que indica a instância da organização do usuário. Por exemplo: https://yourInstance.salesforce.com/.
|
signature
|
Assinatura HMAC-SHA256 com codificação Base64 realizada com client_secret. A assinatura pode incluir ID concatenado e issued_at value, que você pode usar para verificar se o URL da identidade não mudou desde que o servidor o enviou. |
access_token
|
Token OAuth que um aplicativo conectado usa para solicitar acesso a um recurso protegido em nome do aplicativo cliente. Permissões adicionais na forma de escopos podem acompanhar o token de acesso. |
token_type
|
Um tipo de token Bearer, que é usado para todas as respostas que incluem um token de acesso.
|

