> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-api/caf-api-pt-br/core-api/authentication.md).

# Autenticação

{% hint style="warning" %}
**Esta API está obsoleta.**

A Core API não é mais recomendada para novas integrações. Ela permanecerá funcional exclusivamente para clientes existentes. A migração para a [Connect API](/caf-api/caf-api-pt-br/connect/getting_started.md) é fortemente recomendada.

Para mais detalhes, consulte a [Política de descontinuação](/caf-api/caf-api-pt-br/deprecation-policy-for-resources.md).
{% endhint %}

## Autenticação

Para acessar os recursos da CAF usando a API REST, você primeiro precisará de um token JWT. Esse é um token que a CAF fornece para autorização e é usado pelo cliente ao fazer cada chamada de API.

Um token é um segredo que somente o cliente conhece. Assim como a autenticação básica, a autenticação baseada em token só é considerada segura se usada em conjunto com outros mecanismos de segurança, como HTTPS/SSL.

É possível definir a quais escopos os tokens terão acesso e quais ações ele pode executar nesse escopo. Use algum token que **não tenha as permissões necessárias** para acessar um recurso resultará em uma **403 "Proibido"** resposta, então você deve ter cuidado ao definir as permissões do seu token, verificando quais permissões são obrigatórias para cada recurso disponível.

{% hint style="warning" %}
Você pode criar quantos tokens precisar, então recomendamos definir as permissões mínimas necessárias para cada token.
{% endhint %}

Usuários da conta com as permissões apropriadas poderão criar tokens na Trust Platform seguindo as etapas abaixo:

### Obtendo seu token de acesso

{% embed url="<https://app.arcade.software/share/XbowwlHpSCtDMLyzs43K>" %}

**Exemplos de cabeçalhos da requisição:**

```json
{
    "Authorization": "Bearer $CAF_TOKEN"
}
```

{% hint style="warning" %}
Todas as chamadas à API são autenticadas e devem ter o token ao lado do `Bearer` prefixo no `Authorization` cabeçalho da requisição. Chamadas com um token de acesso ausente ou inválido retornarão o código **401 "Não autorizado"**.
{% endhint %}

### Melhores práticas para autenticação baseada em token

Para garantir uma integração segura e confiável ao usar autenticação baseada em token com nosso serviço, siga estas práticas recomendadas e evite armadilhas comuns.

#### ✅ Práticas recomendadas

| Prática                                         | Descrição                                                                                              |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| **Gere e assine tokens no servidor**            | Emita sempre JWTs a partir do seu sistema de backend confiável para evitar expor chaves de assinatura. |
| **Use HTTPS para todas as comunicações**        | Evite ataques man-in-the-middle e garanta criptografia em trânsito.                                    |
| **Monitore o uso e o comportamento dos tokens** | Implemente registro e monitoramento para detectar atividades anormais ou suspeitas.                    |

#### ❌ Práticas inseguras

| Prática                                                                | Risco                                                                                         |
| ---------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| **Gerar tokens no frontend**                                           | Expõe suas chaves de assinatura e compromete todo o sistema de autenticação.                  |
| **Armazenar chaves de assinatura ou segredos em apps frontend/mobile** | Segredos no código do lado do cliente podem ser extraídos e usados indevidamente.             |
| **Codificar segredos diretamente no código versionado**                | Segredos em repositórios de código podem vazar ou ser acessados por usuários não autorizados. |

{% hint style="warning" %}
**Aviso importante sobre autenticação e integrações**

Todas as integrações com as APIs da Caf devem ser implementadas exclusivamente via backend/lado do servidor. Integrações no lado do cliente ou baseadas em frontend podem ser bloqueadas e aumentam significativamente o risco de exposição da chave de autenticação.

A Caf monitora continuamente o uso e a exposição das chaves de autenticação. Qualquer chave identificada como exposta, comprometida ou usada em implementações não conformes será revogada imediatamente, o que pode resultar na interrupção da operação associada, sem aviso prévio.

É responsabilidade do integrador garantir conformidade com os padrões de autenticação recomendados e as melhores práticas de segurança descritas nesta documentação.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-api/caf-api-pt-br/core-api/authentication.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
