Habilitar os domínios personalizados do Azure Active Directory B2C

Antes de começar, use o seletor anterior para escolher o tipo de política que está configurando. O Azure AD B2C oferece dois métodos para definir como os usuários interagem com seus aplicativos: por meio de fluxos dos usuários predefinidos ou políticas personalizadas totalmente configuráveis. As etapas necessárias neste artigo são diferentes para cada método.

Observação

Esse recurso está em uma versão prévia.

Este artigo descreve como habilitar os domínios personalizados nas URLs de redirecionamento do Azure AD B2C (Azure Active Directory B2C). O uso de um domínio personalizado com seu aplicativo proporciona uma experiência contínua do usuário. Da perspectiva do usuário, ele permanece em seu domínio durante o processo de entrada em vez de redirecionar para o domínio padrão do Azure AD B2C <tenant-name>.b2clogin.com.

Captura de tela que demonstra uma experiência do usuário de domínio personalizado do Azure AD B2C.

Visão geral do domínio personalizado

Você pode habilitar domínios personalizados do Azure AD B2C usando o Azure Front Door. O Azure Front Door é um ponto de entrada global que usa a rede de borda global da Microsoft para criar aplicativos Web rápidos, seguros e amplamente escalonáveis. Você pode renderizar o conteúdo do Azure AD B2C por trás do Azure Front Door e, em seguida, configurar uma opção no Azure Front Door para entregar o conteúdo através de um domínio personalizado na URL do seu aplicativo.

O diagrama a seguir ilustra a integração do Azure Front Door:

  1. Em um aplicativo, um usuário seleciona o botão de entrada, que o leva para a página de entrada do Azure AD B2C. Esta página especifica um nome de domínio personalizado.
  2. O navegador da Web resolve o nome de domínio personalizado para o endereço IP do Azure Front Door. Durante a resolução DNS, um registro de nome canônico (CNAME) com um nome de domínio personalizado aponta para o host de front-end padrão do Front Door (por exemplo, contoso.azurefd.net).
  3. O tráfego endereçado para o domínio personalizado (por exemplo, login.contoso.com) é roteado para o host de front-end padrão do Front Door especificado (contoso.azurefd.net).
  4. O Azure Front Door invoca o conteúdo do Azure AD B2C usando o domínio padrão do Azure AD B2C<tenant-name>.b2clogin.com. A solicitação para o ponto de extremidade do Azure AD B2C inclui o nome de domínio personalizado original.
  5. O Azure AD B2C responde à solicitação exibindo o conteúdo relevante e o domínio personalizado original.

O diagrama mostra o fluxo de rede de domínio personalizado.

Importante

A conexão do navegador para o Azure Front Door sempre deve usar IPv4 em vez de IPv6.

