Tutorial: Criar fluxos dos usuários e políticas personalizadas no Azure Active Directory B2C

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

Nos seus aplicativos, pode haver fluxos dos usuários que permitem que os usuários inscrevam-se, conectem-se ou gerenciem seus perfis. É possível criar vários fluxos dos usuários de diferentes tipos no locatário do Azure AD B2C (Azure Active Directory B2C) e usá-los nos aplicativos, conforme necessário. Fluxos dos usuários podem ser reutilizados nos aplicativos.

Um fluxo do usuário permite que você determine como os usuários interagem com seu aplicativo ao entrar, se inscrever, editar um perfil ou redefinir uma senha. Neste artigo, você aprenderá como:

As políticas personalizadas são arquivos de configuração que definem o comportamento do locatário do Azure AD B2C (Azure Active Directory B2C). Neste artigo, você aprenderá como:

  • Criar um fluxo de usuário de inscrição e de entrada
  • Habilitar a redefinição de senha por autoatendimento
  • Criar um fluxo de usuário de edição de perfil

Importante

Alteramos a maneira como fazemos referência às versões de fluxo do usuário. Anteriormente, oferecíamos versões V1 (prontas para produção) e versões V1.1 e V2 (versão prévia). Agora, consolidamos os fluxos dos usuários em duas versões: fluxos dos usuários Recomendados com os recursos mais recentes e fluxos dos usuários Padrão (Herdado) . Todos os fluxos dos usuários da versão prévia herdada (V1.1 e V2) serão preteridos. Para obter detalhes, consulte as Versões de fluxo de usuário no Azure AD B2C. Essas alterações se aplicam somente à nuvem pública do Azure. Outros ambientes continuarão a usar o controle de versão de fluxo de usuário herdado.

Pré-requisitos

Criar um fluxo de usuário de inscrição e de entrada

O fluxo do usuário de inscrição e credenciais controla as experiências de inscrição e credenciais do consumidor com uma única configuração. Os usuários do aplicativo são conduzidos pelo caminho certo, de acordo com o contexto.

  1. Entre no portal do Azure.

  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.

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

  4. Em Políticas, selecione Fluxos dos usuários e, em seguida, selecione Novo fluxo de usuário.

    User flows page in portal with New user flow button highlighted

  5. Na página Criar um fluxo de usuário, selecione o fluxo do usuário Inscrever-se e entrar.

    Select a user flow page with Sign-up and sign-in flow highlighted

  6. Em Selecionar uma versão, selecione Recomendado e, em seguida, selecione Criar. (Saiba mais sobre as versões de fluxo de usuário.)

    Create user flow page in Azure portal with properties highlighted

  7. Insira um Nome para o fluxo de usuário. Por exemplo, signupsignin1.

  8. Para Provedores de identidade, selecione Inscrição por email.

  9. Para Atributos do usuário e declarações de token, escolha as declarações e atributos que deseja coletar e enviar do usuário durante a inscrição. Por exemplo, selecione Mostrar mais e, depois, escolha atributos e declarações de País/região, Nome de exibição e Código postal. Selecione OK.

    Attributes and claims selection page with three claims selected

  10. Selecione Criar para adicionar o fluxo de usuário. Um prefixo B2C_1_ é anexado automaticamente ao nome.

Testar o fluxo de usuário

  1. Selecione o fluxo de usuário que você criou para abrir a página de visão geral.

  2. Na parte superior da página de visão geral do fluxo de usuário, selecione Executar o fluxo de usuário. Um painel é aberto ao lado direito da página.

  3. Para Aplicativo, selecione o aplicativo Web que você deseja testar, como aquele chamado webapp1. A URL de resposta deve mostrar https://jwt.ms.

  4. Selecione em Executar o fluxo do usuárioe, em seguida, selecione Inscreva-se agora.

    Run user flow page in portal with Run user flow button highlighted

  5. Insira um endereço de email válido, selecione em Enviar código de verificação, insira o código de verificação que você receber e, em seguida selecione Verificar código.

  6. Insira uma nova senha e confirme-a.

  7. Selecione seu país e região, insira o nome que você deseja que seja exibido, insira um código postal e, em seguida, selecione em Criar. O token é retornado para https://jwt.ms e deve ser exibido para você.

  8. Agora, você pode executar o fluxo do usuário novamente e poderá se conectar com a conta que você criou. O token retornado inclui as declarações que você selecionou de país/região, nome e código postal.

