Skip to main content

Azure AD B2C

O que é o Azure AD B2C?

O Azure Active Directory B2C (Azure AD B2C) é um serviço de Identity as a Service (IDaaS) da Microsoft que permite que aplicações usem autenticação segura para usuários finais (clientes), oferecendo registro, login, redefinição de senha e autenticação multifator.
Ao utilizar o Azure AD B2C toda a gestão de acesso do usuário fica delegada à Microsoft, não sendo necessário implementar essas funcionalidades em cada aplicação.

Com o Azure AD B2C, você pode:

  • Usar contas sociais (Google, Facebook, LinkedIn, etc.).
  • Permitir login com contas locais (e-mail/senha).
  • Controlar políticas de identidade (fluxos de usuário).
  • Customizar a experiência de login com a identidade visual da sua aplicação.

Principais Conceitos

Antes de começar a usar o Azure AD B2C, é importante conhecer alguns termos:

  • Tenant B2C: Instância dedicada do Azure AD configurada para uso com B2C.
  • Identity Providers (IdPs): Fontes de autenticação, como contas sociais (Google, Facebook, Microsoft) ou contas locais (usuário/senha).
  • User Flows: Fluxos pré-configurados que definem como os usuários interagem com o sistema (ex.: login, registro, redefinição de senha).
  • Custom Policies: Políticas avançadas e totalmente configuráveis para cenários específicos, além dos fluxos padrão.
  • Aplicações (Applications): Representações das aplicações que vão consumir autenticação/autorização via Azure B2C.
  • Tokens (ID Token, Access Token, Refresh Token): Credenciais emitidas após autenticação para identificar e autorizar o usuário.

Primeiros Passos

  1. Criar um Tenant B2C

    • Caso o Azure AD B2C faça parte da arquitetura do sistema, a criação do Tenant deve ser solicitada ao time de cloud.
  2. Registrar uma Aplicação

    • No tenant B2C, registre a aplicação que irá consumir autenticação.
    • Importante configurar corretamente os Redirect URIs (URLs de retorno após login). Essas são as URLs dos sistemas que utilizarão essa aplicação para autenticar usuários.
  3. Definir Identity Providers

    • Configure os provedores que deseja usar: Na grande maioria das aplicações utilizamos apenas contas locais, mas você pode utilizar mais de um provedor de identidade no seu tenant, como o EntraID do GAB, que contém os usuários com conta de rede .
  4. Criar e Configurar User Flows

    • Escolha fluxos padrão: Sign-up/Sign-in, Password Reset, Profile Edit.
    • É possível informar um html personalizado para as páginas de login, troca de senha e demais fluxos. Essa configuração deve ser feita no menu Azure AD B2C > User Flows (Fluxos dos usuários) > Fluxo que deseja configurar > Layouts de página. O arquivo html deve ser hospedado em uma URL pública e seguir um formato específico que pode ser consultado nesse link.
  5. Integrar com sua Aplicação

    • Utilize bibliotecas de autenticação compatíveis (MSAL.js, MSAL.NET, etc.). Essas bibliotecas abstraem todas as chamadas ao Azure B2C e facilitam a configuração da autenticação e obtenção/validação do token do usuário.
    • Para efetuar o login o usuário será redirecionado para o Azure B2C, onde irá se identificar. Uma vez autenticado, o usuário será direcionado de volta para a aplicação.

Fluxos de Usuário (User Flows)

Os User Flows definem como os usuários interagem com o sistema em diferentes cenários. Os principais são:

  • Sign-up / Sign-in (Registro/Login)

    • Permite que o usuário crie uma conta (registro) ou faça login em uma existente.
    • Pode suportar contas locais e sociais no mesmo fluxo.
  • Password Reset (Redefinição de Senha)

    • Usado quando o usuário esquece a senha.
    • Envia um e-mail de verificação e permite a redefinição de credenciais.
  • Profile Editing (Edição de Perfil)

    • Permite que os usuários atualizem informações pessoais, como nome ou telefone.
  • Custom Policies

    • Cenários avançados onde o fluxo precisa ser adaptado.
    • Exemplo: exigir consentimento de uso de dados, múltiplos fatores adicionais ou integrações externas.

Como adicionar um campo customizado no token do usuário

Em muitos cenários é necessário incluir atributos personalizados no token JWT emitido pelo Azure AD B2C, por exemplo: cargo do usuário, preferência de idioma ou um identificador interno do sistema.

Passos para incluir um campo customizado

  1. Criar um atributo customizado

    • No portal do Azure, dentro do tenant B2C, vá em User attributes (Atributos de usuário).
    • Crie um novo atributo, por exemplo cargo.
  2. Associar o atributo a um User Flow

    • Vá até o fluxo de usuário (ex.: Sign-up/Sign-in).
    • Em Application claims (Declarações do aplicativo), selecione o atributo customizado criado (cargo).
    • Defina se ele será solicitado no registro e se aparecerá no token.
  3. Receber o atributo no token

    • Após autenticação usando o fluxo editado anteriormente, o token JWT incluirá o claim:
      {
      "name": "Teste teste",
      "emails": ["teste@email.com"],
      "cargo": "testador",
      "exp": 1694849982,
      "iss": "https://b2caguiabranca.b2clogin.com/b2caguiabranca.onmicrosoft.com/v2.0/"
      }
  4. Consumir o claim na aplicação

    • Na sua aplicação, valide o token (via MSAL, middleware de autenticação, etc.).
    • Use uma biblioteca para ler e interpretar o token como json.
    • Utilize o campo customizado (cargo) conforme sua lógica de negócio.