Ao usar domínios personalizados, considere o seguinte:

  • Você pode configurar vários domínios personalizados. Para obter o número máximo de domínios personalizados com suporte, consulte Restrições e limites de serviço do AD do Azure para o Azure AD B2C e Assinatura do Azure e limite de serviços, cotas e restrições para o Azure Front Door.
  • O Azure Front Door é um serviço separado do Azure, portanto, encargos extras serão incorridos. Para obter mais informações, consulte Preço do Front Door.
  • Para usar o Firewall de Aplicativo Webdo Azure Front Door, você precisa confirmar se as regras e a configuração do firewall funcionam corretamente com os fluxos de usuário do Azure AD B2C.
  • Depois de configurar domínios personalizados, os usuários ainda poderão acessar o nome de domínio padrão do Azure AD B2C <tenant-name>.b2clogin.com (a menos que você esteja usando uma política personalizada e bloquear o acesso.
  • Se você tiver vários aplicativos, migre todos eles para o domínio personalizado, pois o navegador armazena a sessão do Azure AD B2C sob o nome de domínio que está sendo usado no momento.

Pré-requisitos

Etapa 1. Adicionar um nome de domínio personalizado ao diretório do Azure AD B2C

Todo novo locatário do Azure AD B2C vem com um nome de domínio inicial: <domainname>.onmicrosoft.com. Você não pode alterar nem excluir o nome de domínio inicial, mas pode adicionar um domínio personalizado.

Siga estas etapas para adicionar um domínio personalizado ao locatário do Azure AD B2C:

  1. Adicione seu nome de domínio personalizado ao Azure AD.

    Importante

    Para essas etapas, certifique-se de entrar no locatário do Azure AD B2C e selecionar o serviço Azure Active Directory.

  2. Adicione suas informações de DNS ao registrador de domínios. Depois de adicionar seu nome de domínio personalizado ao Azure AD, crie um registro DNS TXT ou MX para seu domínio. A criação desse registro DNS para o domínio verifica a propriedade do nome de domínio.

    Os exemplos a seguir demonstram registros TXT para login.contoso.com e account.contoso.com:

    Nome (nome do host) Tipo Dados
    login TXT MS=ms12345678
    account TXT MS=ms87654321

    O registro TXT deve ser associado ao subdomínio ou ao nome do host do domínio. Por exemplo, a parte logon do domínio contoso.com. Se o nome do host estiver vazio ou @, o Azure AD não poderá verificar o domínio personalizado que você adicionou. Nos exemplos a seguir, ambos os registros estão configurados incorretamente.

    Nome (nome do host) Tipo Dados
    TXT MS=ms12345678
    @ TXT MS=ms12345678

    Dica

    Você pode gerenciar o domínio personalizado com qualquer serviço DNS disponível publicamente, como GoDaddy. Se você não tiver um servidor DNS, poderá usar a zona DNS do Azureou domínios do Serviço de Aplicativo.

  3. Verifique seu nome de domínio personalizado. Verifique cada subdomínio ou nome do host que você planeja usar. Por exemplo, para poder entrar com login.contoso.com e account.contoso.com, é necessário verificar ambos os subdomínios, e não apenas o domínio primário contoso.com.

    Depois que o domínio for verificado, exclua o registro TXT do DNS que você criou.

Etapa 2. Criar uma nova instância do Azure Front Door

Siga estas etapas para criar um Front Door para o locatário do Azure AD B2C. Para obter mais informações, consulte criar um Front Door para o aplicativo.

  1. Entre no portal do Azure.

  2. Selecione Diretório + assinatura e escolha o diretório que contém a assinatura do Azure que você deseja usar para o Azure Front Door. O diretório não deve ser o diretório que contém o locatário do Azure AD B2C.

  3. Na Página Inicial ou no menu do Azure, selecione Criar um recurso. Selecione Rede > Ver Todos > Front Door.

  4. Na guia Básico da página Criar um Front Door, insira ou selecione as seguintes informações e selecione Avançar: configuração.

    Setting Valor
    Assinatura Selecione sua assinatura do Azure.
    Grupo de recursos Escolha um grupo de recursos ou selecione Criar novo para criar um novo.
    Localização do grupo de recursos Selecione o local do grupo de recursos. Por exemplo, Centro dos EUA.

2.1 Adicionar host de front-end

O host de front-end é o nome de domínio usado pelo aplicativo. Ao criar um Front Door, o host de front-end padrão será um subdomínio de azurefd.net.

O Azure Front Door oferece a opção de associar um domínio personalizado ao host de front-end. Com essa opção, você associa a interface do usuário do Azure AD B2C a um domínio personalizado na URL em vez de um nome de domínio de propriedade do Front Door. Por exemplo, https://login.contoso.com.

Para adicionar um host de front-end, siga estas etapas:

  1. Em Front-ends/domínios, selecione + para abrir Adicionar um host de front-end.

  2. Para Nome do host, insira um nome do host globalmente exclusivo. O nome do host não é o domínio personalizado. Este exemplo usa contoso-frontend. Selecione Adicionar.

    Captura de tela que demonstra como adicionar um host de front-end.

2.2 Adicionar back-end e pool de back-end

A primeira parte se refere ao nome do locatário do Azure AD B2C, tenant-name.b2clogin.com. Para adicionar um pool de back-end, siga estas etapas:

  1. Ainda em Criar um Front Door, em Pools de back-end, selecione + para abrir Adicionar um pool de back-end.

  2. Insira um Nome. Por exemplo, myBackendPool. Selecione Adicionar um back-end.

    A captura de tela a seguir demonstra como criar um pool de back-end:

    Captura de tela que demonstra como adicionar um pool de back-end de front-end.

  3. Na folha Adicionar um back-end, selecione as informações a seguir e selecione Adicionar.

    Configuração Valor
    Tipo de host de back-end Selecione Host personalizado.
    Nome do host de back-end Selecione o nome do seu Azure AD B2C, <tenant-name>.b2clogin.com. Por exemplo, contoso.b2clogin.com.
    Cabeçalho de host de back-end Selecione o mesmo valor que já selecionou para Nome do host de back-end.

    *Deixe todos os outros campos com os valores padrão.

    A captura de tela a seguir demonstra como criar um back-end de host personalizado que está associado a um locatário do Azure AD B2C:

    Captura de tela que demonstra como adicionar um back-end de host personalizado.

  4. Para concluir a configuração do pool de back-end, na folha Adicionar um pool de back-end, selecione Adicionar.

  5. Depois de adicionar o back-end ao pool de back-end, desabilite as Investigações de integridade.

    Captura de tela que demonstra como adicionar um pool de back-end e desabilitar as investigações de integridade.

2.3 Adicionar uma regra de roteamento

Por fim, adicione uma regra de roteamento. A regra de roteamento mapeia o host de front-end para o pool de back-end. A regra encaminha uma solicitação para o host de front -end para o back-end do Azure AD B2C. Para adicionar uma regra de roteamento, siga estas etapas:

  1. Em Adicionar uma regra, para Nome, insira LocationRule. Aceite todos os valores padrão e, em seguida, selecione Adicionar para adicionar a regra de roteamento.

  2. Selecione Examinar + Criar e depois Criar.

    Captura de tela que demonstra como criar o Azure Front Door.

Etapa 3. Configurar seu domínio personalizado no Azure Front Door

Nesta etapa, você adiciona o domínio personalizado que registrou na Etapa 1 ao seu Front Door.

3.1 Criar um registro DNS CNAME

Antes de usar um domínio personalizado com o Front Door, você precisará criar primeiro um registro CNAME (nome canônico) com seu provedor de domínio para apontar para o host de front-end padrão do Front Door (digamos, contoso.azurefd.net).

Um registro CNAME é um tipo de registro DNS que mapeia um nome de domínio de origem para um nome de domínio de destino (alias). Para o Azure Front Door, o nome de domínio de origem é o seu nome de domínio personalizado e o nome de domínio de destino é nome do host padrão que você configura na etapa 2.1.

Depois que o Front Door verificar o registro CNAME criado, o tráfego endereçado ao domínio personalizado de origem (como login.contoso.com) será roteado para o host de front-end padrão do Front Door de destino especificado, como contoso.azurefd.net. Para saber mais, consulte adicionar um domínio personalizado ao Front Door.

Para criar um registro CNAME para seu domínio personalizado:

  1. Entre no site do provedor de domínio relativo ao seu domínio personalizado.

  2. Localize a página de gerenciamento de registros DNS consultando a documentação do provedor ou procurando áreas do site rotuladas como Nome de Domínio, DNS ou Gerenciamento do Servidor de Nome.

  3. Crie uma entrada de registro CNAME para seu domínio personalizado e preencha os campos conforme mostrado na seguinte tabela (os nomes dos campos podem variar):

    Fonte Type Destino
    <login.contoso.com> CNAME contoso.azurefd.net
    • Origem: insira seu nome de domínio personalizado (por exemplo, login.contoso.com).

    • Tipo: Insira CNAME.

    • Destino: insira seu host de front-end do Front Door padrão criado na etapa 2.1. Ele deve estar no seguinte formato: <nomedohost> .azurefd.net. Por exemplo, contoso.azurefd.net.

  4. Salve as alterações.

3.2 Associar o domínio personalizado com o Front Door

Depois de registrar seu domínio personalizado, adicione-o ao Front Door.

  1. Na página Designer do Front Door, em Front-ends/domínios, selecione + para adicionar um domínio personalizado.

    Captura de tela que demonstra como adicionar um domínio personalizado.

  2. Para o Host de front-end, o host de front-end a ser usado como o domínio de destino do seu registro CNAME é previamente preenchido e derivado do seu Front Door: <nome do host padrão> .azurefd.net. Ele não pode ser alterado.

  3. Para o Nome de host personalizado, insira seu domínio personalizado, incluindo o subdomínio, para usar como o domínio de origem de seu registro CNAME. Por exemplo, login.contoso.com.

    Captura de tela que demonstra como verificar um domínio personalizado.

    O Azure verifica se o registro CNAME existe para o nome de domínio personalizado digitado. Se o CNAME estiver correto, seu domínio personalizado será validado.

  4. Depois que o nome de domínio personalizado for verificado, em HTTPS do nome de domínio personalizado, selecione Habilitado.

    Captura de tela que mostra como habilitar o HTTPS usando um certificado do Azure Front Door.

  5. Para o Tipo de gerenciamento de certificado, selecione Gerenciamento do Front Doorou Usar meu próprio certificado. Se você escolher a opção Gerenciado pelo Front Door, aguarde até que o certificado seja totalmente provisionado.

  6. Selecione Adicionar.

3.3 Atualizar a regra de roteamento

  1. Nas Regras de roteamento, selecione a regra de roteamento que você criou na etapa 2.3.

    Captura de tela que demonstra como selecionar uma regra de roteamento.

  2. Em Front-ends/domínios, selecione o nome de domínio personalizado.

    Captura de tela que demonstra como atualizar a regra de roteamento do Azure Front Door.

  3. Selecione Atualizar.

  4. Na janela principal, selecione Salvar.

Etapa 4. Configurar o CORS

Se você personalizar a interface do usuário do Azure AD B2C com um modelo HTML, você precisará Configurar o CORS com seu domínio personalizado.

Configure o armazenamento de Blob do Azure para o Compartilhamento de Recursos entre Origens seguindo as seguintes etapas:

  1. No Portal do Azure, navegue até sua conta de armazenamento.
  2. No menu, selecione CORS.
  3. Para origens permitidas, insira https://your-domain-name. Substitua your-domain-name pelo nome de domínio. Por exemplo, https://login.contoso.com. Use todas as letras minúsculas ao inserir o nome do locatário.
  4. Para métodos permitidos, selecione ambos GET e OPTIONS.
  5. Para cabeçalhos permitidos, digite um asterisco (*).
  6. Para cabeçalhos expostos, digite um asterisco (*).
  7. Para Idade máxima de, insira 200.
  8. Selecione Salvar.

Testar seu domínio personalizado

  1. Entre no portal do Azure.

  2. Selecione o filtro Diretório + assinatura no menu superior e, em seguida, selecione o diretório que contém o locatário do Azure AD B2C.

  3. No portal do Azure, pesquise e selecione Azure AD B2C.

  4. Em Políticas, selecione Fluxos de usuários (políticas) .

  5. Selecione um fluxo do usuário e, em seguida, selecione Executar fluxo do usuário.

  6. Para Aplicativo, selecione o aplicativo Web denominado webapp1 que você registrou anteriormente. A URL de resposta deve mostrar https://jwt.ms.

  7. Copie a URL em Executar ponto de extremidade de fluxo de usuário.

    Captura de tela que demonstra como copiar o URI da solicitação de autorização.

  8. Para simular uma entrada com o domínio personalizado, abra um navegador da Web e use a URL copiada. Substitua o domínio do Azure AD B2C ( <tenant-name> .b2clogin.com) pelo domínio personalizado.

    Por exemplo, em vez de:

    https://contoso.b2clogin.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=63ba0d17-c4ba-47fd-89e9-31b3c2734339&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login
    

    use:

    https://login.contoso.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_susi&client_id=63ba0d17-c4ba-47fd-89e9-31b3c2734339&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login    
    
  9. Verifique se o Azure AD B2C foi carregado corretamente. Em seguida, entre com uma conta local.

  10. Repita o teste com o restante de suas políticas.

Configuração do seu provedor de identidade

Quando um usuário opta por entrar com um provedor de identidade social, o Azure AD B2C inicia uma solicitação de autorização e leva o usuário para o provedor de identidade selecionado para concluir o processo de entrada. A solicitação de autorização especifica o redirect_uri com o nome de domínio padrão do Azure AD B2C:

https://<tenant-name>.b2clogin.com/<tenant-name>/oauth2/authresp

Se você tiver configurado sua política para permitir a entrada com um provedor de identidade externo, atualize os URIs de redirecionamento do OAuth com o domínio personalizado. A maioria dos provedores de identidade permite que você registre vários URIs de redirecionamento. É recomendável adicionar URIs de redirecionamento em vez de substituí-las para que você possa testar sua política personalizada sem afetar os aplicativos que usam o nome de domínio padrão do Azure AD B2C.

No seguinte URI de redirecionamento:

https://<custom-domain-name>/<tenant-name>/oauth2/authresp
  • Substitua <custom-domain-name> pelo nome de domínio personalizado.
  • Substitua <tenant-name> pelo nome do locatário ou ID do locatário.

O exemplo a seguir mostra um URI de redirecionamento do OAuth válido:

https://login.contoso.com/contoso.onmicrosoft.com/oauth2/authresp

Se você optar por usar a ID do locatário, um URI de redirecionamento do OAuth válido teria a aparência do seguinte exemplo:

https://login.contoso.com/11111111-1111-1111-1111-111111111111/oauth2/authresp

Os metadados dos provedores de identidade SAML teriam a aparência do seguinte exemplo:

https://<custom-domain-name>.b2clogin.com/<tenant-name>/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Configurar seu aplicativo

Depois de configurar e testar o domínio personalizado, você pode atualizar seus aplicativos para carregar a URL que especifica o domínio personalizado como o nome do host em vez do domínio Azure AD B2C.

A integração de domínio personalizado se aplica a pontos de extremidade de autenticação que usam políticas do Azure AD B2C (fluxos de usuário ou políticas personalizadas) para autenticar usuários. Esses pontos de extremidade podem ter a aparência do seguinte exemplo:

  • https://<custom-domain>/<tenant-name>/<policy-name>/v2.0/.well-known/openid-configuration

  • https://<custom-domain>/<tenant-name>/<policy-name>/oauth2/v2.0/authorize

  • https://<custom-domain>/<tenant-name>/<policy-name>/oauth2/v2.0/token

Substitua:

Os metadados do provedor de serviços SAML teriam a aparência do seguinte exemplo:

https://custom-domain-name/tenant-name/policy-name/Samlp/metadata

(Opcional) Usar ID do locatário

Você pode substituir o nome do locatário B2C na URL pelo GUID da ID do locatário para remover todas as referências a "B2C" na URL. Você pode encontrar o GUID da ID do locatário na página Visão Geral do B2C no portal do Azure. Por exemplo, altere https://account.contosobank.co.uk/contosobank.onmicrosoft.com/ para https://account.contosobank.co.uk/<tenant ID GUID>/

Se você optar por usar a ID do locatário em vez do nome do locatário, certifique-se de atualizar os URIs de redirecionamento do OAuth do provedor de identidade corretamente. Para obter mais informações, consulte Configurar o provedor de identidade.

Emissão de token

A declaração do nome do emissor do token (ISS) é alterada com base no domínio personalizado que está sendo usado. Por exemplo:

https://<domain-name>/11111111-1111-1111-1111-111111111111/v2.0/

Bloquear o acesso ao nome de domínio padrão

Depois de adicionar o domínio personalizado e configurar o aplicativo, os usuários ainda poderão acessar o domínio <tenant-name>.b2clogin.com. Para impedir o acesso, você pode configurar a política para verificar o "nome do host" da solicitação de autorização em uma lista de domínios permitidos. O nome do host é o nome de domínio que aparece na URL. O nome do host está disponível através dos {Context:HostName} resolvedores de declarações. Em seguida, você pode apresentar uma mensagem de erro personalizada.

  1. Obtenha o exemplo de uma política de acesso condicional que verifica o nome do host no GitHub.
  2. Em cada arquivo, substitua a cadeia de caracteres yourtenant pelo nome do seu locatário do Azure AD B2C. Por exemplo, se o nome do seu locatário B2C for contosob2c, todas as instâncias de yourtenant.onmicrosoft.com se tornarão contosob2c.onmicrosoft.com.
  3. Carregue os arquivos de política na seguinte ordem: B2C_1A_TrustFrameworkExtensions_HostName.xml e, em seguida, B2C_1A_signup_signin_HostName.xml.

Solução de problemas

O Azure AD B2C exibe uma mensagem de erro de página não encontrada

  • Sintoma - depois de configurar um domínio personalizado, ao tentar entrar com o domínio personalizado, uma mensagem de erro HTTP 404 será exibida.
  • Possíveis causas - esse problema pode estar relacionado à configuração do DNS ou à configuração de back-end do Azure Front Door.
  • Resolução:
    1. Verifique se o domínio personalizado foi registrado e verificado com êxito no locatário do Azure AD B2C.
    2. Verifique se o domínio personalizado está configurado corretamente. O registro CNAME do seu domínio personalizado deve apontar para o host de front-end padrão do Azure Front Door (por exemplo, contoso.azurefd.net).
    3. Verifique se a configuração do pool de back-end do Azure Front Door aponta para o locatário onde você configurou o nome de domínio personalizado e onde seu fluxo de usuário ou políticas personalizadas são armazenadas.

O Azure AD B2C retorna que o recurso que você está procurando foi removido, teve seu nome alterado ou está temporariamente indisponível.

  • Sintoma – depois de configurar um domínio personalizado, quando você tenta entrar com o domínio personalizado, você recebe a mensagem de erro que o recurso que você está procurando foi removido teve seu nome alterado ou está temporariamente indisponível.
  • Possíveis causas – esse problema pode estar relacionado à verificação de domínio personalizado do Azure AD.
  • Resolução: certifique-se de que o domínio personalizado seja registrado e verificado com êxito no locatário do Azure AD B2C.

Identificar provedor retorna um erro

  • Sintoma - após configurar um domínio personalizado, você poderá entrar com contas locais. Mas quando você entra com credenciais de provedores de identidade social ou corporativa externos, o provedor de identidade apresenta uma mensagem de erro.
  • Causas possíveis - quando o Azure AD B2C leva o usuário para entrar com um provedor de identidade federada, ele especifica o URI de redirecionamento. O URI de redirecionamento é o ponto de extremidade para onde o provedor de identidade retorna o token. O URI de redirecionamento é o mesmo domínio usado pelo seu aplicativo com a solicitação de autorização. Se o URI de redirecionamento ainda não estiver registrado no provedor de identidade, ele poderá não confiar no novo URI de redirecionamento, o que resultará em uma mensagem de erro.
  • Resolução - siga as etapas em Configurar seu provedor de identidade para adicionar o novo URI de redirecionamento.

Perguntas frequentes

Posso usar a configuração avançada do Azure Front Door, como Regras de firewall do aplicativo Web?

Embora as definições de configuração avançada do Azure Front Door não sejam oficialmente suportadas, você pode usá-las por conta própria.

Quando uso Executar Agora para tentar executar minha política, por que não consigo ver o domínio personalizado?

Copie a URL, altere o nome de domínio manualmente e cole-a novamente no navegador.

Qual endereço IP é apresentado no Azure AD B2C? O endereço IP do usuário ou o endereço IP do Azure Front Door?

O Azure Front Door passa o endereço IP original do usuário. É o endereço IP que você verá no relatório de auditoria ou na política personalizada.

Posso usar um WAF (firewall do aplicativo Web) de terceiros com B2C?

Para usar seu próprio firewall do aplicativo Web na frente do Azure Front Door, você precisa configurar e validar que tudo funciona corretamente com os fluxos de usuário do Azure AD B2C ou políticas personalizadas.

Próximas etapas

Saiba mais sobre Solicitações de autorização do OAuth.