Tutorial: Criar fluxos de usuário e políticas personalizadas no Azure Ative Directory B2C

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

Em seus aplicativos, você pode ter fluxos de usuários que permitem que os usuários se inscrevam, entrem ou gerenciem seus perfis. Você pode criar vários fluxos de usuário de diferentes tipos em seu locatário do Azure Ative Directory B2C (Azure AD B2C) e usá-los em seus aplicativos conforme necessário. Os fluxos de usuários podem ser reutilizados entre aplicativos.

Um fluxo de usuário permite determinar como os usuários interagem com seu aplicativo quando fazem coisas como entrar, se inscrever, editar um perfil ou redefinir uma senha. Neste artigo, vai aprender a:

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

  • Criar um fluxo de usuário de inscrição e entrada
  • Ativar a reposição de palavras-passe self-service
  • Criar um fluxo de usuário de edição de perfil

Importante

Mudámos a forma como fazemos referência às versões de fluxos de utilizador. Anteriormente, disponibilizávamos versões V1 (prontas para produção) e versões V1.1 e V2 (pré-visualização). Agora, consolidamos os fluxos de usuários em duas versões: fluxos de usuários recomendados com os recursos mais recentes e fluxos de usuários padrão (legado). Todos os fluxos de usuários de visualização herdados (V1.1 e V2) foram preteridos. Para obter detalhes, consulte Versões de fluxo de usuário no Azure AD B2C. Estas alterações aplicam-se apenas à 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 entrada

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

  1. Inicie sessão 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 seu locatário do Azure AD B2C no menu Diretórios + assinaturas .

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

  4. Em Políticas, selecione Fluxos de usuário 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 de usuário Inscrever-se e entrar.

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

  6. Em Selecione 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 e-mail.

  9. Para Atributos de usuário e declarações de token, escolha as declarações e atributos que você deseja coletar e enviar do usuário durante a inscrição. Por exemplo, selecione Mostrar mais e, em seguida, escolha atributos e declarações para País/Região, Nome para 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 de B2C_1_ é automaticamente anexado ao nome.

Testar o fluxo do usuário

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

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

  3. Em Aplicativo, selecione o aplicativo Web que deseja testar, como o chamado webapp1. O URL de resposta deve mostrar https://jwt.ms.

  4. Selecione Executar fluxo de usuário e, em seguida, selecione Inscrever-se agora.

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

  5. Introduza um endereço de e-mail válido, selecione Enviar código de verificação, introduza o código de verificação que recebe e, em seguida, selecione Verificar código.

  6. Introduza uma nova palavra-passe e confirme-a.

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

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

Nota

A experiência "Executar fluxo de usuário" não é atualmente compatível com o tipo de URL de resposta do SPA usando 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.

Ativar a reposição de palavras-passe self-service

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

  1. Selecione o fluxo de usuário de inscrição ou entrada que você criou.
  2. Em Configurações no menu à esquerda, selecione Propriedades.
  3. Em Configuração de senha, selecione Redefinição de senha de autoatendimento.
  4. Selecione Guardar.

Testar o fluxo do usuário

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

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

Se você quiser permitir que os usuários editem seus perfis em seu aplicativo, use um fluxo de 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 de usuário e, em seguida, selecione Novo fluxo de usuário.
  2. Na página Criar um fluxo de usuário, selecione o fluxo de usuário de edição de perfil.
  3. Em Selecione uma versão, selecione Recomendado e, em seguida, selecione Criar.
  4. Insira um Nome para o fluxo de usuário. Por exemplo, edição de perfil1.
  5. Para Provedores de identidade, em Contas locais, selecione Inscrição por email.
  6. Em Atributos de usuário, escolha os atributos que você deseja que o cliente possa editar em seu perfil. Por exemplo, selecione Mostrar mais e escolha atributos e declarações para Nome para exibição e Cargo. Selecione OK.
  7. Selecione Criar para adicionar o fluxo de usuário. Um prefixo de B2C_1_ é automaticamente anexado ao nome.

Testar o fluxo do usuário

  1. Selecione o fluxo de usuário que você criou para abrir sua página de visão geral.
  2. Na parte superior da página de visão geral do fluxo do usuário, selecione Executar fluxo do usuário. Um painel é aberto no lado direito da página.
  3. Em Aplicativo, selecione o aplicativo Web que deseja testar, como o chamado webapp1. O URL de resposta deve mostrar https://jwt.ms.
  4. Selecione Executar fluxo de usuário e entre com a conta que você 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 é devolvido e https://jwt.ms deve ser exibido para você.

