Abílio Azevedo.

IAM - Identity and Access Management

Cover Image for IAM - Identity and Access Management
Abílio Azevedo
Abílio Azevedo

Gestão de identidade e acesso (IAM) refere-se aos processos e tecnologias usados para gerenciar identidades de usuários e controlar o acesso a recursos e aplicativos dentro de uma organização. À medida que as empresas adotam serviços de nuvem e modelos de trabalho flexíveis, um IAM eficaz se tornou fundamental para segurança, conformidade e eficiência operacional. Este artigo fornece uma visão geral das soluções IAM e alguns dos principais fornecedores do espaço.

Componentes Principais do IAM

Soluções IAM geralmente incluem capacidades para:

  • Governança de identidade - Gerenciar identidades digitais ao longo de seu ciclo de vida, desde a integração até o desligamento. Isso inclui fluxos de trabalho para provisionamento, revisões, certificações e rescisão de acesso.

  • Autenticação - Verificar as identidades dos usuários antes de conceder acesso. Isso pode envolver senhas, autenticação multifator, biometria etc.

  • Autorização - Determinar a quais recursos e aplicativos um usuário pode acessar com base em atributos como função, localização, dispositivo etc.

  • Gerenciamento de acesso - Impor políticas de autenticação e autorização em todos os sistemas e aplicativos. O login único, gateways de API e padrões de federação ajudam a racionalizar o acesso.

  • Auditoria e conformidade - Rastrear e relatar atividades de usuários para monitoramento de segurança e fins de conformidade.

Os principais RFCs relacionados aos padrões de gerenciamento de identidade e acesso

  • RFC 6749 - Estrutura de Autorização OAuth 2.0. Define a especificação OAuth 2.0 para autorização segura e acesso delegado.

  • RFC 7519 - JSON Web Token (JWT). O padrão JWT para codificação e transmissão segura de declarações entre partes. Amplamente utilizado em OAuth e OpenID Connect.

  • RFC 6742 - Asserção de Identidade para Clientes OAuth 2.0. Estende o OAuth para casos de uso de autenticação do cliente.

  • RFC 7521 - Estrutura de Asserção para OAuth 2.0. Fornece uma estrutura abstrata para o uso de asserções com o OAuth 2.0.

  • RFC 7515 - Assinatura Web JSON (JWS). Especifica o padrão JWS para assinar objetos JSON com assinaturas digitais. Os JWTs ou Json Web Tokens são mais frequentemente utilizados para identificar utilizadores autenticados e validar pedidos de API. Parte deste processo de verificação requer a utilização de chaves criptográficas para validar a integridade do JWT e garantir que não foi adulterado. O conjunto de chaves utilizado para este processo é designado por JWKS ou Json Web Key Set. Saiba mais.

jwks-flow

  • RFC 7516 - Criptografia Web JSON (JWE). Define JWE para criptografar JWTs e outro conteúdo.

  • RFC 7517 - Chave Web JSON (JWK). O formato JWK para representar chaves criptográficas em JSON. Permite uso de JWS/JWE.

  • RFC 7518 - Algoritmos Web JSON (JWA). Registra algoritmos criptográficos usados com JWT/JWS/JWE.

  • RFC 7519 - URI de Token Web JSON para Registro Dinâmico de Cliente OAuth. O ponto de extremidade de registro do cliente.

  • RFC 7662 - Introspecção de token OAuth 2.0. Adiciona API para verificar status dos tokens de acesso OAuth 2.0.

  • RFC 8705 - Autenticação mútua TLS do cliente OAuth 2.0 e tokens de acesso vinculados a certificados. Para OAuth sobre TLS 1.2.

Esses RFCs fornecem as bases padrão para OAuth 2.0, OpenID Connect e esquemas modernos de federação de identidade usados nos sistemas IAM atuais.

Principais Soluções e Fornecedores

