# Projetando a segurança da API

Como parte do processo de design da API, você precisa especificar quais consumidores podem acessar sua API (autenticação) e o que eles têm permissão para fazer (autorização).

Você pode querer simplesmente definir uma segurança comum para toda a sua API, ou escolher uma política mais refinada com uma segurança específica para um recurso crítico.

Você também pode querer especificar que certas operações são livremente acessíveis sem autenticação.

O API Contracts pode lidar com todos esses casos com os principais tipos de segurança:

* Autenticação básica
* Autenticação por portador
* Autenticação digest
* OAuth 1.0
* OAuth 2.0
* OpenID Connect
* Personalizado / Chave de API
* Passagem

Não há suporte para autenticação de cookie.

## Criando um esquema de segurança

Crie um esquema de segurança para ser usado globalmente na sua versão de API ou em elementos individuais.

1. Acesse a página de informações gerais da sua API.
2. Role para a seção Esquemas de segurança e clique em Adicionar para criar um novo esquema.
3. Insira um Nome e selecione um Tipo na lista suspensa.
4. Opcional: Insira uma Descrição.
5. Insira outros parâmetros específicos para o tipo selecionado.

   ![Exemplo de definição de esquema de segurança.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/shows_OAuth2_security_scheme.png)

Seu esquema de segurança foi criado, você pode usá-lo nas configurações globais da sua API ou em recursos e operações específicos.

## Definindo a segurança da sua API

Defina esquemas de segurança para sua API, recursos e operações.

1. Acesse a página de informações gerais da sua API.
2. Na seção Segurança global, adicione seus esquemas de segurança e selecione aqueles que você deseja aplicar globalmente à sua versão da API.

   ![Neste exemplo, a API Petstore é protegida por petstore_auth com o escopo write:pets.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/designer_security.png)
3. Selecione um recurso e escolha os esquemas de segurança que você deseja aplicar a todas as operações do seu recurso.

   Alternativamente, você pode selecionar uma operação para definir sua segurança específica. ![Neste exemplo, o método Encontrar animais de estimação por tags é protegido usando petstore_auth.](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Resources/Images/ApiDesigner/designer_security_2.png)