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
-
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.
-
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.
-
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 .
-
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.
-
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
-
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.
-
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.
-
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/"
}
- Após autenticação usando o fluxo editado anteriormente, o token JWT incluirá o claim:
-
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.