Gorjeta

Este artigo explica como configurar seu locatário manualmente. Você pode automatizar todo o processo a partir deste artigo. A automatização implantará o pacote inicial do Azure AD B2C SocialAndLocalAccountsWithMFA, que fornecerá jornadas de Inscrição e Entrada, Redefinição de Senha e Edição de Perfil. Para automatizar o passo a passo abaixo, visite o aplicativo de configuração do IEF e siga as instruções.

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

  1. Inicie sessão 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 seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. No portal do Azure, procure e selecione Azure AD B2C.
  4. Na página de visão geral, em Políticas, selecione Identity Experience Framework.

Criar a chave de assinatura

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

Criar a chave de encriptação

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

Registrar aplicativos do Identity Experience Framework

O Azure AD B2C exige que você registre dois aplicativos que ele usa para se inscrever e entrar em usuários com contas locais: IdentityExperienceFramework, uma API da Web, e ProxyIdentityExperienceFramework, um aplicativo nativo com permissão delegada para o aplicativo IdentityExperienceFramework. Seus usuários podem se inscrever com um endereço de e-mail ou nome de usuário e uma senha para acessar seus aplicativos registrados pelo locatário, o que cria uma "conta local". As contas locais existem apenas no seu locatário do Azure AD B2C.

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

Registrar o aplicativo IdentityExperienceFramework

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

  1. Selecione Registos de aplicações e, em seguida, selecione Novo registo.
  2. Em Nome, digite IdentityExperienceFramework.
  3. Em Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
  4. Em Redirecionar URI, selecione Web e digite https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, onde 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 Conceder consentimento de administrador para permissões openid e offline_access .
  6. Selecione Registar.
  7. Registre o 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, em seguida, selecione Salvar e continue a aceitar o URI de ID do aplicativo padrão.
  3. Insira os seguintes valores para criar um escopo que permita a execução de política personalizada em seu locatário do Azure AD B2C:
    • Nome do escopo: user_impersonation
    • Nome de exibição do 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. Selecione Registos de aplicações e, em seguida, selecione Novo registo.
  2. Em Nome, digite ProxyIdentityExperienceFramework.
  3. Em Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
  4. Em Redirecionar URI, use a lista suspensa para selecionar Cliente público/nativo (área de trabalho móvel&).
  5. Para Redirecionar URI, digite myapp://auth.
  6. Em Permissões, marque a caixa de seleção Conceder consentimento de administrador para permissões openid e offline_access .
  7. Selecione Registar.
  8. Registre o 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 clientes públicos, defina Habilitar os seguintes fluxos móveis e de desktop como Sim.
  3. Selecione Guardar.
  4. Certifique-se de que "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 seu valor está definido como true.

Agora, conceda permissões para o escopo da API que você expôs anteriormente no registro do IdentityExperienceFramework :

  1. No menu à esquerda, em Gerenciar, selecione Permissões de API.
  2. Em Permissões configuradas, selecione Adicionar uma permissão.
  3. Selecione a guia Minhas APIs e, em seguida, selecione o aplicativo IdentityExperienceFramework .
  4. Em Permissão, selecione o user_impersonation escopo que você definiu anteriormente.
  5. Selecione Adicionar permissões. Conforme indicado, aguarde alguns minutos antes de prosseguir para a próxima etapa.
  6. Selecione Conceder consentimento de administrador para <o nome do seu inquilino).>
  7. Selecione Yes (Sim).
  8. Selecione Atualizar e verifique se "Concedido para..." aparece em Status para o escopo.

Pacote inicial de políticas personalizadas

As políticas personalizadas são um conjunto de arquivos XML que você carrega no locatário do Azure AD B2C para definir perfis técnicos e jornadas do usuário. Fornecemos pacotes iniciais com várias políticas pré-criadas para que você comece 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.
  • SocialAndLocalAccountsWithMFA - Permite opções de autenticação social, local e multifator.

Cada embalagem inicial contém:

  • Arquivo base - Poucas modificações são necessárias na base. Exemplo: TrustFrameworkBase.xml
  • Arquivo de localização - Este arquivo é onde as alterações de localização são feitas. Exemplo: TrustFrameworkLocalization.xml
  • Arquivo de extensão - Este arquivo é onde a maioria das alterações de configuração são feitas. Exemplo: TrustFrameworkExtensions.xml
  • Arquivos de terceira parte confiável - Arquivos específicos de tarefas chamados pelo seu aplicativo. Exemplos: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml

Neste artigo, você edita os arquivos de política personalizada XML no pacote inicial SocialAndLocalAccounts . Se você precisar de um editor XML, tente o Visual Studio Code, um editor leve de plataforma cruzada.

Obtenha o pacote inicial

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

  1. Faça o download do arquivo .zip ou clone o repositório:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Em todos os arquivos no diretório SocialAndLocalAccounts , substitua a cadeia de caracteres yourtenant pelo nome do 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 tornar-se-ão contosotenant.onmicrosoft.com.

Adicionar IDs de aplicativo à política personalizada

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

  1. Abra SocialAndLocalAccounts/TrustFrameworkExtensions.xml e localize o elemento <TechnicalProfile Id="login-NonInteractive">.
  2. Substitua ambas as instâncias de IdentityExperienceFrameworkAppId pela ID do aplicativo IdentityExperienceFramework que você criou anteriormente.
  3. Substitua ambas as instâncias de ProxyIdentityExperienceFrameworkAppId com a ID do aplicativo ProxyIdentityExperienceFramework que você criou anteriormente.
  4. Guarde o ficheiro.

Adicionar o Facebook como um provedor de identidade

O pacote inicial SocialAndLocalAccounts inclui o login social do Facebook. O Facebook não é obrigatório para usar políticas personalizadas, mas nós o usamos aqui para demonstrar como você pode habilitar o login social federado em uma política personalizada. Se você não precisar habilitar o login social federado, use o pacote inicial LocalAccounts e ignore a seção Adicionar Facebook como um provedor de identidade.

Criar aplicação Facebook

Use as etapas descritas em Criar um aplicativo do Facebook para obter o ID do aplicativo do Facebook e o Segredo do aplicativo. Ignore os pré-requisitos e o resto dos passos no artigo Configurar inscrição e iniciar sessão com uma conta do Facebook.

Crie a chave do Facebook

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

  1. Inicie sessão 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 seu locatário do Azure AD B2C no menu Diretórios + assinaturas .
  3. No portal do Azure, procure e selecione Azure AD B2C.
  4. Na página de visão geral, em Políticas, selecione Identity Experience Framework.
  5. Selecione Chaves de política e, em seguida, selecione Adicionar.
  6. Em Opções, escolha Manual.
  7. Em Nome, digite FacebookSecret. O prefixo B2C_1A_ pode ser adicionado automaticamente.
  8. Em Segredo, insira o Segredo do aplicativo do Facebook do developers.facebook.com. Esse valor é o segredo, não o ID do aplicativo.
  9. Para Uso da chave, selecione Assinatura.
  10. Selecione Criar.

Atualizar TrustFrameworkExtensions.xml no pacote inicial de políticas personalizadas

SocialAndLocalAccounts/TrustFrameworkExtensions.xml No arquivo, substitua o valor de pelo ID do aplicativo do client_id 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>

Carregue as 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.

Gorjeta

Se o editor de XML oferecer suporte à validação, valide os arquivos em relação ao TrustFrameworkPolicy_0.3.0.0.xsd esquema XML localizado no diretório raiz do pacote inicial. A validação do esquema XML identifica erros antes do upload.

Testar a política personalizada

  1. Em Políticas personalizadas, selecione B2C_1A_signup_signin.
  2. Para Select application na página de visão geral da política personalizada, selecione o aplicativo Web que você deseja testar, como o chamado webapp1.
  3. Certifique-se de que o URL de resposta é https://jwt.ms.
  4. Selecione Executar agora.
  5. Inscreva-se usando um endereço de e-mail.
  6. Selecione Executar agora novamente.
  7. Inicie sessão com a mesma conta para confirmar que tem a configuração correta.
  8. Selecione Executar agora novamente e selecione Facebook para iniciar sessão com o Facebook e testar a política personalizada.

Próximos passos

Neste artigo, você aprendeu como:

  • Criar um fluxo de usuário de inscrição e login
  • 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 entrar e inscrever usuários em um aplicativo. Siga os aplicativos de exemplo vinculados abaixo:

Você também pode saber mais na Série Deep Dive da Arquitetura B2C do Azure AD.