27.5. Autenticação e Autorização em APIs com API Gateway e Lambda: Uso de Tokens JWT para Autenticação e Autorização

A autenticação e a autorização são partes fundamentais de qualquer aplicação. Elas garantem que o usuário é quem diz ser (autenticação) e que ele tem permissão para fazer o que está tentando fazer (autorização). No contexto de APIs REST, isso é especialmente importante, pois essas APIs são frequentemente expostas na internet e, portanto, são alvos potenciais para abuso.

Uma maneira comum de implementar a autenticação e a autorização em APIs REST é usando tokens JWT (JSON Web Tokens). JWT é um padrão aberto que define uma maneira compacta e independente de transmitir informações entre partes como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. JWTs podem ser assinados usando um segredo (com o algoritmo HMAC) ou um par de chaves pública/privada usando RSA ou ECDSA.

Em um cenário típico, o usuário se autentica fornecendo suas credenciais, como um nome de usuário e senha. Se as credenciais estiverem corretas, o servidor gera um token JWT e o envia de volta ao cliente. O cliente então inclui esse token em cada solicitação subsequente para o servidor. O servidor verifica o token e, se for válido, processa a solicitação. Se o token não for válido (por exemplo, se estiver expirado), o servidor rejeita a solicitação.

Autenticação e Autorização com API Gateway e Lambda

O AWS API Gateway e o AWS Lambda são dois serviços poderosos que podem ser usados para criar e hospedar APIs REST. Eles também suportam a autenticação e a autorização usando tokens JWT.

O API Gateway pode ser configurado para exigir um token JWT para certas rotas. Isso é feito usando um recurso chamado 'Autorizadores de Tokens JWT'. Um Autorizador de Tokens JWT é uma função Lambda que recebe um token JWT, verifica sua validade e retorna uma política de acesso que especifica quais ações o portador do token está autorizado a realizar.

Aqui está um exemplo de como isso pode funcionar:

  1. O cliente se autentica fornecendo suas credenciais.
  2. O servidor verifica as credenciais e, se estiverem corretas, gera um token JWT e o envia de volta ao cliente.
  3. O cliente inclui o token JWT em cada solicitação subsequente para o servidor.
  4. O API Gateway recebe a solicitação e extrai o token JWT.
  5. O API Gateway chama a função Lambda Autorizador de Tokens JWT, passando o token JWT como um argumento.
  6. A função Lambda verifica a validade do token JWT. Se o token for válido, a função Lambda retorna uma política de acesso que especifica quais ações o portador do token está autorizado a realizar.
  7. O API Gateway verifica a política de acesso retornada pela função Lambda. Se a política permitir a ação solicitada, o API Gateway processa a solicitação. Se a política não permitir a ação solicitada, o API Gateway rejeita a solicitação.

Este processo garante que apenas usuários autenticados com permissões adequadas possam acessar suas APIs REST.

Conclusão

A autenticação e a autorização são partes fundamentais de qualquer aplicação e o uso de tokens JWT é uma maneira eficaz de implementar essas funcionalidades em APIs REST. O AWS API Gateway e o AWS Lambda oferecem suporte robusto para a autenticação e autorização usando tokens JWT, tornando-os uma excelente escolha para o desenvolvimento de APIs REST seguras.

Agora responda o exercício sobre o conteúdo:

Qual é a função do Autorizador de Tokens JWT na autenticação e autorização com API Gateway e Lambda?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Autenticação e autorização em APIs com API Gateway e Lambda: Configuração de políticas de segurança em API Gateway

Próxima página do Ebook Gratuito:

135Autenticação e autorização em APIs com API Gateway e Lambda: Configuração de políticas de segurança em API Gateway

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto