Como utilizar a política CORS na Digibee Integration Platform

Entenda como funciona a política CORS e como usá-la na Digibee Integration Platform.

CORS (Cross-Origin Resource Sharing) é uma política de segurança implementada pelos navegadores da web que permite que um servidor restrinja quais origens podem acessar seus recursos por meio de solicitações HTTP.

É recomendado o uso do CORS sempre que um aplicativo web precisar fazer requisições HTTP para recursos localizados em um domínio ou porta diferente do onde o aplicativo está sendo hospedado. Isso ajuda a proteger o servidor contra ataques maliciosos que possam tentar acessar recursos indevidamente.

Como funciona

Quando uma página da web faz uma requisição para um domínio diferente, o navegador enviará primeiro uma solicitação de Preflight para o servidor desse domínio. Nesta “requisição de teste”, o servidor envia um conjunto de cabeçalhos (headers) que indicam se a solicitação é permitida. Caso a solicitação seja permitida, o navegador enviará a solicitação real.

Cabeçalhos (Headers)

Alguns dos cabeçalhos mais comuns usados ​​no CORS incluem:

  • Access-Control-Allow-Origin: Especifica quais origens que tem permissão para acessar o recurso. Pode ser um valor único (valor: *), que permite que qualquer origem acesse o recurso, ou uma lista de domínios específicos.

  • Access-Control-Allow-Methods: Especifica quais métodos HTTP são permitidos na solicitação de recurso (por exemplo, GET, POST, DELETE).

  • Access-Control-Allow-Headers: Especifica quais cabeçalhos (headers) personalizados são permitidos na solicitação de recurso. É necessário para que um cabeçalho personalizado como Authorization possa ser enviado com a solicitação.

  • Access-Control-Expose-Headers: Especifica quais cabeçalhos personalizados são expostos para a solicitação de recurso.

  • Access-Control-Allow-Credentials: Especifica se o recurso pode ser acessado com credenciais (por exemplo, cookies, cabeçalhos de autorização, e assim por diante) pela solicitação de origem.

CORS na Digibee Integration Platform

A política CORS está disponível para os triggers:

Pode-se utilizar o CORS individualmente nos pipelines, ou pode ser configurado para todo o realm, através da Configuração Global de CORS.

Exemplo

Configuração da política CORS no trigger do pipeline

Para este exemplo:

  • O REST Trigger é configurado selecionando os métodos GET e OPTIONS.

  • Durante a configuração, o CORS é ativado e os CORS headers definidos:

    • Access-Control-Allow-Origin para aceitar qualquer origem (valor: *).

    • Access-Control-Allow-Methods para aceitar apenas o método GET.

    • Access-Control-Allow-Headers para aceitar requisições que possam conter apenas os headers Authorization, Content-Type e apikey.

Exemplo 1: Requisição com sucesso (autorizado pelo navegador)

É efetuada uma requisição através do navegador Google Chrome, utilizando o método GET, e os headers Content-Type e apikey.

O navegador faz o Preflight para o endpoint da Digibee utilizando o método OPTIONS, que retorna os headers CORS. Como a requisição atende a política CORS configurada no trigger do pipeline, você está autorizado a seguir com a requisição GET.

A requisição GET retornou com sucesso e agora é possível seguir com o fluxo normal do pipeline.

Exemplo 2: Requisição sem sucesso (negado pelo navegador)

A mesma requisição é realizada, porém agora adicionando o header test:

Como o CORS header test não foi autorizado, a requisição foi bloqueada pela política CORS e a requisição GET não chegará na Digibee.

Exemplo 3: Requisição sem sucesso (negado pelo navegador)

Neste exemplo os headers estão de acordo com a política CORS, porém o método POST utilizado pela chamada no navegador não está configurado no trigger. Isso vai gerar um erro 404 Not found.

Atualizado

Isto foi útil?