Por que você deveria testar o Open API Framework na sua empresa?

A adoção de estratégias de APIs abertas, também conhecidas como Open APIs, se popularizou na última década. Muitas empresas têm experimentado essa metodologia, porém, subestimado os esforços necessários para tornar suas APIs públicas. No entanto, antes de apresentar os desafios de adoção de APIs abertas, é necessário falar sobre como ela está presente no dia a dia de pessoas e empresas.

No início dos anos 2000 com a ampliação do alcance da internet as APIs se transformaram no principal meio de interoperabilidade entre sistemas, sejam eles utilizados via navegador ou dispositivos móveis. Muitas empresas passaram a se envolver em um novo modelo de mercado que torna essas informações os ativos principais desse formato de negócios.

É comum empresas passarem a comercializar informações, ao descobrirem uma nova  forma de rentabilizar dentro do seu nicho de mercado. Porém, tornar uma API pública de forma segura, controlada e que entregue aos seus usuários consumidores um catálogo tecnicamente claro para que sejam consumidas, não é um processo simples ou rápido, utilizando as formas tradicionais de tecnologias que temos atualmente.

Para que uma API Aberta seja segura, diversos aspectos precisam ser considerados na sua publicação e durante o seu uso. Existe uma grande diversidade de ataques e vulnerabilidades na web, e, uma empresa que se preocupa com a segurança deve considerar pontos como: políticas ou credenciais de acesso que funcionam programaticamente, algoritmos de criptografia robustos em repouso e transporte, controle de anomalias, entre outros.

Uma API Aberta pode ser fornecida no modelo gratuito ou pago. No caso do modelo pago há também considerações pertinentes em relação a forma de cobrança de consumo, como os consumidores serão identificados, quais serão os limites de consumo, entre outros.

Diante essas necessidades, o Open API Framework é uma solução gratuita desenvolvida pela GFT em parceria com a AWS que disponibiliza mecanismos automatizados para APIs abertas, com criptografia assimétrica, oAuth, mTLS e portais web que facilitam a jornada do desenvolvedor e provedor de APIs.

Essa solução provê diversos benefícios, tais como:

  • Gerencia APIs de múltiplas contas AWS simultaneamente
  • Gerencia APIs de qualquer região AWS
  • Permite a autenticação utilizando um pool automatizado de usuários ou você pode integrar com seu Azure AD
  • Possui controle integrado de acessos
  • Controle de bilhetagem de consumo das APIs
  • Mecanismos reativos de segurança
  • Inclui mecanismos que atendem aos requisitos de Open Banking e Open Insurance.

A solução oferece dois portais para gerenciamento e assinatura de APIs. O portal de gestão é responsável pela gestão e governança das APIs, ou seja, é definido o local onde as APIs serão disponibilizadas, quem terá acesso a elas, qual o valor cobrado pelo acesso, etc.

O portal do desenvolvedor é responsável por permitir que os usuários consultem as APIs disponíveis para assinatura ou o local onde obterão os aplicativos (que são conglomerados de APIs assinadas) e obtenham as aprovações e credenciais necessárias para consumi-los.

Portal de gestão

Portal do desenvolvedor

O Open API Framework é uma solução 100% AWS que possui baixa curva de esforço para se adaptar a outras plataformas de cloud computing e outros tipos de  tecnologias. Veja abaixo o modelo arquitetural:

 

Descrição da arquitetura

Na primeira etapa da solução, logo após o deploy do CloudFormation, um número de série e um link são liberados para o usuário.

A URL gerada trata-se de um portal que foi publicado no S3 e distribuído via CloudFront e o número de série foi gerado durante o deploy e armazenado em um banco de dados Aurora MySQL.

Através dessa URL o usuário poderá finalizar a instalação da solução, definindo se deseja adicionar mais contas AWS para o gerenciamento das APIs e se gostaria de se autenticar nos portais utilizando o Azure AD.

Após a conclusão da sessão de setup informada anteriormente, a solução envia no e-mail informado no setup via SNS as URLs dos portais gerenciador e desenvolvedor. Adicionalmente, caso o usuário tenha escolhido autenticação sem a utilização de um Azure AD, é disponibilizado um usuário inicial e senha.

No portal gerenciador, que é fornecido através de um bucket do S3 e distribuído pela internet através do CloudFront, o usuário faz login utilizando o Amplify que faz a autenticação diretamente no Cognito ou federado ao Azure AD, caso o usuário tenha escolhido esse meio de autenticação.

As informações que estruturam o esquema de permissionamento podem vir diretamente dos grupos do Cognito ou do Azure AD da conta federada.

No momento da autenticação algumas informações são injetadas no token para verificar as permissões de acesso do usuário.

A partir desse momento todas as chamadas das APIs (Lambdas) ocorrem por meio de um API Gateway Authorizer que aponta para o pool do Cognito e uma API Key que qualifica a aplicação de origem.

Dentro do portal do gerenciador o usuário pode adicionar uma nova conta AWS, na qual uma lambda é executada e faz o processo de “trust relationship” entre as contas, permitindo que, de forma controlada, o OAF consiga acessar os recursos do API Gateway de uma outra conta AWS, e, se for o caso, de outras regiões diferentes da implantada a solução utilizando o AWS SDK.

Os cadastros da solução utilizam de forma auxiliar o banco de dados Aurora MySQL, obtendo as informações de credenciais no Secrets Manager. São armazenadas informações como: definições de bilhetagem das APIs, informações auxiliares dos usuários, entre outras.

Através do portal do desenvolvedor, que é fornecido através de um bucket do S3 e distribuído via CloudFront, os usuários têm acesso às APIs ofertadas e assinatura. Todo esse processo ocorre através dos parâmetros definidos no portal de gerenciamento.

No momento da aprovação de uma assinatura de API é gerado um conjunto de chaves no KMS, uma API Key e uma senha temporária.

Existem duas modalidades para acessar a Rest API assinada:

  1. Acesso direto via API Gateway: o usuário passa inicialmente por um processo de desafio através de uma lambda e assim que o handshake for executado, o usuário passa via API Key e chaves acesso a API Assinada.
  2. Acesso via proxy reverso: Ao invocar o endpoint o Route 53 direciona a chamada para uma máquina EC2 que contém o Nginx com os certificados que foram enviados no portal gerenciador. Dessa forma, ele faz a validação via mTLS do acesso e em caso de sucesso direciona para a rota adequada do API Gateway e continua a execução do processo.

As chamadas nas APIs fornecidas pelo gerenciador são logadas através do Kinesis Firehose como Custom Log no API Gateway e agrupadas em um bucket do S3.

Um crawler do AWS Glue faz a digestão dessas informações e cria o catálogo para que o usuário gerenciador possa executar queries e validar a bilhetagem das chamadas das APIs.

Se preferir, o usuário pode utilizar o WAF como camada adicional de segurança nas chamadas do API Gateway. Também existe a possibilidade da utilização do SageMaker para analisar os dados de acesso digeridos pelo AWS Glue e fazer controle de anomalia ou outro processo de Machine Learning e, caso seja um processo de segurança, criar notificações para o Security Hub.

Como faço para testar e instalar ?

Para testar o Open API Framework é muito simples, basta acessar esta página e fazer o download da solução. Você receberá o link de download e o manual completo da solução.

Agora você já sabe que as APIs abertas estarão cada vez mais presentes no dia a dia das empresas. Aproveite inúmeras oportunidades de negócios e um mercado fértil, em que ainda há espaço para diversas soluções proverem instrumentação técnica que torne a prática cada vez mais rápida de ser implantada, segura e que facilite o consumo de terceiros. Com o Open API Framework, você terá um melhor custo benefício de suas contas AWS, enquanto pode criar um ambiente para comercializar APIs para diversos nichos de mercado.

Referências

https://aws.amazon.com/pt/api-gateway/

https://aws.amazon.com/pt/lambda/

https://aws.amazon.com/pt/kinesis/data-firehose/

https://aws.amazon.com/pt/tools/

https://aws.amazon.com/pt/blogs/aws-brasil/acelerando-o-open-banking-na-aws/

https://www.gft.com/br/pt/solutions/OFFERINGS/br/oaf-open-api-framework