> For the complete documentation index, see [llms.txt](https://docs.vaultid.com.br/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vaultid.com.br/workspace/cess/api/autenticacao-e-autorizacao-1.md).

# Autenticação e Autorização

O padrão oAuth2 é utilizado para autenticação e autorização. Todas as requisições devem possuir um http header “Authorization” que deve conter os dados de autenticação;

### Autenticação simples

A autenticação simples segue o padrão Basic Http Auth (<https://tools.ietf.org/html/rfc7617>), que basicamente é o envio do prefixo “Basic” concatenado com o schema encodado em base 64. O schema é definido por “username:otp”.

Request Ex:

| Authorization | Basic \<schema encodado em base64> |
| ------------- | ---------------------------------- |

Existem quatro escopos OAuth que podem ser utilizados:

* **single\_signature**: Token que permite a assinatura de apenas um hash, sendo invalidado após a sua utilização.
* **multi\_signature**: Token que permite a assinatura de múltiplos hashes em uma única requisição, sendo invalidado após a sua utilização.
* **signature\_session**: Token de sessão OAuth que permite várias assinaturas em várias chamadas à API, desde que o token esteja dentro do prazo de validade ou que não tenha sido revogado pela aplicação ou pelo usuário.
* **authentication\_session:** Token de sessão OAuth para autenticação do titular, não permitindo a realização de assinaturas ou outras utilizações da chave privada

**Observação:** Caso nenhum escopo seja informado, será considerado por padrão o **authentication\_session**.

### Autenticação com abertura de sessão

A autenticação com abertura de sessão envolve um parâmetro adicional para especificar se o access token será retornado ou não, no qual será o lifetime da sessão e se a sessão será automaticamente finalizada no fim da transação.

&#x20;   Caso seja enviado a flag “returnAccessToken” com o valor true, na resposta http do serviço será recebido o header “VCSchemaData”, que conterá o access token, o lifetime (da sessão) e o provider (id da nuvem configurado na variável de ambiente urlsMultiCloud).

&#x20;   Quando enviado o parâmetro lifetime, deve  ser enviado o tempo da sessão em segundos (respeitando as regras do provedor de serviços de criptografia em uso). Caso não seja enviado, o CESS irá utilizar o lifetime padrão da instância/aplicação.

&#x20;   Caso seja enviado o parâmetro autoRevoke com o valor false, ele irá desativar a revogação automática da sessão no fim da transação (útil para reuso de uma autenticação por um período)

Request Ex:

| Authorization | Basic \<schema encodado em base64>                  |
| ------------- | --------------------------------------------------- |
| VCSchemaCfg   | returnAccessToken=true;lifetime=999;autoRevoke=true |

Response Ex:

| VCSchemaData | accessToken;lifetime;provider |
| ------------ | ----------------------------- |

### Autenticação com sessão já aberta

Request Ex:

| Authorization | Bearer \<token de acesso> |
| ------------- | ------------------------- |

### Autenticação especial

A autenticação especial deve ocorrer através do Vault Cloud Schema (Somente para provedores crypto pki indicados).

O Schema pode ser definido da seguinte forma:

1. username:otp
2. username:otp\@ip
3. username:otp\@ip:port
4. username|accesstoken
5. username|accesstoken\@ip
6. username|accesstoken\@ip:port
7. provider-username:otp
8. provider-username:otp\@ip
9. provider-username:otp\@ip:port
10. provider-username|accesstoken
11. provider-username|accesstoken\@ip
12. provider-username|acesstoken\@ip:port

Request Ex:

| Authorization | VCSchema \<schema encodado em base64> |
| ------------- | ------------------------------------- |

### Revogar sessão

O serviço funciona para assinaturas attached (conteúdo anexado na assinatura) e detached (conteúdo não anexado na assinatura).

<mark style="color:green;">`POST`</mark> `http://cess.local/revoke`

#### Headers

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| Content-Type | string | application/json |

#### Request Body

| Name  | Type   | Description                                           |
| ----- | ------ | ----------------------------------------------------- |
| token | string | Token de acesso recebido durante a abertura de sessão |

{% tabs %}
{% tab title="200 " %}

```
{
    "revoked": true
}
```

{% endtab %}
{% endtabs %}


---

# 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.vaultid.com.br/workspace/cess/api/autenticacao-e-autorizacao-1.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.