Observação

No momento, a experiência "Executar fluxo de usuário" não é compatível com o tipo de URL de resposta SPA que usa o fluxo de código de autorização. Para usar a experiência "Executar fluxo de usuário" com esses tipos de aplicativos, registre uma URL de resposta do tipo "Web" e habilite o fluxo implícito conforme descrito aqui.

Habilitar a redefinição de senha por autoatendimento

Para habilitar a redefinição de senha por autoatendimento para o fluxo de usuários de inscrição ou de entrada:

  1. Selecione o fluxo de inscrição ou de entrada de usuários criado.
  2. Em Configurações no menu esquerdo, selecione Propriedades.
  3. Em Configuração da senha, selecione Redefinição de senha self-service.
  4. Clique em Salvar.

Testar o fluxo de usuário

  1. Selecione o fluxo de usuário que você criou para abrir a página de visão geral e, em seguida, selecione Executar fluxo de usuário.
  2. Para Aplicativo, selecione o aplicativo Web que você deseja testar, como aquele chamado webapp1. A URL de resposta deve mostrar https://jwt.ms.
  3. Selecione Executar fluxo de usuário.
  4. Na página de inscrição ou de entrada, escolha Esqueceu sua senha? .
  5. Verifique o endereço de email da conta que você criou anteriormente e selecione Continuar.
  6. Agora, você pode alterar a senha para o usuário. Altere a senha e selecione Continuar. O token é retornado para https://jwt.ms e deve ser exibido para você.

Criar um fluxo de usuário de edição de perfil

Se quiser permitir que os usuários editem seu perfil no aplicativo, use um fluxo do usuário de edição de perfil.

  1. No menu da página de visão geral do locatário do Azure AD B2C, selecione Fluxos dos usuários e, em seguida, selecione Novo fluxo de usuário.
  2. Na página Criar um fluxo de usuário, selecione o fluxo do usuário Edição de perfil.
  3. Em Selecionar uma versão, selecione Recomendado e, em seguida, selecione Criar.
  4. Insira um Nome para o fluxo de usuário. Por exemplo, profileediting1.
  5. Para provedores de identidade, em contas locais, selecione Inscrição por email.
  6. Para Atributos do usuário, escolha os atributos que deseja que o cliente seja capaz de editar no perfil dele. Por exemplo, selecione Mostrar mais e, em seguida, escolha os atributos e as declarações para Nome de exibição e Cargo. Selecione OK.
  7. Selecione Criar para adicionar o fluxo de usuário. Um prefixo B2C_1_ é acrescentado automaticamente ao nome.

Testar o fluxo de usuário

  1. Selecione o fluxo de usuário que você criou para abrir a página de visão geral.
  2. Na parte superior da página de visão geral do fluxo de usuário, selecione Executar o fluxo de usuário. Um painel é aberto ao lado direito da página.
  3. Para Aplicativo, selecione o aplicativo Web que você deseja testar, como aquele chamado webapp1. A URL de resposta deve mostrar https://jwt.ms.
  4. Selecione Executar o fluxo do usuário e, em seguida, entre com a conta que criou anteriormente.
  5. Agora, você tem a oportunidade de alterar o nome de exibição e o cargo do usuário. Selecione Continuar. O token é retornado para https://jwt.ms e deve ser exibido para você.

Dica

