# Como configurar a Account Lockout Policy

import DocButton from '~/components/webkit/DocButton.vue';
import Tag from '~/components/webkit/Tag.vue';

<Tag severity="info">Preview</Tag>

A **Account Lockout Policy** permite que você defina o número máximo de tentativas falhadas que um usuário pode realizar antes de bloquear o acesso, por um período pré-definido. Durante este período, o usuário não pode tentar fazer login novamente, prevenindo o acesso não autorizado.

Este guia lhe orienta na configuração da Account Lockout Policy.

<DocButton href="/pt-br/documentacao/produtos/gestao-de-contas/account-lockout-policy/" label="Saiba mais sobre Account Lockout Policy" kind="secondary" target="_blank" size="medium" />

:::note
Quando uma organização configura a Account Lockout Policy, a política se aplica a todos os níveis de conta.

A política está disponível por padrão para clientes com o [suporte](https://www.azion.com/pt-br/servicos-profissionais/) **Enterprise** e **Mission Critical**.
:::

---

## Configure uma política de bloqueio de conta

:::note
Para configurar a Account Lockout Policy, você deve ter privilégios de *Account Owner*.

Se você não for um *Account Owner* ou se a conta não tiver a política ativada, o sistema retornará um *Erro 403*.
:::

1. Execute a seguinte requisição `GET` no seu terminal para obter o status atual da Account Lockout Policy na sua conta.
    - Por padrão, a política está *inativo*.

```bash
curl --request GET \
  --url https://api.azion.com/v4/auth/policies/lockout \
  --header 'Accept: application/json' \
  --header 'Authorization: 123'
```

2. Você receberá uma resposta semelhante a esta:

```bash
{
  "data": {
    "active": false,
    "max_attempts": 1,
    "blocking_period": 0
  }
}
```

3. Execute a seguinte requisição `PUT` no seu terminal para atualizar o status da Account Lockout Policy na sua conta.

```bash
curl --request PUT \
  --url https://api.azion.com/v4/auth/policies/lockout \
  --header 'Accept: application/json' \
  --header 'Authorization: 123' \
  --header 'Content-Type: application/json' \
  --data '{
 	 "active": true,
  	"max_attempts": 1,
  	"blocking_period": 0
   }'
```

Onde: 

| Chave | Tipo | Descrição |
| ----------- | ----------- | ----------- |
| `active` | Booleano | Define o status da política. Valores aceitos: `true` e `false`. Valor padrão: `false` |
| `max_attempts` | Inteiro | Define o número máximo de tentativas falhadas antes do bloqueio. Valor padrão: `3` |
| `blocking_period` | Inteiro | Define o tempo que uma conta de usuário permanece bloqueada após atingir o número máximo de tentativas de login falhadas. Durante este período, o usuário não pode tentar fazer login novamente, prevenindo o acesso não autorizado. Valor padrão: `1440`, equivalente a *24 horas em minutos* |

4. Você receberá uma resposta semelhante a esta:

```bash
{
  "state": "executed",
  "data": {
    "active": true,
    "max_attempts": 1,
    "blocking_period": 0
  }
}
```

:::tip
Para confirmar o status da sua Account Lockout Policy, execute uma requisição GET conforme explicado no Passo 1.
:::

Pronto. A Account Lockout Policy agora está ativa na sua conta. Agora, os usuários serão bloqueados se excederem o número máximo permitido de tentativas de login falhadas, pelo período definido.

:::tip
Confira a [documentação da API da Azion](https://api.azion.com/) para saber mais sobre todos os recursos disponíveis via API.
:::