Visão geral da política personalizada do Azure AD B2C
As políticas personalizadas são ficheiros de configuração que definem o comportamento do inquilino do Azure Active Directory B2C (AAD B2C). Embora os fluxos de usuário sejam predefinidos no portal do Azure AD B2C para as tarefas de identidade mais comuns, um desenvolvedor de identidade pode editar políticas personalizadas para concluir muitas tarefas diferentes.
Uma política personalizada é totalmente configurável e orientada por políticas. Uma política personalizada orquestra a confiança entre entidades em protocolos padrão. Por exemplo, OpenID Connect, OAuth, SAML e alguns não padrão, por exemplo, trocas de declarações de sistema para sistema baseadas em API REST. A estrutura cria experiências fáceis de usar e de marca branca.
Uma política personalizada é representada como um ou mais arquivos formatados em XML, que se referem uns aos outros em uma cadeia hierárquica. Os elementos XML definem os blocos de construção, a interação com o usuário e outras partes e a lógica de negócios.
Pacote inicial de políticas personalizadas
O pacote inicial de políticas personalizadas do Azure AD B2C vem com várias políticas pré-criadas para você começar rapidamente. Cada um desses pacotes iniciais contém o menor número de perfis técnicos e jornadas do usuário necessárias para alcançar os cenários descritos:
- LocalAccounts - Permite o uso apenas de contas locais.
- SocialAccounts - Permite o uso apenas de contas sociais (ou federadas).
- SocialAndLocalAccounts - Permite o uso de contas locais e sociais. A maioria dos nossos exemplos refere-se a esta política.
- SocialAndLocalAccountsWithMFA - Permite opções de autenticação social, local e multifator.
No repositório GitHub de exemplos do Azure AD B2C, você encontra exemplos para várias jornadas e cenários de usuário CIAM personalizados do Azure AD B2C aprimorados. Por exemplo, aprimoramentos de política de conta local, aprimoramentos de política de conta social, aprimoramentos de MFA, aprimoramentos de interface do usuário, aprimoramentos genéricos, migração de aplicativos, migração de usuários, acesso condicional, teste da Web e CI/CD.
Noções básicas
Pedidos
Uma declaração fornece armazenamento temporário de dados durante a execução de uma política do Azure AD B2C. As declarações são mais como variáveis em uma linguagem de programação. Ele pode armazenar informações sobre o usuário, como nome, sobrenome ou qualquer outra reivindicação obtida do usuário ou de outros sistemas (trocas de reivindicações). O esquema de declarações é o local onde você declara suas reivindicações.
Quando a política é executada, o Azure AD B2C envia e recebe declarações de e para terceiros internos e externos e, em seguida, envia um subconjunto dessas declarações para seu aplicativo de terceira parte confiável como parte do token. As declarações são utilizadas das seguintes formas:
- Uma declaração é salva, lida ou atualizada em relação ao objeto de usuário do diretório.
- Uma declaração é recebida de um provedor de identidade externo.
- As declarações são enviadas ou recebidas usando um serviço de API REST personalizado.
- Os dados são coletados como declarações do usuário durante os fluxos de inscrição ou edição de perfil.
Manipulação das suas reivindicações
As transformações de declarações são funções predefinidas que podem ser usadas para converter uma determinada declaração em outra, avaliar uma declaração ou definir um valor de declaração. Por exemplo, adicionar um item a uma coleção de cadeias de caracteres, alterar as maiúsculas e minúsculas de uma cadeia de caracteres ou avaliar uma declaração de data e hora. Uma transformação de declarações especifica um método de transformação, que também é predefinido.
Personalize e localize sua interface do usuário
Para coletar informações de seus usuários apresentando uma página em seu navegador da web, use o perfil técnico autodeclarado. Você pode editar seu perfil técnico autodeclarado para adicionar declarações e personalizar a entrada do usuário.
Para personalizar a interface do usuário para seu perfil técnico autodeclarado, especifique uma URL no elemento de definição de conteúdo com conteúdo HTML personalizado. No perfil técnico autodeclarado, você aponta para essa ID de definição de conteúdo.
Para personalizar cadeias de caracteres específicas do idioma, use o elemento de localização . Uma definição de conteúdo pode conter uma referência de localização que especifica uma lista de recursos localizados a serem carregados. O Azure AD B2C mescla elementos da interface do usuário com o conteúdo HTML carregado da sua URL e, em seguida, exibe a página para o usuário.
Visão geral da política de terceira parte confiável
Um aplicativo de terceira parte confiável, que no protocolo SAML é conhecido como um provedor de serviços, chama a política de terceira parte confiável para executar uma jornada de usuário específica. A política de terceira parte confiável especifica a jornada do usuário a ser executada e a lista de declarações que o token inclui.
Todos os aplicativos de terceira parte confiável que usam a mesma política recebem as mesmas declarações de token e o usuário passa pela mesma jornada do usuário.
Jornadas do usuário
As jornadas do usuário permitem que você defina a lógica de negócios com o caminho pelo qual o usuário segue para obter acesso ao seu aplicativo. O usuário é levado através da jornada do usuário para recuperar as declarações que devem ser apresentadas ao seu aplicativo. Uma jornada do usuário é construída a partir de uma sequência de etapas de orquestração. Um usuário deve chegar à última etapa para adquirir um token.
As instruções a seguir descrevem como você pode adicionar etapas de orquestração à política do pacote inicial de conta social e local. Aqui está um exemplo de uma chamada de API REST que foi adicionada.
Etapas de orquestração
A etapa de orquestração faz referência a um método que implementa sua finalidade ou funcionalidade pretendida. Este método é chamado de perfil técnico. Quando sua jornada do usuário precisa de ramificação para representar melhor a lógica de negócios, a etapa de orquestração faz referência à subjornada. Uma sub-jornada contém seu próprio conjunto de etapas de orquestração.
Um usuário deve chegar à última etapa de orquestração na jornada do usuário para adquirir um token. Mas os usuários podem não precisar percorrer todas as etapas de orquestração. As etapas de orquestração podem ser executadas condicionalmente com base em pré-condições definidas na etapa de orquestração.
Após a conclusão de uma etapa de orquestração, o Azure AD B2C armazena as declarações de saída no pacote de declarações. As declarações no saco de reclamações podem ser utilizadas por quaisquer outras etapas de orquestração na jornada do usuário.
O diagrama a seguir mostra como as etapas de orquestração da jornada do usuário podem acessar o saco de declarações.
Perfil técnico
Um perfil técnico fornece uma interface para comunicar com diferentes tipos de partes. Uma jornada do usuário combina a chamada de perfis técnicos por meio de etapas de orquestração para definir sua lógica de negócios.
Todos os tipos de perfis técnicos partilham o mesmo conceito. Você envia declarações de entrada, executa a transformação de declarações e se comunica com a parte configurada. Após a conclusão do processo, o perfil técnico retorna as declarações de saída para o saco de declarações. Para obter mais informações, consulte Visão geral de perfis técnicos.
Perfil técnico de validação
Quando um usuário interage com a interface do usuário, convém validar os dados coletados. Para interagir com o usuário, um perfil técnico autoafirmado deve ser usado.
Para validar a entrada do usuário, um perfil técnico de validação é chamado a partir do perfil técnico autodeclarado. Um perfil técnico de validação é um método para chamar qualquer perfil técnico não interativo. Nesse caso, o perfil técnico pode retornar declarações de saída ou uma mensagem de erro. A mensagem de erro é processada para o usuário na tela, permitindo que o usuário tente novamente.
O diagrama a seguir ilustra como o Azure AD B2C usa um perfil técnico de validação para validar as credenciais do usuário.
Modelo de herança
Cada pacote inicial inclui os seguintes ficheiros:
- Um arquivo base que contém a maioria das definições. Para ajudar com a solução de problemas e a manutenção de longo prazo de suas políticas, tente minimizar o número de alterações feitas nesse arquivo.
- Um arquivo de localização que contém as cadeias de caracteres de localização . Este ficheiro de política é derivado do ficheiro Base. Use este arquivo para acomodar diferentes idiomas para atender às necessidades do seu cliente.
- Um arquivo de extensões que contém as alterações de configuração exclusivas para seu locatário. Esse arquivo de política é derivado do arquivo de localização. Use este arquivo para adicionar nova funcionalidade ou substituir a funcionalidade existente. Por exemplo, use esse arquivo para federar com novos provedores de identidade.
- Um arquivo de Terceira Parte Confiável (RP) que é o único arquivo focado em tarefa que é invocado diretamente pelo aplicativo de terceira parte confiável, como seus aplicativos Web, móveis ou de desktop. Cada tarefa exclusiva, como inscrição, entrada ou edição de perfil, requer seu próprio arquivo de política de terceira parte confiável. Este ficheiro de política é derivado do ficheiro de extensões.
O modelo de herança é o seguinte:
- A política filho em qualquer nível pode herdar da política pai e estendê-la adicionando novos elementos.
- Para cenários mais complexos, você pode adicionar mais níveis de herança (até 10 no total).
- Você pode adicionar mais políticas de terceira parte confiável. Por exemplo, exclua minha conta, altere um número de telefone, a política de terceira parte confiável SAML e muito mais.
O diagrama a seguir mostra a relação entre os arquivos de política e os aplicativos de terceira parte confiável.
Documentação de orientação e melhores práticas
Melhores práticas
Dentro de uma política personalizada do Azure AD B2C, você pode integrar sua própria lógica de negócios para criar as experiências de usuário necessárias e estender a funcionalidade do serviço. Temos um conjunto de boas práticas e recomendações para começar.
- Crie sua lógica dentro da política de extensão ou da política de terceira parte confiável. Você pode adicionar novos elementos, que substitui a política base fazendo referência à mesma ID. Essa abordagem permite que você dimensione seu projeto e, ao mesmo tempo, facilite a atualização da política básica mais tarde se a Microsoft lançar novos pacotes iniciais.
- Dentro da política básica, é altamente recomendável evitar fazer alterações. Quando necessário, faça comentários onde as alterações são feitas.
- Ao substituir um elemento, como metadados de perfil técnico, evite copiar todo o perfil técnico da política base. Em vez disso, copie apenas a seção necessária do elemento. Consulte Desativar verificação de e-mail para obter um exemplo de como fazer a alteração.
- Para reduzir a duplicação de perfis técnicos, onde a funcionalidade principal é compartilhada, use a inclusão de perfil técnico.
- Evite gravar no diretório do Microsoft Entra durante a entrada, o que pode levar a problemas de limitação.
- Se sua política tiver dependências externas, como APIs REST, verifique se elas estão altamente disponíveis.
- Para uma melhor experiência do usuário, certifique-se de que seus modelos HTML personalizados sejam implantados globalmente usando a entrega de conteúdo online. A Rede de Entrega de Conteúdo (CDN) do Azure permite reduzir os tempos de carregamento, economizar largura de banda e melhorar a velocidade de resposta.
- Se você quiser fazer uma alteração na jornada do usuário, copie toda a jornada do usuário da política base para a política de extensão. Forneça um ID de jornada do usuário exclusivo para a jornada do usuário que você copiou. Em seguida, na política de terceira parte confiável, altere o elemento de jornada do usuário padrão para apontar para a nova jornada do usuário.
Resolução de problemas
Ao desenvolver com políticas do Azure AD B2C, você pode encontrar erros ou exceções ao executar sua jornada de usuário. O pode ser investigado usando o Application Insights.
- Integre o Application Insights com o Azure AD B2C para diagnosticar exceções.
- A extensão do Azure AD B2C para Visual Studio Code pode ajudá-lo a acessar e visualizar os logs com base em um nome e hora de política.
- O erro mais comum na configuração de políticas personalizadas é XML formatado incorretamente. Use a validação de esquema XML para identificar erros antes de carregar o arquivo XML.
Integração contínua
Usando um pipeline de integração e entrega contínua (CI/CD) que você configurou no Azure Pipelines, você pode incluir suas políticas personalizadas do Azure AD B2C em sua automação de entrega de software e controle de código. À medida que você implanta em diferentes ambientes do Azure AD B2C, por exemplo, desenvolvimento, teste e produção, recomendamos que você remova processos manuais e execute testes automatizados usando o Azure Pipelines.
Preparar o ambiente
Você começa a usar a política personalizada do Azure AD B2C:
- Criar um inquilino do Azure AD B2C
- Registre um aplicativo Web usando o portal do Azure para poder testar sua política.
- Adicione as chaves de política necessárias e registre os aplicativos do Identity Experience Framework.
- Obtenha o pacote inicial de políticas do Azure AD B2C e carregue para o seu inquilino.
- Depois de carregar o pacote inicial, teste a sua política de inscrição ou início de sessão.
- Recomendamos que você baixe e instale o Visual Studio Code (VS Code ). O Visual Studio Code é um editor de código-fonte leve, mas poderoso, que é executado em sua área de trabalho e está disponível para Windows, macOS e Linux. Com o VS Code, você pode navegar e editar rapidamente seus arquivos XML de política personalizada do Azure AD B2C instalando a extensão do Azure AD B2C para VS Code
Próximos passos
Depois de configurar e testar sua política do Azure AD B2C, você pode começar a personalizar sua política. Consulte os seguintes artigos para saber como:
- Adicione declarações e personalize a entrada do usuário usando políticas personalizadas. Saiba como definir uma declaração e adicionar uma declaração à interface do usuário personalizando alguns dos perfis técnicos do pacote inicial.
- Personalize a interface do usuário do seu aplicativo usando uma política personalizada. Saiba como criar seu próprio conteúdo HTML e personalizar a definição de conteúdo.
- Localize a interface do usuário do seu aplicativo usando uma política personalizada. Saiba como configurar a lista de idiomas suportados e fornecer rótulos específicos do idioma, adicionando o elemento de recursos localizados.
- Durante o desenvolvimento e teste da política, você pode desativar a verificação de e-mail. Saiba como substituir metadados de um perfil técnico.
- Configure o login com uma Conta do Google usando políticas personalizadas. Saiba como criar um novo provedor de declarações com o perfil técnico OAuth2. Em seguida, personalize a jornada do usuário para incluir a opção de login do Google.
- Para diagnosticar problemas com suas políticas personalizadas, você pode Coletar logs B2C do Azure Ative Directory com o Application Insights. Saiba como adicionar novos perfis técnicos e configurar sua política de terceira parte confiável.
- Se você quiser entender como a política personalizada é criada do zero, saiba como Criar e executar suas próprias políticas personalizadas na série de guias de instruções do Azure Ative Directory B2C.