O mercado IAM apresenta soluções adaptadas para organizações de diferentes tamanhos e necessidades:

  • Microsoft Active Directory - O padrão para IAM corporativo, integrado com domínios do Windows Server. Fornece login único em aplicativos da Microsoft e controles de acesso robustos.

  • Okta - Uma popular plataforma IAM baseada em nuvem que oferece login único, autenticação multifator, Gerenciamento de Ciclo de Vida e mais. Foca em facilidade de uso e automação.

  • ForgeRock - Plataforma completa para IAM de Consumidores e Colaboradores. Enfatiza orquestração de identidades e autenticação adaptativa inteligente.

  • Ping Identity - Fornece soluções IAM focadas em login único corporativo e segurança de API/app. Suporta padrões como SAML, OAuth e OpenID Connect.

  • IBM Security - Fornecedor de longa data que oferece ferramentas de governança e administração de identidades para ambientes on-premises e na nuvem. Também fornece recursos de MFA e prova de identidade.

  • CyberArk - Especializada em gerenciamento de acesso privilegiado para proteger contas com permissões elevadas. Recursos de descoberta, armazenamento e monitoramento de usuários de alto risco.

  • Keycloak - Solução IAM de código aberto focada em login único baseado na web e autenticação baseada em token. Suporta padrões como OpenID Connect e OAuth 2.0. Fornece adaptadores para proteger aplicativos e serviços.

  • Auth0 - Plataforma de identidade baseada em nuvem enfatizando produtividade do desenvolvedor e APIs JSON/REST. Facilita a integração de SSO, gerenciamento de usuários e MFA.

  • ZITADEL - Gerenciamento de identidade e acesso de código aberto desenvolvido pela empresa alemã Causality. Oferece gerenciamento de usuários, autenticação, autorização e mais por meio de um sistema integrado único.

  • Amazon Cognito - Serviço IAM da AWS para proteger aplicativos web e móveis. Fornece inscrição, login e controle de acesso para recursos da AWS. Integra com API Gateway, AppSync e Amazon S3.

  • Ory - Proxy reverso open source para autenticação e autorização focado em integração com aplicações e escalabilidade. Possui adapter para OAuth2, OpenID Connect, SAML 2.0. Permite integrar com diversos provedores de identidade (IdPs). Políticas de autorização granulares baseadas em regras.

  • Authzed - Plataforma IAM como serviço para gerenciamento centralizado de identidades, funções e políticas. Autorização baseada em ABAC (Attribute-based access control). Integra com provedores de identidade como Okta, Auth0 e AD. Permite gerenciar identidades, funções, políticas e permissões. Rastreamento e auditoria de atividades.

O mercado IAM continua a crescer e evoluir com novos padrões e capacidades. As organizações devem equilibrar recursos, complexidade e custo ao escolher soluções para atender às suas necessidades e casos de uso específicos. Com a base IAM correta, as empresas podem adotar com segurança a transformação digital e tecnologias emergentes.

Controle de Acesso

Controle de Acesso Baseado em Função (RBAC)

  • O acesso aos recursos é determinado pela função que um usuário desempenha dentro da organização. As funções têm permissões predefinidas associadas a elas.
  • Os usuários são designados para funções com base em seus deveres e responsabilidades no trabalho.
  • Exemplos de funções incluem gerente, funcionário, administrador do sistema, etc.

Controle de Acesso Baseado em Atributos (ABAC)

  • O acesso aos recursos é determinado por atributos do usuário, ambiente e recurso. Os atributos podem incluir departamento do usuário, horário do dia, endereço IP, etc.
  • As políticas definem quais combinações de atributos são permitidas o acesso a um determinado recurso.
  • Mais flexível que o RBAC, pois os atributos podem ser combinados de várias maneiras para definir o acesso.
  • Os atributos podem mudar dinamicamente, permitindo que o acesso mude em tempo real.

ACL (Access Control Lists)

As Listas de Controle de Acesso (ACLs) são um mecanismo simples e amplamente utilizado para gerenciar permissões de acesso. Uma ACL é essencialmente uma lista que associa entidades (usuários, grupos ou outros objetos) a permissões específicas sobre um recurso.

Por exemplo, em um sistema de arquivos, uma ACL pode especificar que o usuário "João" tem permissão de leitura e escrita em um determinado diretório, enquanto o grupo "Equipe de TI" tem permissão de leitura e o usuário "Maria" não tem permissão alguma. As ACLs são frequentemente usadas em conjunto com outros modelos de autorização, como RBAC ou ABAC, para fornecer um controle mais granular sobre os acessos.

As principais diferenças:

  • O RBAC é baseado em funções de usuário estáticas, o ABAC é baseado em atributos dinâmicos.
  • As funções RBAC tendem a ser abrangentes, o ABAC pode fornecer controle refinado.
  • O ABAC fornece mais flexibilidade, mas pode ser mais complexo de gerenciar do que o RBAC.
  • As políticas RBAC tendem a ser mais simples e fáceis de entender.

Na prática, muitos sistemas usam uma abordagem híbrida com funções e atributos.


Mais posts

Cover Image for A psicologia do Dinheiro

A psicologia do Dinheiro

Morgan Housel oferece insights valiosos sobre a gestão financeira e tomada de decisões. O autor enfatiza que o sucesso financeiro depende mais do comportamento do que da inteligência ou conhecimento técnico. Housel destaca a importância da visão de longo prazo e da resiliência diante da volatilidade do mercado, encorajando a forcamos na sustentabilidade em vez de ganhos de curto prazo.

Cover Image for Bellsant

Bellsant

Estou na vanguarda do desenvolvimento de um aplicativo de saúde e bem-estar de ponta. Nossa pilha de tecnologia combina React Native para desenvolvimento móvel multiplataforma com um backend NodeJS sem servidor, aproveitando o AWS Lambda para escalabilidade e eficiência de custos.

Abílio Azevedo
Abílio Azevedo

NewsLetter

Eu enviarei o conteúdo postado aqui no blog. Sem Spam =)

Engenheiro de software experiente, formado em Engenharia Elétrica, com mais de 10 anos de experiência prática na construção de aplicativos móveis, web e back-end robustos e escaláveis em vários projetos, principalmente no setor de fintech. Mobile (React Native), Web (React e Next.JS) e Backend (Node.JS, PHP e DJANGO). Meu objetivo é criar produtos que agreguem valor às pessoas. - © 2024, Abílio Azevedo