Use uma plataforma de serviço de identidade totalmente gerenciada

Quase todos os aplicativos em nuvem precisam trabalhar com identidades de usuários. A identidade é a base das práticas de segurança modernas, como a confiança zero, e a identidade do usuário para aplicativos é uma parte crítica da arquitetura da sua solução.

Para a maioria das soluções, é altamente recomendável usar uma plataforma de identidade como serviço (IDaaS), uma solução de identidade totalmente gerenciada, em vez de criar ou operar a sua própria. Neste artigo, descrevemos os desafios de construir ou executar seu próprio sistema de identidade.

Recomendações

Importante

Usando um IDaaS, como Microsoft Entra ID, Azure AD B2C ou outro sistema semelhante, você pode mitigar muitos dos problemas descritos neste artigo. Recomendamos esta abordagem sempre que possível.

Seus requisitos de solução podem levá-lo a usar uma estrutura ou uma solução de identidade pronta para uso que você hospeda e executa por conta própria. Embora o uso de uma plataforma de identidade pré-criada atenue alguns dos problemas descritos neste artigo, lidar com muitos desses problemas ainda é sua responsabilidade com essa solução.

Você deve evitar usar um sistema de identidade que você constrói do zero.

Evite armazenar credenciais

Quando você executa seu próprio sistema de identidade, você tem que armazenar um banco de dados de credenciais. Você nunca deve armazenar credenciais em texto não criptografado ou mesmo como dados criptografados.

Em vez disso, você pode considerar criptograficamente hashing e salgar credenciais antes de armazená-las, o que as torna mais difíceis de atacar. No entanto, mesmo credenciais com hash e salgadas são vulneráveis a vários tipos de ataque.

Independentemente de como você protege as credenciais individuais, manter um banco de dados de credenciais faz de você um alvo para ataques. Os últimos anos mostraram que grandes e pequenas organizações tiveram seus bancos de dados de credenciais alvo de ataque.

Considere o armazenamento de credenciais como um passivo, não um ativo. Usando um IDaaS, você terceiriza o problema do armazenamento de credenciais para especialistas que podem investir tempo e recursos no gerenciamento seguro de credenciais.

Implementar protocolos de identidade e federação

Os protocolos de identidade modernos são complexos. Especialistas do setor projetaram OAuth 2, OpenID Connect e outros protocolos para garantir que eles mitiguem ataques e vulnerabilidades do mundo real. Os protocolos também evoluem para se adaptar às mudanças nas tecnologias, estratégias de ataque e expectativas dos usuários. Especialistas em identidade, com experiência nos protocolos e como eles são usados, estão na melhor posição para implementar e validar sistemas que seguem esses protocolos. Para obter mais informações sobre os protocolos e a plataforma, consulte OAuth 2.0 e OpenID Connect (OIDC) na plataforma de identidade da Microsoft.

Também é comum federar sistemas de identidade. Os protocolos de federação de identidades são complexos de estabelecer, gerenciar e manter, e exigem conhecimento e experiência especializados. Para obter mais informações, consulte Padrão de identidade federada.

Adote recursos de identidade modernos

Os usuários esperam que um sistema de identidade tenha uma variedade de recursos avançados, incluindo:

  • Autenticação sem senha, que usa abordagens seguras para entrar que não exigem que os usuários insiram credenciais.

  • Logon único (SSO), que permite que os usuários entrem usando uma identidade de seu empregador, escola ou outra organização.

  • Autenticação multifator (MFA), que solicita que os usuários se autentiquem de várias maneiras. Por exemplo, um usuário pode entrar usando uma senha e também usando um aplicativo autenticador em um dispositivo móvel ou um código enviado por email.

  • Auditoria, que rastreia todos os eventos que acontecem na plataforma de identidade, incluindo tentativas de entrada bem-sucedidas, falhadas e abortadas. Para analisar forensemente uma tentativa de entrada mais tarde, pode ser necessário um log detalhado.

  • Acesso condicional, que cria um perfil de risco em torno de uma tentativa de início de sessão com base em vários fatores. Os fatores podem incluir a identidade do utilizador, a localização da tentativa de início de sessão, a atividade de início de sessão anterior e a sensibilidade dos dados ou da aplicação.

  • Controle de acesso just-in-time, que permite temporariamente que os usuários entrem com base em um processo de aprovação e, em seguida, remove a autorização automaticamente.

