---
name: azion-instale-a-integracao-signed-cookies
description: >-
  Instale o Signed Cookies Hash Generator e o Hash Validator pelo Azion Marketplace e execute-os em uma aplicação para detectar cookies adulterados.
---

# Instale a integração Signed Cookies

Signed Cookies protege os cookies que você lista contra alterações feitas no lado do cliente. São duas integrações que rodam na mesma aplicação, e ambas estão entre as [integrações do Marketplace](/pt-br/documentacao/plataforma/marketplace/integracoes/). Na fase de resposta, o **Hash Generator** anexa à resposta uma versão criptografada de cada cookie listado. Na fase de requisição, o **Hash Validator** compara os cookies com as suas versões criptografadas e adiciona headers de violação à requisição quando eles diferem.

Um cookie assinado permite que a sua aplicação verifique que nenhum terceiro alterou os dados da sessão, o que protege contra o sequestro de sessão. Sete objetos precisam existir antes de uma requisição ser verificada: as duas funções instaladas, uma aplicação com os módulos **Functions** e **Application Accelerator** ligados, uma instância de função por integração e uma regra do Rules Engine por instância.

---

## Pré-requisitos

- Uma conta Azion. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).
- Uma [aplicação](/pt-br/documentacao/plataforma/applications/) servida por um [workload](/pt-br/documentacao/plataforma/workloads/). Para criar uma, consulte [Primeiros passos com Applications](/pt-br/documentacao/plataforma/applications/primeiros-passos/).
- Ligar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte [Preços](/pt-br/documentacao/fundamentos/precos/).

---

## Instale as integrações

Cada instalação adiciona uma função à sua conta: *Signed Cookies - Hash Generator* e *Signed Cookies - Hash Validator*. Para instalá-las pelo Azion Console:

1. **Abra o Marketplace**

   Acesse [Azion Console](https://console.azion.com/) > **Marketplace**.

2. **Encontre o Hash Generator**

   Informe `Signed Cookies` no campo **Search on Marketplace** e selecione o card **Signed Cookies - Hash Generator**. Navegar pelos cards e pelas categorias alcança a mesma página.

3. **Selecione Install**

4. **Instale o Hash Validator**

   Volte ao **Marketplace**, selecione o card **Signed Cookies - Hash Validator** e selecione **Install**.

Cada card mostra `Successfully installed!` e `Latest version installed!`, e as duas funções aparecem na lista **Function** do drawer **Create Instance**.

---

## Ligue o módulo Functions

Uma aplicação executa uma função instalada apenas quando o seu módulo **Functions** está ligado. A regra que executa o Hash Validator também usa o behavior **Forward Cookies**, que exige o módulo **Application Accelerator**. Para ligar os dois módulos:

1. **Abra a sua aplicação**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação**.

2. **Abra a seção Modules**

   Na aba **Main Settings**, vá até a seção **Modules**.

3. **Ligue o switch Functions**

4. **Ligue o switch Application Accelerator**

5. **Selecione Save**

O Azion Console confirma que a aplicação foi atualizada.

---

## Crie as instâncias de função

Cada integração precisa da sua própria instância de função, com os seus próprios argumentos. O Hash Generator roda na fase de resposta e o Hash Validator na fase de requisição. Para criar as duas instâncias na sua aplicação:

1. **Abra a aba Functions Instances**

   Em **Applications**, selecione a sua aplicação e selecione a aba **Functions Instances**.

2. **Selecione + Function**

   Uma aplicação ainda sem instância oferece a mesma ação como **Function Instance**. O drawer **Create Instance** abre.

3. **Nomeie a instância**

   Em **Name**, informe um nome único que identifique a instância. Por exemplo: `signed-cookies-generator`.

4. **Selecione a função**

   Em **Function**, selecione a função *Signed Cookies - Hash Generator*. O editor **Arguments** é preenchido com os argumentos padrão da integração.

5. **Edite os argumentos**

   Em **Arguments**, informe os argumentos do Hash Generator descritos abaixo.

6. **Selecione Save**

7. **Crie a instância do Hash Validator**

   Repita estes passos com um nome como `signed-cookies-validator`, a função *Signed Cookies - Hash Validator* e os argumentos do Hash Validator.

As duas instâncias aparecem na aba **Functions Instances** com os nomes que você informou.

### Argumentos do Hash Generator

```json
{
  "cookie_list": ["yummy_cookie", "tasty_cookie"],
  "cookie_secret": "ItIsASecret",
  "tampering_cookie_prefix": "tampering_protection"
}
```

| Chave                     | Descrição                                                                                                    |
| ------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `cookie_list`             | Os cookies a proteger. Para cada cookie desta lista, uma versão criptografada do cookie é anexada à resposta |
| `cookie_secret`           | Um segredo que protege o cookie criptografado contra manipulação no lado do cliente                          |
| `tampering_cookie_prefix` | O prefixo dos nomes dos cookies criptografados                                                               |

O prefixo define os nomes dos cookies criptografados. Com o valor `tampering_protection` e os cookies `yummy_cookie` e `tasty_cookie`, a função cria `tampering_protection_yummy_cookie` e `tampering_protection_tasty_cookie`.

Se `tampering_cookie_prefix` não tiver um valor válido, a função usa o padrão `azion_tampering`. Os cookies criptografados passam a ser `azion_tampering_yummy_cookie` e `azion_tampering_tasty_cookie`.

### Argumentos do Hash Validator

```json
{
  "cookie_list": ["yummy_cookie", "tasty_cookie"],
  "cookie_secret": "ItIsASecret",
  "tampering_cookie_prefix": "tampering_protection",
  "tampering_violation_header_prefix": "azion-tampering-violation"
}
```

O Hash Validator recebe as mesmas chaves do Hash Generator, mais `tampering_violation_header_prefix`. Esta chave define o prefixo dos headers que a função anexa à requisição quando detecta uma violação de cookie.

Com o valor `Cookie-Violation`, a função cria os headers `Cookie-Violation-Any`, `Cookie-Violation-Counter` e `Cookie-Violation-List`. Se a chave não tiver um valor válido, os padrões são `Azion-Tampering-Violation-Any`, `Azion-Tampering-Violation-Counter` e `Azion-Tampering-Violation-List`.

---

## Crie as regras

Cada instância roda apenas quando uma regra do Rules Engine a chama. A regra do Hash Generator roda na fase de resposta. A regra do Hash Validator roda na fase de requisição e adiciona o behavior **Forward Cookies**, que exige o módulo **Application Accelerator**. As duas regras abaixo correspondem a todas as requisições. Para criar as regras:

1. **Abra a aba Rules Engine**

   Em **Applications**, selecione a sua aplicação e selecione a aba **Rules Engine**.

2. **Selecione + Rule**

3. **Nomeie a regra do Hash Generator**

   Em **Name**, informe um nome para a regra. Por exemplo: `Sign cookies on every response`.

4. **Selecione a fase de resposta**

   Na seção **Phase**, selecione *Response Phase*.

5. **Defina o critério**

   Na seção **Criteria**, mantenha a variável `${uri}` e o operador *starts with* e informe `/` como argumento.

6. **Adicione o behavior Run Function**

   Na seção **Behaviors**, selecione *Run Function* e selecione a instância do Hash Generator pelo nome.

7. **Selecione Save**

8. **Crie a regra do Hash Validator**

   Selecione **+ Rule** novamente. Informe um nome, selecione *Request Phase* e defina o mesmo critério.

9. **Adicione o behavior Run Function**

   Na seção **Behaviors**, selecione *Run Function* e selecione a instância do Hash Validator pelo nome.

10. **Adicione o behavior Forward Cookies**

    Selecione **Add Behavior** e selecione *Forward Cookies*.

11. **Selecione Save**

A aba **Rules Engine** lista uma regra na fase de resposta e uma na fase de requisição. Uma requisição cujos cookies protegidos foram alterados chega à sua aplicação com os headers de violação.

Para cada critério e behavior que uma regra aceita, consulte [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/).

---

## Próximos passos

- [Integrações do Marketplace](/pt-br/documentacao/plataforma/marketplace/integracoes.md): As integrações que o Marketplace oferece, e a aplicação ou o firewall em que cada uma roda.
- [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine.md): Os critérios e behaviors que uma regra aceita, incluindo Run Function e Forward Cookies.
- [Instale a integração Request Variation Controller](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/integracoes/request-variation-controller.md): Como detectar usuários que mudam os argumentos da requisição com frequência demais, com um cookie assinado.
- [Atualize uma integração](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/integracoes/atualizar-uma-integracao.md): Como obter a versão mais recente de uma integração instalada, e o que uma atualização cria.
