VocĆŖ estĆ” aqui:
Usar chaves de API em cabeƧalhos personalizados com credenciais nomeadas
Os serviƧos da Web geralmente definem seus próprios protocolos de autenticação usando cabeƧalhos personalizados. Nesses casos, Ć© possĆvel criar um cabeƧalho personalizado para uma credencial nomeada ou externa e usar chaves de API como uma senha.
Edições obrigatórias
| DisponĆvel em: Salesforce Classic (nĆ£o disponĆvel em todas as organizaƧƵes) e Lightning Experience |
| DisponĆvel em: todas as ediƧƵes |
O esquema de credenciais nomeadas inclui suporte para protocolos de autenticação, como OAuth 2.0 e AWS Signature v4. Alguns provedores de serviços da Web têm seus próprios protocolos de autenticação que usam cabeçalhos exclusivos para autenticação. Nesses casos, escolha um protocolo de autenticação Custom para suas credenciais externas e use um cabeçalho personalizado para se autenticar para esses sistemas.
Uma abordagem comum usada pelos provedores de serviƧos da Web para autenticação personalizada Ć© Chaves de API. AlĆ©m de autenticação, as chaves de API tambĆ©m podem ser usadas para vĆ”rios serviƧos relacionados a HTTP, como cache ou cookies. Para credenciais nomeadas, Ć© possĆvel criar um cabeƧalho personalizado que use chaves de API como um protocolo de autenticação com o valor de segredo da chave funcionando como uma senha.
Cada serviƧo da Web pode atribuir um nome a seus cabeƧalhos de forma arbitraria. Nomes comuns incluem ACCESS_TOKEN, bearer, Client-ID, developer-token e X-API-Key.
Para o padrão HTTP 1.x, uma chamada que usa uma chave de API (armazenada) pode se parecer da seguinte forma.
GET https://example.com HTTP/1.1
Client-ID: abc123Aqui, a chave de API Client-ID também é o nome do cabeçalho e abc123 é o valor da chave de API usada para autenticação. O nome e o valor são definidos pelo sistema de autenticação. Geralmente você recupera esses parâmetros por meio da interface de usuÔrio do sistema externo.
O padrão HTTP inclui um cabeçalho Authorization para autenticação. Por padrão, as credenciais nomeadas do Salesforce usam esse cabeçalho de autorização padrão. No entanto, você pode substituir o padrão e criar um cabeçalho de Autorização personalizado. Este exemplo mostra o cabeçalho de Authorization usado com uma chave de API.
GET https://example.com HTTP/1.1
Authorization: Client-ID abc123As etapas gerais para usar chaves de API com credenciais nomeadas são:
- Crie uma credencial externa, definindo o Protocolo de autenticação como Personalizado. Uma credencial externa armazena informações de autenticação e autorização e é usada por credenciais nomeadas.
- Armazene a chave de API como um parâmetro de autorização em uma entidade de segurança.
- Crie um cabeçalho personalizado para a credencial externa. O cabeçalho faz referência à chave de API.
- Crie uma credencial nomeada que faça referência à credencial externa.
Armazenar uma chave de API como um parâmetro de autenticação em uma entidade de segurança
Recomendamos fortemente armazenar os parâmetros de autenticação da chave de API como parte de uma entidade de segurança de credencial externa.
A chave de API Ć© um valor secreto. Os parĆ¢metros de autenticação devem conter segredos e sĆ£o armazenados de maneira criptografada consistente com outras informaƧƵes confidenciais. AlĆ©m disso, o acesso aos segredos Ć© concedido de maneira explĆcita usando uma entidade de seguranƧa.
Uma entidade de segurança vincula uma credencial externa a conjuntos de permissões e perfis. Ao adicionar parâmetros de autenticação a uma entidade de segurança, você permite que diferentes grupos de usuÔrios do Salesforce usem diferentes tokens de autenticação para chamar o mesmo serviço externo.
- Crie uma credencial externa e defina o campo Protocolo de autenticação como Personalizado. Para obter instruções sobre a criação e a configuração de credenciais externas, consulte Criar ou editar uma credencial externa de autenticação personalizada. Neste exemplo, a credencial externa se chama
MyCustAuthExternCred.
- Na pƔgina da credencial externa, role para Entidades de seguranƧa.
- Para criar uma entidade de seguranƧa, clique em Novo e defina estes campos.

- Nome do parâmetro
- Um nome para a entidade de seguranƧa, como Administrador ou Equipe de marketing.
- NĆŗmero de sequĆŖncia
- Esse número determina qual mapeamento é usado para a chamada, classificado do mais baixo para o mais alto. Defina o número de sequência caso um usuÔrio tenha vÔrios conjuntos de permissões usados em vÔrias entidades de segurança.
- Tipo de identidade
- A autenticação personalizada usa o tipo de identidade Entidade de seguranƧa nomeada. Entidade de seguranƧa nomeada indica que os usuĆ”rios do Salesforce compartilham uma chave de API e que eles nĆ£o tĆŖm acesso exclusivo ao serviƧo externo. NĆ£o Ć© possĆvel alterar o tipo de identidade para autenticação personalizada.
Nota No momento, apenas o protocolo OAuth oferece suporte a acesso exclusivo por usuÔrio a um sistema remoto. Nesse caso, cada usuÔrio faz login separadamente antes que a integração funcione no contexto do usuÔrio. - Nome
- O nome do parâmetro de autenticação. Neste exemplo, o nome é
MyClientId. - Valor
- O valor da chave de API. Em muitos casos, você obtém a chave de API da interface do usuÔrio da comunidade.
- Mapeie a entidade de segurança para um conjunto de permissões ou perfil. Consulte Habilitar entidades de segurança de credencial externa. Você pode mapear uma entidade de segurança para vÔrios conjuntos de permissões, grupos de conjuntos de permissões ou perfis.
Usar chaves de API em um cabeƧalho personalizado
Depois de adicionar chaves de API a uma entidade de segurança, você pode usar essas chaves em um cabeçalho personalizado.
- Na credencial externa criada, role para CabeƧalhos personalizados e clique em Novo.
- Preencha os campos do cabeƧalho personalizado.

- Nome
- O nome do cabeçalho de solicitação HTTP padrão conforme exigido pelo serviço externo. Neste caso, estamos realizando a autenticação, portanto, usamos o nome padrão HTTP "Autorização".
- Valor
- O nome e o valor da chave de API. Pode ser uma expressão literal ou programÔtica.
- O valor pode ser expresso programaticamente com campos de mesclagem e fórmulas. Por exemplo, o valor pode assumir esta forma.
{!'Client-ID ' & $Credential.Container.ParameterName} - Neste exemplo, a string literal
Client-IDé concatenada com a chave de API e a expressão é resolvida como:{!'Client-ID ' & $Credential.MyCustAuthExternCred.MyClientId} - As fórmulas podem ser usadas em valores de cabeçalho por meio da sintaxe
{!FormulaGoesHere}. Qualquer coisa dentro de{!}é avaliada como uma fórmula do Salesforce. As fórmulas oferecem poder e flexibilidade significativos para criar valores de cabeçalho sem codificação. - Os campos de mesclagem fornecem acesso a valores criptografados por meio da sintaxe
$Credential.Container.ParameterName. Neste exemplo, Container é a credencial externaMyCustAuthExternCred. ParameterName é o parâmetro de autenticação principalMyClientIdmapeado para o valor da chave de API. - Número de sequência
- Esse número determina qual cabeçalho "ganha" e é usado para a chamada, classificado do menor para o maior. Se não estiver preocupado com conflitos com outros cabeçalhos, deixe esse campo como o padrão.
A credencial externa agora mostra o cabeçalho personalizado com uma referência ao parâmetro de autorização que contém a chave de API.
Se Client-ID for abc123, a chamada resultante terÔ a aparência seguinte. A credencial nomeada é anexada Autorização: como o nome do cabeçalho.
GET https://example.com HTTP/1.1
Authorization: Client-ID abc123Usar chaves de API com uma credencial nomeada
Depois de criar uma credencial externa que usa chaves de API, ela pode ser referenciada por uma credencial nomeada.
- Desabilite Gerar cabeçalho de autorização na credencial nomeada. Desabilitar essa opção garante que a credencial nomeada use o cabeçalho de
Authorizationpersonalizado que você criou. - Nessa credencial nomeada, verifique se a opção Permitir fórmulas no cabeçalho HTTP estÔ habilitada.
A callout using this named credential returns successfully because it has the correct
Authorization header. If the tokens expire or the URL
changes, no changes to Apex code are needed. In addition to Apex, the credential can be used
in no-code tools such as External Services that provide integration with Flow.