Se você estiver criando um componente de identidade como parte de sua solução de negócios, é improvável que consiga justificar o trabalho envolvido na implementação desses recursos — e na sua manutenção. Alguns desses recursos também exigem trabalho extra, como a integração com provedores de mensagens para enviar códigos MFA e o armazenamento e retenção de logs de auditoria por um período de tempo suficiente.

As plataformas IDaaS também podem fornecer um conjunto aprimorado de recursos de segurança baseados no volume de solicitações de entrada que recebem. Por exemplo, os seguintes recursos funcionam melhor quando há um grande número de clientes que usam uma única plataforma de identidade:

  • Deteção de eventos de início de sessão arriscados, tais como tentativas de início de sessão a partir de botnets
  • Deteção de viagens impossíveis entre as atividades de um usuário
  • Deteção de credenciais comuns, como senhas que são frequentemente usadas por outros usuários, que estão, portanto, sujeitas a um risco aumentado de comprometimento
  • Utilização de técnicas de aprendizagem automática para classificar as tentativas de início de sessão como válidas ou inválidas
  • Monitoramento da chamada dark web para credenciais vazadas e prevenção de sua exploração
  • Monitoramento contínuo do cenário de ameaças e dos vetores atuais que os invasores usam

Se você criar ou executar seu próprio sistema de identidade, não poderá aproveitar esses recursos.

Use um sistema de identidade confiável e de alto desempenho

Como os sistemas de identidade são uma parte fundamental dos aplicativos de nuvem modernos, eles devem ser confiáveis. Se o seu sistema de identidade não estiver disponível, o resto da sua solução poderá ser afetada e operar de forma degradada ou não funcionar de todo. Usando um IDaaS com um contrato de nível de serviço, você pode aumentar sua confiança de que seu sistema de identidade permanecerá operacional quando você precisar. Por exemplo, o Microsoft Entra ID oferece um SLA para tempo de atividade para as camadas de serviço Basic e Premium, que abrange os processos de entrada e emissão de tokens. Para obter mais informações, consulte SLA para Microsoft Entra ID.

Da mesma forma, um sistema de identidade deve ter um bom desempenho e ser capaz de escalar para o nível de crescimento que seu sistema pode experimentar. Dependendo da arquitetura do aplicativo, é possível que cada solicitação exija interação com o sistema de identidade, e quaisquer problemas de desempenho serão aparentes para os usuários. Os sistemas IDaaS são incentivados a escalar para grandes cargas de usuários. Eles são projetados para absorver grandes volumes de tráfego, incluindo o tráfego gerado por diferentes formas de ataques.

Teste a sua segurança e aplique controlos apertados

Se você administra um sistema de identidade, é sua responsabilidade mantê-lo seguro. Exemplos dos controles que você precisa considerar a implementação incluem:

  • Testes de penetração periódicos, que requerem conhecimentos especializados.
  • Verificação de funcionários e qualquer outra pessoa com acesso ao sistema.
  • Controle rígido de todas as alterações em sua solução com todas as alterações revisadas por especialistas.

Estes controlos são frequentemente dispendiosos e difíceis de implementar.

Use controles de segurança nativos da nuvem

Quando utiliza o Microsoft Entra ID como fornecedor de identidade da sua solução, pode tirar partido das funcionalidades de segurança nativas da nuvem, como identidades geridas para recursos do Azure.

Se você optar por usar uma plataforma de identidade separada, precisará considerar como seu aplicativo pode aproveitar as identidades gerenciadas e outros recursos do Microsoft Entra e, ao mesmo tempo, integrar-se à sua própria plataforma de identidade.

Concentre-se no seu valor principal

É caro e complexo manter uma plataforma de identidade segura, confiável e responsiva. Na maioria das situações, um sistema de identidade não é um componente que agrega valor à sua solução ou que o diferencia dos concorrentes. É bom terceirizar seus requisitos de identidade para um sistema criado por especialistas. Dessa forma, você pode se concentrar em projetar e construir os componentes de sua solução que agregam valor comercial para seus clientes.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

  • John Downs - Brasil | Engenheiro de Clientes Sênior, FastTrack for Azure

Outros contribuidores:

  • Jelle Druyts - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure
  • LaBrina Amar | Gerente Principal de Engenharia do Cliente, FastTrack for Azure
  • Gary Moore - Brasil | Programador/Redator
  • Arsen Vladimirskiy - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos