> 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-docs/caf-product-guides-pt-br/guia-do-usuario/smart-auth.md).

# Smart Auth (identidade)

## **Objetivo**

O principal objetivo do Smart Auth SDK é provar que um usuário é realmente quem diz ser. O SDK funciona como uma forma de autenticação multifator para identidades registradas.

## **Como funciona**

O funcionamento do Smart Auth SDK pode ser visto no fluxograma abaixo:

```mermaid
flowchart TB
    A(<b>Solicita autenticação do usuário <br> via uma política) 
    B{<b>O <br> contexto do usuário <br> é conhecido?}
    C(<b>Executa todas as <br> etapas de reautenticação)
    E(<b>Retorna um atestado <br> de que o usuário é verdadeiro)
    D{<b>Todas elas <br> foram <br> aprovadas}
    F(<b>Retorna que a autenticação <br> do usuário falhou)
    G(<b>Envia o atestado ao seu <br> servidor para verificação)
    H(<b>Rejeita a solicitação do usuário)
    I{<b>Todas elas <br> foram <br> aprovadas?} 
    J(<b>Aprova a solicitação <br> do usuário)

    A --> B
    B --> |Sim| E
    B --> |Não| C
    C --> D
    D --> |Sim| E
    D --> |Não| F
    E --> G
    F --> H
    G --> I
    I --> |Sim| J
    I --> |Não| H

    style A color: #000,fill:#80EABE,stroke:#000,stroke-width:1px
    style B color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style C color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style D color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style E color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style F color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style G color: #FFFFFF,fill:#3A76CF,stroke:#000,stroke-width:1px
    style H color: #000,fill:#80EABE,stroke:#000,stroke-width:1px
    style I color: #000,fill:#ff999999,stroke:#000,stroke-width:1px
    style J color: #000,fill:#80EABE,stroke:#000,stroke-width:1px
```

Resumidamente:

1. Durante alguma rotina do seu aplicativo ou site (como login, alteração de senha ou transferências bancárias), será feita uma chamada ao SDK com o ID da política a ser verificada e o PersonId do usuário.
2. Receberemos a solicitação e, de acordo com a política, determinaremos se o contexto do usuário é conhecido.
   1. Se for, o SDK vai para o item 3.
   2. Se não, o usuário passará por todos os meios de autenticação exigidos pela política (por exemplo, autenticação facial, via SMS etc.).
      1. Se tudo estiver correto, o SDK vai para o item 3.
      2. Se qualquer um falhar, o SDK vai para o item 4.
3. O SDK retorna um JWT assinado usando sua `clientSecret` atestando que o usuário é quem diz ser.
   1. Você envia este JWT para sua API e verifica os detalhes e a assinatura.
      1. Se algo estiver incorreto, o usuário não será autenticado
      2. Se tudo estiver correto, o usuário será autenticado e estará liberado para executar a operação desejada.
   2. Fim da execução
4. O SDK retorna que o usuário não está autorizado.
   1. Fim da execução

## **Recursos úteis**

* [Iniciando a integração com o Smart Auth SDK](/caf-docs/caf-product-guides-pt-br/guia-do-usuario/smart-auth/getting-started.md)
* [Verificando a resposta no seu servidor](/caf-docs/caf-product-guides-pt-br/guia-do-usuario/smart-auth/checking-the-response.md)
* [Catálogo de Regras](/caf-docs/caf-product-guides-pt-br/guia-do-usuario/smart-auth/catalog-rules.md)

E estas são as versões do Smart Auth SDK que estão publicamente disponíveis hoje:

* [SDK Android](https://docs.caf.io/caf-sdk/android/cafsmartauth) (Android)
* [SDK iOS](https://docs.caf.io/caf-sdk/ios/cafsmartauth) (iOS)
* [SDK React Native](https://docs.caf.io/caf-sdk/react-native/cafsmartauth/getting-started) (React Native)
* [SDK Web](https://docs.caf.io/caf-sdk/web-javascript/getting-started/smartauth) (JavaScript)


---

# 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-docs/caf-product-guides-pt-br/guia-do-usuario/smart-auth.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.