Este artigo explica como configurar seu locatário manualmente. Você pode automatizar todo o processo explicado deste artigo. A automação implantará o pacote de início do SocialAndLocalAccountsWithMFA do Azure AD B2C, que fornecerá os percursos de Inscrição e Entrada, Redefinição de Senha e Edição do Perfil. Para automatizar as etapas abaixo, visite o Aplicativo de Instalação do IEF e siga as instruções.

Adicionar chaves de assinatura e criptografia para aplicativos do Identity Experience Framework

  1. Entre no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
  3. No portal do Azure, pesquise e selecione Azure AD B2C.
  4. Na página Visão Geral, em Políticas, selecione Identity Experience Framework.

Criar a chave de assinatura

  1. Selecione Chaves de Política e, em seguida, escolha Adicionar.
  2. Para Opções, escolha Generate.
  3. Em Nome, insira TokenSigningKeyContainer. O prefixo B2C_1A_ pode ser adicionado automaticamente.
  4. Para Tipo de chave, selecione RSA.
  5. Para Uso de chave, selecione Assinatura.
  6. Selecione Criar.

Criar a chave de criptografia

  1. Selecione Chaves de Política e, em seguida, escolha Adicionar.
  2. Para Opções, escolha Generate.
  3. Em Nome, insira TokenEncryptionKeyContainer. O prefixo B2C_1A_ pode ser adicionado automaticamente.
  4. Para Tipo de chave, selecione RSA.
  5. Para o Uso da chave, selecione Criptografia.
  6. Selecione Criar.

Registrar aplicativos do Identity Experience Framework

O Azure AD B2C exige o registro de dois aplicativos que são usados para a inscrição e entrada de usuários com contas locais: IdentityExperienceFramework, uma API Web, e ProxyIdentityExperienceFramework, um aplicativo nativo com permissão delegada para o aplicativo IdentityExperienceFramework. Os usuários podem se inscrever com um endereço de email ou um nome de usuário e uma senha para acessar os aplicativos registrados no locatário, o que cria uma "conta local". Esse tipo de conta existe apenas no locatário do Azure AD B2C.

Você precisa registrar apenas uma vez esses dois aplicativos em seu locatário do Azure AD B2C.

Registrar o aplicativo IdentityExperienceFramework

Para registrar um aplicativo no seu locatário do Azure AD B2C, você pode usar a experiência do Registros de aplicativo.

  1. Escolha Registros de aplicativo e Novo registro.
  2. Para Nome, insira IdentityExperienceFramework.
  3. Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
  4. Em URI de redirecionamento, selecione Web e digite https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, em que your-tenant-name é o nome de domínio do locatário do Azure AD B2C.
  5. Em Permissões, marque a caixa de seleção Dar consentimento do administrador às permissões OpenID e offline_access.
  6. Selecione Registrar.
  7. Registre a ID do aplicativo (cliente) para uso em uma etapa posterior.

Em seguida, exponha a API adicionando um escopo:

  1. No menu à esquerda, em Gerenciar, selecione Expor uma API.
  2. Selecione Adicionar um escopo e Salvar e continuar para aceitar o URI da ID do aplicativo padrão.
  3. Insira os valores a seguir para criar um escopo que permita a execução da política personalizada em seu locatário Azure AD B2C:
    • Nome do escopo: user_impersonation
    • Nome de exibição de consentimento do administrador: Access IdentityExperienceFramework
    • Descrição do consentimento do administrador:Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. Selecione Adicionar escopo

Registrar o aplicativo ProxyIdentityExperienceFramework

  1. Escolha Registros de aplicativo e Novo registro.
  2. Para Nome, insira ProxyIdentityExperienceFramework.
  3. Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
  4. Em URI de redirecionamento, use a lista suspensa para selecionar Cliente público/nativo (móvel & área de trabalho).
  5. No URI de redirecionamento, insira myapp://auth.
  6. Em Permissões, marque a caixa de seleção Dar consentimento do administrador às permissões OpenID e offline_access.
  7. Selecione Registrar.
  8. Registre a ID do aplicativo (cliente) para uso em uma etapa posterior.

