Segurança da API

A segurança é um aspecto crítico no design e na implementação de APIs, assegurando que apenas usuários autorizados tenham acesso aos recursos e que as informações sejam transmitidas e armazenadas de forma segura. Abaixo estão alguns dos padrões e práticas utilizadas pela Celcoin para garantir a segurança de suas APIs:

Autenticação e Autorização com OAuth 2.0

OAuth 2.0 é um protocolo de autorização amplamente adotado que permite a aplicativos terceiros acessar recursos de servidor em nome de um usuário. Ele fornece tokens de acesso limitados e específicos em vez de credenciais completas, minimizando o risco em caso de exposição. O OAuth 2.0 suporta diferentes fluxos (grant types) para diferentes casos de uso, como a autenticação direta do usuário ou a autorização de aplicativos em background.

Identidade com OpenID Connect

OpenID Connect (OIDC) é uma camada de identidade construída em cima do OAuth 2.0, permitindo a autenticação de usuários e a obtenção de informações básicas do perfil do usuário de forma segura. OIDC adiciona um id_token ao OAuth, que é um JWT (JSON Web Token) que contém informações sobre a autenticação do usuário, facilitando a integração de sistemas de login único (SSO) em suas aplicações.

Segurança no Transporte com mTLS

Mutual TLS (mTLS) é uma extensão do TLS (Transport Layer Security) que exige autenticação tanto do cliente quanto do servidor, estabelecendo um canal de comunicação seguro. O mTLS garante que tanto o cliente quanto o servidor possam validar as identidades um do outro, fornecendo uma camada adicional de segurança que é particularmente útil em ambientes empresariais e em comunicações entre serviços.

Controle de Acesso por Identificação de Origem de IP

Limitar o acesso à API com base no endereço IP do solicitante é uma forma simples, mas eficaz, de reforçar a segurança. Ao permitir apenas solicitações de uma lista pré-aprovada de endereços IP, você pode reduzir significativamente o risco de acessos não autorizados, garantindo que apenas clientes confiáveis possam consumir sua API.

Garantindo a Idempotência

Para evitar efeitos colaterais indesejados em operações repetidas, como a duplicação de transações, é crucial implementar mecanismos de idempotência em sua API. Utilizando chaves de idempotência, a API pode tratar múltiplas solicitações idênticas como uma única operação, garantindo consistência e confiabilidade no processamento de solicitações.

Controle de taxa de requisição

O controle de taxa, ou rate limiting, é uma prática de segurança essencial para prevenir abusos e garantir uma distribuição justa dos recursos da API entre todos os usuários. Ao limitar o número de solicitações que um usuário pode fazer em um determinado período de tempo, o controle de taxa ajuda a proteger a API contra ataques de negação de serviço (DDoS), uso excessivo de recursos e outras formas de abuso.