Estrutura de identidade global do Azure Active Directory B2C
O Azure Active Directory B2C é uma solução de CIAM (gerenciamento de acesso de identidade do cliente) capaz de dar suporte a milhões de usuários e bilhões de autenticações por dia. Ele cuida do dimensionamento e da segurança da plataforma de autenticação, do monitoramento e do tratamento automático de ameaças, como negação de serviço, irrigação de senha ou ataques de força bruta.
O Azure AD B2C (Azure Active Directory B2C) é um serviço separado da ID do Microsoft Entra. Ele foi criado com a mesma tecnologia da ID do Microsoft Entra, mas para outra finalidade. Ele permite que as empresas criem aplicativos voltados para o cliente e permitem a inscrição por autoatendimento nos aplicativos.
O Azure AD B2C é um serviço distribuído globalmente composto de vários componentes:
Diretório
Na hora de criar uma solução do Azure AD B2C, você deve fornecer um local para hospedar o serviço. Esse local pertence apenas à região em que os dados do perfil do usuário serão armazenados; já o restante do serviço que processa sua entrada é executado globalmente.
Normalmente, você implanta um locatário do Azure AD B2C na região mais próxima da sua base de usuários. Isso facilita a manutenção da conformidade com as leis de residência de dados, pois o perfil de usuário só é replicado na região selecionada. Isso também oferece o melhor desempenho durante a entrada, pois as latências de rede são otimizadas para o repositório de diretórios.
Quando seu diretório do Azure AD B2C precisa atender usuários em todo o mundo, a estrutura regional representa um desafio. Você precisa determinar em qual local criar o locatário do Azure AD B2C. Todos os usuários fora da região selecionada podem não estar em conformidade com os requisitos de residência de dados e também podem ter maior latência ao verificar suas credenciais ou ler seus dados de perfil de usuário.
Por exemplo, considere um aplicativo que dá suporte a usuários na Austrália e na América do Norte com o diretório do Azure AD B2C criado na região América do Norte. Os usuários que entrarem na Austrália poderão enfrentar tempos de processamento mais longos para concluir sua autenticação.
Para atender melhor aos requisitos de residência de dados e atenuar problemas de desempenho, você precisará implantar vários locatários do Azure AD B2C. Ao colocar um locatário em cada região em que sua empresa opera, as operações no diretório serão otimizadas em relação à latência. No entanto, ao fazer isso, a solução criará outras sobrecargas para configurar, gerenciar e proteger esses recursos de locatário confidenciais em cada região. Outras sobrecargas incluem:
Administração de locatários
Isolamento de locatário, o que resulta em uma experiência de usuário final que não parece global
Cobrança
Processos de CI/CD para gerenciar políticas/registros/chaves de aplicativo
Este documento propõe arquiteturas com o Azure AD B2C que melhor acomodam soluções para clientes que atendem usuários em todo o mundo. As soluções atendem aos seguintes requisitos:
Os usuários podem manter o mesmo conjunto de credenciais, independentemente de onde acessam aplicativos no mundo.
Desempenho e latência consistentes, independentemente de onde os usuários se autenticam.
Facilitação para que os clientes entreguem processos, estruturas ou SDKs às suas equipes de desenvolvedores com a menor configuração necessária possível.
Os perfis de usuário podem ser mantidos enquanto os usuários viajam pelo mundo. Isso cria mais valor na análise gerada pelas interações do usuário em qualquer serviço.
Os dados de usuário do cliente são armazenados em armazenamentos de dados regionais.
Veja a seguir duas abordagens a serem consideradas na implementação de uma plataforma de identidade usando locatários do Azure AD B2C em um modelo de negócios globalmente operacional.
A primeira abordagem usa regiões geográficas, pois o limite e os aplicativos são configurados especificamente para a região.
A segunda abordagem tem um limite global para os aplicativos e usa um locatário do Azure AD B2C adicional para orquestrar a interação entre locatários regionais.
Orquestração de locatário regional
Nesse modelo, os aplicativos são hospedados por região ou têm configurações por região para se conectar a um locatário regional. Os aplicativos enviam diretamente o usuário para um locatário específico da região. A comunicação entre locatários é usada para executar autenticações entre locatários ou para atualizações de perfil entre locatários quando o usuário pode ter viajado para uma região diferente.
Orquestração de locatário de funil
Nesse modelo, um locatário do Azure AD B2C canaliza os usuários para locatários regionais do Azure AD B2C. O locatário de funil funciona como um orquestrador de redirecionamento para outros locatários do Azure AD B2C. Isso é tratado por um componente do serviço Azure AD B2C distribuído globalmente, ou seja, o desempenho não é afetado. Esse redirecionamento é executado usando federações do provedor de identidade OpenId Connect.
A comunicação entre locatários é usada para executar autenticações entre locatários ou atualizações de perfil entre locatários. O locatário de funil fornece aos aplicativos um único ponto de extremidade com o qual se comunicar.
A arquitetura em relação à qual você decide modelar a solução exige escolhas com base nas compensações entre os dois modelos descritos. Por exemplo, o modelo de funil permite que você mantenha uma única instância de aplicativos. A seção a seguir descreve os recursos, os critérios de seleção e o desempenho que podem afetar o design escolhido.
Funcionalidades e considerações
A tabela a seguir descreve os recursos fornecidos usando um design baseado em região comparado com um baseado em funil:
Funcionalidade | Baseado em região | Baseado em funil |
---|---|---|
Dá suporte à inscrição e entrada em conta local | ||
Dá suporte à inscrição e entrada em conta federada | ||
Dá suporte à autenticação de contas locais para usuários que fazem logon de fora de sua região registrada | ||
Dá suporte à autenticação de contas federadas para usuários que se conectam fora da região em que estão registrados por meio de pesquisa baseada em API entre locatários | ||
Impede a criação de conta em várias regiões diferentes | ||
Os aplicativos em cada região têm um conjunto de pontos de extremidade para se conectar | ||
Todos os aplicativos se conectam a um único conjunto de pontos de extremidade, independentemente da região em que eles estão hospedados | ||
Dá suporte a políticas de Acesso Condicional refinadas. | ||
Otimizado para custo. |
Com base nos recursos, as seguintes considerações precisam ser levadas em conta:
Ao usar a abordagem baseada em região, a principal consideração será que a abordagem exige que os aplicativos que abrangem várias regiões tenham configurações respectivas para cada locatário regional do Azure AD B2C.
Ao usar a abordagem baseada em funil
Haverá um custo de token duplo
Haverá a introdução de um redirecionamento HTTP adicional
Domínios personalizados são necessários em muitos locatários
O Acesso Condicional é aplicado ao nível do locatário, não ao nível do aplicativo
O logon único por meio de vários IdPs poderá apresentar desafios
A abordagem escolhida será baseada no número de aplicativos que você hospeda e nos requisitos específicos de acesso aos aplicativos.
Desempenho
A vantagem de desempenho do uso de vários locatários, na configuração baseada em região ou em funil, será uma melhoria em relação ao uso de um único locatário do Azure AD B2C para empresas operacionais globais.
Ao usar a abordagem baseada em funil, o locatário do funil ficará localizado em uma região específica do Azure e atende usuários globalmente. Como a operação de locatários de funil utiliza um componente global do serviço do Azure AD B2C, ela mantém um nível consistente de desempenho, independentemente de onde os usuários farão logon.
Conforme mostrado no diagrama acima, o locatário do Azure AD B2C na abordagem baseada em funil utilizará apenas o Mecanismo de Política para executar o redirecionamento para locatários regionais do Azure AD B2C. O componente do Mecanismo de Política do Azure AD B2C é distribuído globalmente. Portanto, o funil não é restrito do ponto de vista de desempenho, independentemente de onde o locatário de funil Azure AD B2C é provisionado. Uma perda de desempenho ocorre devido ao redirecionamento extra entre funil e locatários regionais na abordagem baseada em funil.
Na abordagem baseada em região, uma vez que cada usuário é direcionado para o Azure AD B2C mais local, o desempenho é uniforme para todos os usuários que estão fazendo logon.
Os locatários regionais executarão chamadas de diretório para o Repositório de Diretórios, que é o único componente regionalizado nas arquiteturas baseadas em funil e regional.
A latência adicional só é encontrada quando o usuário executa uma autenticação em uma região diferente da qual ele se inscreveu. Isso ocorre porque as chamadas serão feitas entre regiões para chegar ao Repositório de Diretórios onde reside o perfil para concluir a autenticação.
Próximas etapas
Configuração baseada em região da prova de conceito da identidade global do Azure AD B2C
Configuração baseada em funil da prova de conceito da identidade global do Azure AD B2C
Criar uma solução de identidade global com abordagem baseada em funil
Criar uma solução de identidade global com abordagem baseada em região