Em seguida, especifique que o aplicativo deve ser tratado como um cliente público:

  1. No menu à esquerda, em Gerenciar, selecione Autenticação.
  2. Em Configurações avançadas, na seção Permitir fluxos de cliente público, defina Habilitar os fluxos móveis e de desktop a seguir como Sim.
  3. Selecione Salvar.
  4. Verifique se "allowPublicClient": true está definido no manifesto do aplicativo:
    1. No menu à esquerda, em Gerenciar, selecione Manifesto para abrir o manifesto do aplicativo.
    2. Encontre a chave allowPublicClient e verifique se o valor dela está definido como true.

Agora conceda permissões ao escopo da API que você expôs anteriormente no registro de IdentityExperienceFramework:

  1. No menu à esquerda, em Gerenciar, selecione Permissões da API.
  2. Em Permissões Configuradas, selecione Adicionar uma permissão.
  3. Selecione a guia Minhas APIs e o aplicativo IdentityExperienceFramework.
  4. Em Permissão, selecione o escopo user_impersonation que você definiu anteriormente.
  5. Selecione Adicionar Permissões. Conforme as instruções, aguarde alguns minutos antes de seguir para a próxima etapa.
  6. Selecione Fornecer consentimento do administrador para <nome do seu locatário>.
  7. Selecione Sim na barra superior.
  8. Selecione Atualizar e verifique se "Concedido para..." aparece em Status para o escopo.

Pacote de início de política personalizada

As políticas personalizadas são um conjunto de arquivos XML que você carrega em seu locatário do Azure AD B2C para definir perfis técnicos e percursos do usuário. Fornecemos pacotes de início com várias políticas predefinidas para ajudá-lo a começar rapidamente. Cada um desses pacotes de início contém o menor número de perfis de técnicos e percurso do usuário necessários 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 de contas sociais.
  • SocialAndLocalAccountsWithMFA – permite opções de autenticação locais, sociais e multifator.

Cada pacote de início contém:

  • Arquivo base – são necessárias poucas modificações na base. Exemplo: TrustFrameworkBase.xml
  • Arquivo de localização – é nesse arquivo que são feitas as alterações de localização. Exemplo: TrustFrameworkLocalization.xml
  • Arquivo de extensão – é nesse arquivo que se faz a maioria das alterações de configuração. Exemplo: TrustFrameworkExtensions.xml
  • Arquivos de terceira parte confiável – são os arquivos específicos de tarefa chamados pelo aplicativo. Exemplos: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml

Neste artigo, você editará os arquivos XML de políticas personalizadas no pacote de início de SocialAndLocalAccounts. Se precisar de um editor de XML, experimente o Visual Studio Code, um editor leve de multiplataforma.

Obter o pacote de início

Obtenha os pacotes de início de políticas personalizadas no GitHub. Em seguida, atualize os arquivos XML no pacote de início de SocialAndLocalAccounts com nome de seu locatário do Azure AD B2C.

  1. Baixar os arquivos .zip ou clonar o repositório:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Em todos os arquivos do diretório SocialAndLocalAccounts, 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 contosotenant, todas as instâncias de yourtenant.onmicrosoft.com se tornarão contosotenant.onmicrosoft.com.

Adicionar IDs de aplicativo à política personalizada

Adicione as IDs de aplicativo ao arquivo de extensões TrustFrameworkExtensions.xml.

  1. Abra SocialAndLocalAccounts/TrustFrameworkExtensions.xml e encontre o elemento <TechnicalProfile Id="login-NonInteractive">.
  2. Substitua ambas as instâncias de IdentityExperienceFrameworkAppId pela ID do aplicativo IdentityExperienceFramework criado anteriormente.
  3. Substitua ambas as instâncias de ProxyIdentityExperienceFrameworkAppId pela ID do aplicativo ProxyIdentityExperienceFramework criado anteriormente.
  4. Salve o arquivo.

