Arquitetura de identidade global do Azure Active Directory B2C
O Azure Active Directory B2C é uma solução CIAM (Customer Identity Access Management) capaz de suportar milhões de utilizadores e milhares de milhões de autenticações por dia. Trata do dimensionamento e da segurança da plataforma de autenticação, monitorização e processamento automático de ameaças como ataques denial-of-service, spray de palavra-passe ou força bruta.
O Azure Active Directory B2C (Azure AD B2C) é um serviço separado do Microsoft Entra ID. Baseia-se na mesma tecnologia que Microsoft Entra ID, mas com um propósito diferente. Permite que as empresas criem aplicações voltadas para o cliente e, em seguida, permite a inscrição self-service em aplicações.
Azure AD B2C é um serviço distribuído globalmente composto por vários componentes:
Diretório
Ao criar um Azure AD solução B2C, tem de fornecer uma localização para alojar o serviço. Esta localização diz respeito apenas à região na qual os dados do perfil de utilizador serão armazenados, enquanto o resto do serviço que processa o seu início de sessão é executado globalmente.
Normalmente, implementa um inquilino Azure AD B2C na região mais próxima da sua base de utilizadores. Isto facilita a manutenção da conformidade com as leis de residência dos dados, uma vez que o perfil de utilizador só é replicado na região selecionada. Isto também fornece o melhor desempenho durante o início de sessão, uma vez que as latências de rede são otimizadas para o arquivo de diretórios.
Quando a sua Azure AD diretório B2C requer o serviço de utilizadores em todo o mundo, a estrutura regional representa um desafio. Tem de determinar em que localização criar o Azure AD inquilino B2C. Os utilizadores fora da região selecionada podem não estar em conformidade com os requisitos de residência dos dados e também podem ter uma maior latência ao verificar as credenciais ou ler os respetivos dados de perfil de utilizador.
Por exemplo, considere uma aplicação que suporte utilizadores na Austrália e América do Norte, e Azure AD diretório B2C é criado na região América do Norte. Os utilizadores que iniciam sessão a partir da Austrália podem enfrentar tempos de processamento mais longos para concluir a autenticação.
Para cumprir melhor os requisitos de residência dos dados e mitigar problemas de desempenho, tem de implementar vários Azure AD inquilinos B2C. Ao colocar um inquilino em cada região onde a sua empresa opera, as operações no diretório são otimizadas para latência. No entanto, ao fazê-lo, a solução cria outras sobrecargas para configurar, gerir e proteger estes recursos de inquilino confidenciais em cada região. Outras sobrecargas incluem:
Administração de inquilinos
Isolamento do inquilino que resulta numa experiência de utilizador final que não se sente global
Faturação
Processos de CI/CD para gerir políticas/registos de aplicações/chaves
Este documento propõe arquiteturas com Azure AD B2C que melhor acomodam soluções para clientes que servem utilizadores em todo o mundo. As soluções servem os seguintes requisitos:
Os utilizadores podem manter o mesmo conjunto de credenciais, independentemente de onde acedem às aplicações no mundo.
Desempenho e latência consistentes independentemente da origem da autenticação dos utilizadores.
Facilite a entrega de processos, arquiteturas ou SDKs aos clientes às equipas de programadores com a configuração menos possível necessária.
Os perfis de utilizador podem ser mantidos enquanto os utilizadores viajam pelo mundo. Isto cria mais valor na análise gerada pelas interações do utilizador em qualquer serviço.
Os dados do utilizador do cliente são armazenados em arquivos de dados regionais.
Seguem-se duas abordagens a considerar ao implementar uma plataforma de identidade com Azure AD inquilinos B2C para um modelo de negócio globalmente operacional.
A primeira abordagem utiliza regiões geográficas à medida que o limite e as aplicações são configurados especificamente para a região.
A segunda abordagem tem um limite global para as aplicações e utiliza uma Azure AD inquilino B2C adicional para orquestrar a interação entre inquilinos regionais.
Orquestração de inquilinos regionais
Neste modelo, as aplicações são alojadas por região ou têm configurações por região para ligar a um inquilino regional. As aplicações enviam diretamente o utilizador para um inquilino específico da região. A comunicação entre inquilinos é utilizada para realizar autenticações entre inquilinos ou atualizações de perfis entre inquilinos, quando o utilizador pode ter viajado para uma região diferente.
Orquestração de inquilinos de funil
Neste modelo, um inquilino B2C Azure AD funiliza os utilizadores para inquilinos regionais Azure AD B2C. O inquilino de funil funciona como um orquestrador de redirecionamento para outros inquilinos Azure AD B2C. Isto é processado por um componente distribuído globalmente do serviço Azure AD B2C, pelo que o desempenho não é afetado. Este redirecionamento é efetuado com as federações do fornecedor de identidade do OpenId Connect.
A comunicação entre inquilinos é utilizada para realizar autenticações entre inquilinos ou atualizações de perfis entre inquilinos. O inquilino de funil fornece às aplicações um único ponto final para comunicar.
A arquitetura a seguir à qual decide modelar a solução requer fazer escolhas com base nas trocas entre os dois modelos descritos. Por exemplo, o modelo de funil permite-lhe manter uma única instância de aplicações. A secção seguinte descreve as capacidades, os critérios de seleção e o desempenho que podem afetar a estrutura que escolher.
Capacidades e considerações
A tabela seguinte descreve as capacidades fornecidas com uma estrutura regional versus baseada em funil:
Funcionalidade | Baseado na região | Baseado em funil |
---|---|---|
Suporta a inscrição e o início de sessão da conta local | ||
Suporta a inscrição na conta federada e o início de sessão | ||
Suporta a autenticação de contas locais para utilizadores que iniciam sessão fora da região registada | ||
Suporta a autenticação de contas federadas para utilizadores que iniciam sessão fora da respetiva região registada através da pesquisa baseada em API entre inquilinos | ||
Impede a inscrição de várias regiões diferentes | ||
As aplicações em cada região têm um conjunto de pontos finais para ligar | ||
Todas as aplicações se ligam a um único conjunto de pontos finais, independentemente da região onde estão alojadas | ||
Suporta políticas de Acesso Condicional detalhadas. | ||
Otimizado para o custo. |
Com base nas capacidades, as seguintes considerações têm de ser tidas em conta:
Ao utilizar a abordagem baseada na região, a principal consideração é que a abordagem requer que as aplicações que abrangem várias regiões tenham as respetivas configurações para cada inquilino regional Azure AD B2C.
Ao utilizar a abordagem baseada em funil
Existe um custo de token duplo
Foi introduzido um redirecionamento HTTP adicional
Os domínios personalizados são necessários em muitos inquilinos
O Acesso Condicional é aplicado ao nível do inquilino, não ao nível da aplicação
O fim de sessão único através de vários IdPs pode apresentar desafios
A abordagem que escolher será baseada no número de aplicações que aloja e nos requisitos específicos de acesso às aplicações.
Desempenho
A vantagem de desempenho da utilização de vários inquilinos, na configuração regional ou baseada em funil, será uma melhoria na utilização de um único inquilino Azure AD B2C para empresas que operam globalmente.
Ao utilizar a abordagem baseada em funil, o inquilino de funil está localizado numa região específica e serve os utilizadores globalmente. Uma vez que a operação de inquilinos de funil utiliza um componente global do serviço Azure AD B2C, mantém um nível de desempenho consistente, independentemente de onde os utilizadores iniciam sessão.
Conforme mostrado no diagrama acima, o Azure AD inquilino B2C na abordagem baseada em funil utilizará apenas o Motor de Política para efetuar o redirecionamento para inquilinos regionais Azure AD B2C. O Azure AD componente B2C Policy Engine é distribuído globalmente. Por conseguinte, o funil não é restringido de uma perspetiva de desempenho, independentemente do local onde o inquilino de funil B2C Azure AD é aprovisionado. É encontrada uma perda de desempenho devido ao redirecionamento adicional entre o funil e os inquilinos regionais na abordagem baseada em funil.
Na abordagem baseada na região, uma vez que cada utilizador é direcionado para o seu Azure AD B2C mais local, o desempenho é consistente para todos os utilizadores que iniciam sessão.
Os inquilinos regionais efetuarão chamadas de diretório para a Loja de Diretórios, que é o único componente regionalizado nas arquiteturas baseadas em funil e regionais.
A latência adicional só é encontrada quando o utilizador efetuou uma autenticação numa região diferente da qual se tinha inscrito. Isto deve-se ao facto de serem efetuadas chamadas entre regiões para aceder à Loja de Diretórios onde o respetivo perfil vive para concluir a autenticação.
Passos seguintes
Azure AD prova de identidade global B2C da configuração baseada na região de conceito
Azure AD prova de identidade global B2C da configuração baseada em funil de conceito
Criar uma solução de identidade global com uma abordagem baseada em funil
Criar uma solução de identidade global com uma abordagem baseada na região