Criar uma solução de identidade global com abordagem baseada em funil
Neste artigo, descrevemos os cenários para a abordagem de design baseada em funil. Antes de começar a criar, é recomendável que você revise os recursos e o desempenho da abordagem de design baseada em funil e região. Este artigo ajudará ainda mais a determinar qual design pode se ajustar melhor para sua organização.
Os designs consideram:
- Criar e entrar na conta local
- Criar e entrar na conta federada
- Autenticar contas locais para usuários que se conectam fora da região em que estão registrados, com suporte da autenticação baseada em API entre locatários
- Autenticar contas federadas para usuários que se conectam fora da região em que estão registrados, com suporte da 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 único ponto de extremidade para se conectar
Casos de uso de credenciais da conta local
Os casos de uso a seguir são típicos em um ambiente do Azure AD B2C global. Os casos de uso da conta local também abrangem contas para onde o usuário viaja. Fornecemos um diagrama e etapas de fluxo de trabalho para cada caso de uso.
Inscrição de usuário local
Esse caso de uso demonstra como um usuário de seu país/região de origem executa a criação de conta com uma conta local do Azure AD B2C.
Usuário da Europa, Oriente Médio e África (EMEA) tenta criar conta no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em critérios definidos usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário tenta criar conta. O processo de criação de conta verifica a tabela de pesquisa global para determinar se o usuário existe em um dos locatários regionais do Azure AD B2C.
O usuário não foi encontrado na tabela de pesquisa global. A conta do usuário é gravada no Azure AD B2C e um registro é criado na tabela de pesquisa global para acompanhar a região em que o usuário criou a conta.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Tentativas de criação de conta do usuário local existente
Esse caso de uso demonstra como um usuário que registra novamente o mesmo email em seu país, ou em uma região diferente, é bloqueado.
O usuário da EMEA tenta criar conta no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário tenta criar conta. O processo de criação de conta verifica a tabela de pesquisa global para determinar se o usuário existe em um dos locatários regionais do Azure AD B2C.
O email do usuário é encontrado na tabela de pesquisa global, indicando que o usuário registrou esse email na solução em algum momento anterior.
O usuário recebe um erro, indicando que sua conta existe.
Credenciais de usuário local
Esse caso de uso demonstra como um usuário de seu país/região de origem executa uma entrada com uma conta local do Azure AD B2C.
O usuário da EMEA tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário insere suas credenciais no locatário regional.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Credenciais do usuário em viagem
Esse caso de uso demonstra como um usuário pode viajar por regiões e manter seu perfil de usuário e credenciais armazenadas no locatário regional, respectivo a sua inscrição.
O usuário da América do Norte (NAM) tenta entrar no myapp.fr, pois está de férias na França. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário insere suas credenciais no locatário regional.
O locatário regional executa uma pesquisa na tabela de pesquisa global, pois o email do usuário não foi encontrado no diretório do Azure AD B2C da EMEA.
O email do usuário foi localizado como tendo se inscrito no locatário do B2C do Azure AD da NOAM.
O locatário do Azure AD B2C da EMEA executa um fluxo de ROPC do Microsoft Entra no locatário do Azure AD B2C da NOAM para verificar as credenciais.
Observação
Essa chamada também buscará um token para o usuário executar uma chamada à API do Graph. O locatário do Azure AD B2C da EMEA executa uma chamada à API do Graph para o locatário do Azure AD B2C da NOAM para buscar o perfil do usuário. Essa chamada é autenticada pelo token de acesso para a API do Graph adquirido na última etapa.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
O usuário local esqueceu a senha
Esse caso de uso demonstra como um usuário pode redefinir a senha quando está em seu país/região de origem.
O usuário da EMEA tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário chega ao locatário do Azure AD B2C da EMEA e seleciona a senha esquecida. O usuário insere e verifica o email dele.
A pesquisa de email é executada para determinar em qual locatário regional o usuário existe.
O usuário fornece uma nova senha.
A nova senha é gravada no locatário do Azure AD B2C da EMEA.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Usuário em viagem esqueceu a senha
Esse caso de uso demonstra como um usuário pode redefinir sua senha quando estiver viajando e distante da região em que registrou sua conta.
O usuário da NAM tenta entrar no myapp.fr, pois está de férias na França. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário chega ao locatário do Azure AD B2C da EMEA e seleciona a senha esquecida. O usuário insere e verifica o email dele.
A pesquisa de email é executada para determinar em qual locatário regional o usuário existe.
O email é encontrado no locatário do Azure AD B2C da NOAM. O usuário fornece uma nova senha.
A nova senha é gravada no locatário do Azure AD B2C da NOAM por meio de uma chamada à API do Graph.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Alteração de senha do usuário local
Esse caso de uso demonstra como um usuário pode alterar sua senha depois de fazer logon na região em que registrou sua conta.
O usuário da EMEA tenta selecionar alterar senha depois de fazer logon no myapp.fr.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário chega ao locatário do Azure AD B2C da EMEA e o conjunto de cookies de SSO (logon único) permite que o usuário altere a senha imediatamente.
A nova senha é gravada na conta de usuários no locatário do Azure AD B2C da EMEA.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Alteração de senha do usuário em viagem
Esse caso de uso demonstra como um usuário pode alterar sua senha depois de fazer logon distante da região em que registrou sua conta.
Um usuário da NAM tenta alterar senha depois de fazer logon no myapp.fr.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário chega ao locatário do Azure AD B2C da EMEA e o conjunto de cookies de SSO permite que o usuário altere a senha imediatamente.
O email dos usuários está no locatário da NOAM depois de verificar a tabela de pesquisa global.
A nova senha é gravada na conta de usuários no locatário da NOAM do Azure AD B2C por chamada à API do Graph da Microsoft.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Autenticações do Provedor de Identidade Federado
Os casos de uso a seguir mostram exemplos de como usar identidades federadas para criar conta ou entrar como um cliente do Azure AD B2C.
Criar conta de ID federada local
Esse caso de uso demonstra como um usuário pode criar conta no serviço de sua região local usando uma ID federada.
O usuário da EMEA tenta criar conta no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário seleciona entrar com um Provedor de Identidade Federada (IdP).
Executar uma pesquisa na tabela de pesquisa global.
Se a vinculação de conta estiver no escopo: continue se o identificador do IdP federado e o email que voltou do IdP federada não existirem na tabela de pesquisa.
Se a vinculação de conta não estiver no escopo: continue se o identificador do IdP federada que voltou do IdP federada não existir na tabela de pesquisa.
Gravar a conta de usuários no locatário do Azure AD B2C da EMEA.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Credenciais do usuário federado local
Esse caso de uso demonstra como um usuário de sua região local entra no serviço usando uma ID federada.
O usuário da EMEA tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário seleciona entrar com um provedor de identidade federada.
Execute uma pesquisa na tabela de pesquisa global e confirme se a ID federada do usuário está registrada na EMEA.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Credenciais do usuário federado em viagem
Esse caso de uso demonstra como um usuário pode entrar em sua conta com um IdP federado, estando longe da região em que criou conta.
Um usuário da NAM tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário seleciona entrar com um provedor de identidade federada.
Observação
Use a mesma ID do aplicativo do Registro de Aplicativo no IdP Social em todos os locatários regionais do Azure AD B2C. Isso garante que a ID que volta do IdP Social seja sempre a mesma.
Execute uma pesquisa na tabela de pesquisa global e determine se a ID federada do usuário está registrada na NOAM.
Leia os dados da conta do locatário do Azure AD B2C da NOAM usando a API do Graph da Microsoft.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Vinculação de conta com critérios correspondentes
Esse caso de uso demonstra como os usuários são capazes de executar a vinculação de conta quando os critérios de correspondência são atendidos. Os critérios correspondentes normalmente são o endereço de email dos usuários. Quando os critérios correspondentes de uma entrada de um novo provedor de identidade têm o mesmo valor para uma conta existente no Azure AD B2C, o processo de vinculação da conta pode começar.
O usuário da EMEA tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário seleciona entrar com um provedor de identidade federada/IdP social.
Uma pesquisa é executada na tabela de pesquisa global para a ID retornada do provedor de identidade federada.
Quando a ID não existir, mas o email do provedor de identidade federada existir no Azure AD B2C da EMEA, este é um caso de uso de vinculação de conta.
Leia o usuário do diretório e determine quais métodos de autenticação estão habilitados na conta. Apresente uma tela para o usuário entrar com um método de autenticação existente nessa conta.
Depois que o usuário provar que possui a conta no Azure AD B2C, adicione a nova ID social à conta existente e conta na tabela de pesquisa global.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.
Vinculação de conta de usuário em viagem com critérios correspondentes
Esse caso de uso demonstra como os usuários não locais são capazes de executar a vinculação de conta quando os critérios de correspondência são atendidos. Os critérios correspondentes normalmente são o endereço de email dos usuários. Quando os critérios correspondentes de uma entrada de um novo provedor de identidade têm o mesmo valor para uma conta existente no Azure AD B2C, o processo de vinculação da conta pode começar.
Um usuário da NAM tenta entrar no myapp.fr. Se o usuário não for enviado para sua instância de aplicativo local, o gerenciador de tráfego impõe um redirecionamento.
O usuário atinge o locatário do Funil Global do Azure AD B2C. Esse locatário está configurado para redirecionar para um locatário regional do Azure AD B2C com base em alguns critérios usando a federação OpenId. Isso pode ser uma pesquisa baseada na ClientId do aplicativo.
O usuário seleciona entrar com um provedor de identidade federada/IdP social.
Uma pesquisa é executada na tabela de pesquisa global para a ID retornada do provedor de identidade federada.
Se a ID não existir e o email do provedor de identidade federada existir em outra região, este é um caso de uso de vinculação de conta de usuário em viagem.
Crie uma vinculação de id_token_hint afirmando que os usuários atualmente coletaram declarações. Inicialize um percurso para o locatário do Azure AD B2C da NOAM usando federação. O usuário prova que possui a conta por meio do locatário do Azure AD B2C da NOAM.
Observação
Esse método é usado para reutilizar a lógica de vinculação de conta existente no locatário inicial e reduzir as chamadas à API externa para manipular a coleção de identidades. Um exemplo de política personalizada que utiliza id_token_hint pode ser encontrado aqui.
Depois que o usuário provar que possui a conta no Azure AD B2C, adicione a nova ID social à conta existente fazendo uma chamada à API do Graph para o locatário do Azure AD B2C da NOAM. Adicione a ID social à conta na tabela de pesquisa global.
O locatário regional emite um token de volta para o locatário do funil.
O locatário de funil emite um token para o aplicativo.