Adicionar o Facebook como um provedor de identidade

O pacote de início SocialAndLocalAccounts inclui a entrada social do Facebook. O Facebook não é necessário para usar políticas personalizadas, mas o usaremos aqui para demonstrar como você pode habilitar o logon social federado em uma política personalizada. Se não for necessário habilitar o login social federado, use o pacote inicial do LocalAccounts e ignore a seção Adicionar o Facebook como provedor de identidade.

Criar aplicativo do Facebook

Use as etapas descritas em Criar um aplicativo do Facebook para obter a ID do Aplicativo e o Segredo do Aplicativo do Facebook. Ignore os pré-requisitos e o restante das etapas descritas no artigo Configurar a inscrição e a entrada com uma conta do Facebook.

Criar a chave do Facebook

Adicione o Segredo do Aplicativo do Facebook como uma chave de política. Você pode usar o Segredo do Aplicativo desse aplicativo criado como parte dos pré-requisitos deste artigo.

  1. Entre no portal do Azure.
  2. Se você tiver acesso a vários locatários, selecione o ícone Configurações no menu superior para alternar para o seu locatário do Azure Active Directory B2C no menu Diretórios + assinaturas.
  3. No portal do Azure, pesquise e selecione Azure AD B2C.
  4. Na página Visão Geral, em Políticas, selecione Identity Experience Framework.
  5. Selecione Chaves de Política e, em seguida, escolha Adicionar.
  6. Para Opções, escolha Manual.
  7. Para Nome, insira FacebookSecret. O prefixo B2C_1A_ pode ser adicionado automaticamente.
  8. Em Segredo, digite o Segredo do Aplicativo do Facebook de developers.facebook.com. Esse valor é o segredo, não a ID do aplicativo.
  9. Para Uso de chave, selecione Assinatura.
  10. Selecione Criar.

Atualizar TrustFrameworkExtensions.xml no pacote de início da política personalizada

No arquivo SocialAndLocalAccounts/TrustFrameworkExtensions.xml , substitua o valor de client_id pela ID do aplicativo do Facebook e salve as alterações.

<TechnicalProfile Id="Facebook-OAUTH">
  <Metadata>
  <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
    <Item Key="client_id">00000000000000</Item>

Fazer upload das políticas

  1. Selecione o item de menu Identity Experience Framework em seu locatário B2C no portal do Azure.
  2. Selecione Carregar política personalizada.
  3. Nesta ordem, carregue os arquivos de política:
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

À medida que você carrega os arquivos, o Azure adiciona o prefixo B2C_1A_ a cada um.

Dica

Caso seu editor de XML dê suporte à validação, valide os arquivos em relação ao esquema XML TrustFrameworkPolicy_0.3.0.0.xsd, localizado no diretório raiz do pacote de início. A validação de esquema XML identifica erros antes do upload.

Teste a política personalizada

  1. Na página Políticas personalizadas, selecione B2C_1A_signup_signin.
  2. Para Selecionar aplicativo na página de visão geral da política personalizada, selecione o aplicativo Web que você deseja testar, como aquele chamado webapp1.
  3. Verifique se a URL de resposta é https://jwt.ms.
  4. Selecione Executar Agora.
  5. Crie uma conta usando um endereço de email.
  6. Selecione novamente Executar agora.
  7. Entre com a mesma conta para confirmar que você tem a configuração correta.
  8. Selecione Executar agora novamente e o Facebook para entrar no Facebook e testar a política personalizada.

Próximas etapas

Neste artigo, você aprendeu a:

  • Criar um fluxo de usuário de inscrição e de entrada
  • Criar um fluxo de usuário de edição de perfil
  • Criar um fluxo de usuário de redefinição de senha

Em seguida, saiba como usar o Azure AD B2C para conectar e inscrever usuários em um aplicativo. Siga os aplicativos de exemplo vinculados abaixo:

Saiba mais também na série de aprofundamento da arquitetura do Azure AD B2C.