Criar uma solução de identidade global com uma abordagem baseada em funil
Neste artigo, descrevemos os cenários da abordagem de estrutura baseada em funil. Antes de começar a conceber, recomenda-se que reveja as capacidades e o desempenho da abordagem de estrutura baseada em funil e na região. Este artigo ajudará ainda a determinar qual o design mais adequado para a sua organização.
A conta de designs para:
- Inscrição e início de sessão na Conta Local
- Inscrição e início de sessão da conta federada
- Autenticar contas locais para utilizadores que iniciam sessão fora da respetiva região registada, suportada pela autenticação baseada em API entre inquilinos
- Autenticação de contas federadas para utilizadores que iniciam sessão fora da região registada, suportado pela 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 único ponto final para ligar
Casos de utilização de início de sessão na conta local
Os seguintes casos de utilização são típicos num ambiente de Azure AD B2C global. Os casos de utilização da conta local também abrangem as contas em que o utilizador viaja. Fornecemos um diagrama e passos de fluxo de trabalho para cada caso de utilização.
Inscrição de utilizador local
Este caso de utilização demonstra como um utilizador do respetivo país/região de origem realiza uma inscrição com um Azure AD Conta Local B2C.
Um utilizador da Europa, Médio Oriente e África (EMEA) tenta inscrever-se no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador chega ao inquilino do Funil Global Azure AD B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em critérios definidos através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador tenta inscrever-se. O processo de inscrição verifica a tabela de pesquisa global para determinar se o utilizador existe em qualquer um dos inquilinos regionais Azure AD B2C.
O utilizador não se encontra na tabela de referência global. A conta do utilizador é escrita no Azure AD B2C e é criado um registo na tabela de pesquisa global para controlar a região na qual o utilizador se inscreveu.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
O utilizador local existente tenta inscrever-se
Este caso de utilização demonstra como um utilizador que volte a registar o mesmo e-mail a partir do seu próprio país/região, ou de uma região diferente, está bloqueado.
Um utilizador da EMEA tenta inscrever-se no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador chega ao inquilino do Funil Global Azure AD B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador tenta inscrever-se. O processo de inscrição verifica a tabela de pesquisa global para determinar se o utilizador existe em qualquer um dos inquilinos regionais Azure AD B2C.
O e-mail do utilizador encontra-se na tabela de pesquisa global, indicando que o utilizador registou este e-mail na solução em algum momento anterior.
É apresentado um erro ao utilizador, indicando que a conta existe.
Início de sessão do utilizador local
Este caso de utilização demonstra como um utilizador do respetivo país/região de origem realiza um início de sessão com um Azure AD conta local B2C.
Um utilizador da EMEA tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador introduz as respetivas credenciais no inquilino regional.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Início de sessão de utilizador itinerante
Este caso de utilização demonstra como um utilizador pode viajar entre regiões e manter o respetivo perfil de utilizador e credenciais armazenadas no respetivo inquilino regional, respetivamente, para a inscrição.
Um utilizador de América do Norte (NOAM) tenta iniciar sessão no myapp.fr enquanto estão de férias em França. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador introduz as respetivas credenciais no inquilino regional.
O inquilino regional efetua uma pesquisa na tabela de pesquisa global, uma vez que o e-mail do utilizador não foi encontrado no diretório EMEA Azure AD B2C.
O e-mail do utilizador está localizado para ter sido inscrito no noAM Azure AD inquilino B2C.
O inquilino do EMEA Azure AD B2C executa um fluxo ROPC Microsoft Entra em relação ao inquilino do NOAM Azure AD B2C para verificar as credenciais.
Nota
Esta chamada também irá obter um token para o utilizador efetuar uma chamada Graph API. O inquilino do EMEA Azure AD B2C efetua uma chamada de Graph API para o inquilino do NOAM Azure AD B2C para obter o perfil do utilizador. Esta chamada é autenticada pelo token de acesso para Graph API adquiridos no último passo.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
O utilizador local esqueceu-se da palavra-passe
Este caso de utilização demonstra como um utilizador pode repor a palavra-passe quando está no país/região de origem.
Um utilizador da EMEA tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador chega ao inquilino do EMEA Azure AD B2C e seleciona esqueceu-se da palavra-passe. O utilizador introduz e verifica o respetivo e-mail.
Email pesquisa é realizada para determinar em que inquilino regional o utilizador existe.
O utilizador fornece uma nova palavra-passe.
A nova palavra-passe é escrita no inquilino do EMEA Azure AD B2C.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Utilizador itinerante esqueceu-se da palavra-passe
Este caso de utilização demonstra como um utilizador pode repor a palavra-passe quando está a viajar para longe da região na qual registou a conta.
Um utilizador da NOAM tenta iniciar sessão no myapp.fr uma vez que está de férias em França. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador chega ao inquilino do EMEA Azure AD B2C e seleciona esqueceu-se da palavra-passe. O utilizador introduz e verifica o respetivo e-mail.
Email pesquisa é realizada para determinar em que inquilino regional o utilizador existe.
Verificou-se que o e-mail existe no inquilino do NOAM Azure AD B2C. O utilizador fornece uma nova palavra-passe.
A nova palavra-passe é escrita no inquilino do NOAM Azure AD B2C através de uma chamada de Graph API.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Alteração da palavra-passe de utilizador local
Este caso de utilização demonstra como um utilizador pode alterar a palavra-passe depois de ter iniciado sessão na região na qual registou a conta.
Um utilizador do EMEA tenta selecionar alterar a palavra-passe depois de iniciar sessão no myapp.fr.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador chega ao inquilino do EMEA Azure AD B2C e o conjunto de cookies Single-Sign On (SSO) permite que o utilizador altere imediatamente a palavra-passe.
A nova palavra-passe é escrita na conta de utilizadores no inquilino emEA Azure AD B2C.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Alteração de palavra-passe de utilizador itinerante
Este caso de utilização demonstra como um utilizador pode alterar a palavra-passe depois de iniciar sessão, longe da região na qual registou a conta.
Um utilizador do NOAM tenta alterar a palavra-passe depois de iniciar sessão no myapp.fr.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador chega ao inquilino do EMEA Azure AD B2C e o conjunto de cookies SSO permite que o utilizador altere imediatamente a palavra-passe.
O e-mail do utilizador encontra-se no inquilino no NOAM depois de verificar a tabela de pesquisa global.
A nova palavra-passe é escrita na conta de utilizadores na chamada NOAM Azure AD B2C por MS Graph API.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Autenticações do Fornecedor de Identidade Federada
Os seguintes casos de utilização mostram exemplos de utilização de identidades federadas para se inscrever ou iniciar sessão como um cliente B2C Azure AD.
Inscrição de ID federado local
Este caso de utilização demonstra como um utilizador pode inscrever-se no serviço a partir da região local com um ID federado.
Um utilizador da EMEA tenta inscrever-se no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa baseada no clientId da aplicação.
O utilizador seleciona para iniciar sessão com um Fornecedor de Identidade federado (IdP).
Efetue uma pesquisa na tabela de pesquisa global.
Se a ligação de conta estiver no âmbito: continue se o identificador IdP federado nem o e-mail devolvido do IdP federado não existirem na tabela de pesquisa.
Se a ligação de conta não estiver no âmbito: continue se o identificador IdP federado que voltou do IdP federado não existir na tabela de pesquisa.
Escreva a conta de utilizadores no inquilino do EMEA Azure AD B2C.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Início de sessão de utilizador federado local
Este caso de utilização demonstra como um utilizador da região local inicia sessão no serviço com um ID federado.
Um utilizador da EMEA tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador seleciona para iniciar sessão com um fornecedor de identidade federado.
Efetue uma pesquisa na tabela de pesquisa global e confirme que o ID federado do utilizador está registado no EMEA.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Início de sessão de utilizador federado itinerante
Este caso de utilização demonstra como um utilizador pode iniciar sessão na conta com um IdP federado, enquanto está localizado longe da região na qual se inscreveu.
Um utilizador da NOAM tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador seleciona para iniciar sessão com um fornecedor de identidade federado.
Nota
Utilize o mesmo ID da Aplicação do Registo de Aplicações no IdP Social em todos os inquilinos regionais do Azure AD B2C. Isto garante que o ID que regressa do IdP Social é sempre o mesmo.
Efetue uma pesquisa na tabela de pesquisa global e determine se o ID federado do utilizador está registado no NOAM.
Leia os dados da conta a partir do inquilino do NOAM Azure AD B2C com o MS Graph API.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Ligação da conta com critérios correspondentes
Este caso de utilização demonstra como os utilizadores são capazes de efetuar a ligação de conta quando os critérios correspondentes são cumpridos. Normalmente, os critérios correspondentes são o endereço de e-mail dos utilizadores. Quando os critérios correspondentes de um início de sessão de um novo fornecedor de identidade têm o mesmo valor para uma conta existente no Azure AD B2C, o processo de ligação da conta pode começar.
Um utilizador da EMEA tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador atinge o funil global Azure AD inquilino B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador seleciona para iniciar sessão com um fornecedor de identidade federado/IdP social.
É realizada uma pesquisa na tabela de pesquisa global para o ID devolvido do IdP federado.
Quando o ID não existe, mas o e-mail do IdP federado existe no EMEA Azure AD B2C – trata-se de um caso de utilização de ligação de conta.
Leia o utilizador a partir do diretório e determine que métodos de autenticação estão ativados na conta. Apresentar um ecrã para o utilizador iniciar sessão com um método de autenticação existente nesta conta.
Assim que o utilizador provar que é o proprietário da conta no Azure AD B2C, adicione o novo ID de rede social à conta existente e adicione o ID de rede social à conta na tabela de referência global.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.
Ligação da conta de utilizador itinerante com critérios correspondentes
Este caso de utilização demonstra como os utilizadores não locais são capazes de efetuar a ligação de conta quando os critérios correspondentes são cumpridos. Normalmente, os critérios correspondentes são o endereço de e-mail dos utilizadores. Quando os critérios correspondentes de um início de sessão de um novo fornecedor de identidade têm o mesmo valor para uma conta existente no Azure AD B2C, o processo de ligação da conta pode começar.
Um utilizador da NOAM tenta iniciar sessão no myapp.fr. Se o utilizador não estiver a ser enviado para a instância da aplicação local, o gestor de tráfego impõe um redirecionamento.
O utilizador chega ao inquilino do Funil Global Azure AD B2C. Este inquilino está configurado para redirecionar para um inquilino regional Azure AD B2C com base em alguns critérios através da federação OpenId. Pode ser uma pesquisa com base no Application clientId.
O utilizador seleciona para iniciar sessão com um fornecedor de identidade federado/IdP social.
É efetuada uma pesquisa na tabela de pesquisa global do ID devolvido do IdP federado.
Se o ID não existir e o e-mail do IdP federado existir noutra região, trata-se de um caso de utilização de ligação de conta de utilizador itinerante.
Crie uma ligação de id_token_hint que associe as afirmações atualmente recolhidas aos utilizadores. Bootstrap a journey into the NOAM Azure AD B2C tenant using federation. O utilizador prova que é o proprietário da conta através do inquilino NOAM Azure AD B2C.
Nota
Este método é utilizado para reutilizar a lógica de ligação da conta existente no inquilino principal e reduzir as chamadas à API externa para manipular a coleção de identidades. Pode encontrar aqui um exemplo de política personalizada que utiliza id_token_hint.
Assim que o utilizador provar que é o proprietário da conta no Azure AD B2C, adicione o novo ID de rede social à conta existente ao efetuar uma chamada de Graph API para o inquilino noAM Azure AD B2C. Adicione o ID de rede social à conta na tabela de referência global.
O inquilino regional emite um token de volta para o inquilino de funil.
O inquilino de funil emite um token para a aplicação.