Configurações básicas para o trabalho com o Azure AD B2C

Resumo do post

Olá, bem-vindo ao meu primeiro post :), neste post vou descrever como está configurado o meu ambiente para o trabalho com o Azure AD B2C. Grande parte dessa configuração é necessária por conta do uso das custom policy; caso não seja o seu caso, pode pular este post.

Configuração do editor

Para a edição das políticas, eu utilizarei o VS Code. Recomendo fortemente que você também o utilize, pois existe uma extensão da própria Microsoft que te auxiliará bastante ao longo do processo e é o ponto pelo qual estou escrevendo este post, então vamos direto ao ponto.

Azure AD B2C Tools

A extensão Azure AD B2C é uma ferramenta para auxiliar no gerenciamento e na configuração de custom policy. Ela oferece uma interface que te ajuda na edição dos arquivos XML, sendo algumas de suas funcionalidades:

  • Autocomplete: Sugestões de código para facilitar a escrita e configuração de políticas personalizadas, seja na configuração de claims, technical profiles, claims transformations, e também com opções de autocomplete baseadas em suas edições.
  • Ir para definição: Facilita a navegação entre componentes (clicando com o botão direito e indo para definição ou segurando "Control" e clicando).
  • Validação: Verificação de erros em tempo real e validação de arquivos XML contra o esquema do Azure AD B2C (mas não se empolgue, essa validação é mais superficial e não vai detectar erros fúteis na lógica ou até mesmo nomes de claims errados).
  • Compilação e upload da sua custom policy direto do VS Code: A extensão compila e retorna todas as suas políticas prontas para o upload. Esse passo é necessário, pois é um complemento do próximo ponto que abordarei. Também é possível o upload direto do VS Code através destes passos, mas particularmente não utilizo; acho mais fácil controlar fazendo manualmente pelo portal.
  • Gerenciamento de credenciais: Esse aqui é o "gato" do rolê. No decorrer do seu desenvolvimento, é natural que você tenha dois ambientes, um de teste (famoso HMA) e o de produção. Essa funcionalidade vai permitir que, em vez de você hardcodar algum trecho, utilize variáveis de ambiente; posteriormente, ao compilar suas custom policy, ele gerará os dois ambientes prontos para o upload.

Para o funcionamento da extensão, você vai precisar do arquivo appsettings.json. Você pode criá-lo manualmente ou fazer com que a extensão o crie para você. Para que a extensão o crie para você, faça o seguinte:

  • Abra o projeto com as suas custom policy, segure as teclas CTRL + SHIFT + P (ou clique na paleta de comandos e insira o ">") e procure por B2C Build all policies.
  • Ao clicar na opção, a extensão já identificará que você não possui o arquivo e perguntará se deseja criar. Basta clicar em "Sim".

Visão geral do arquivo:

appsettings.json
1
{
2
"PoliciesFolder": "Folder of your policies",
3
"EnvironmentsFolder": "Environments", // Folder where after the build the policies will be pasted.
4
"Environments": [
5
{
6
"Name": "Development",
7
"Production": false,
8
"Tenant": "Your tenant description (this information you will find in the Resource Group)",
9
"PolicySettings": {
10
"TenantId": "Your dev environment tenant Id (this information you will find in the Resource Group)",
11
"IdentityExperienceFrameworkAppId": "Your dev environment AD app Id",
12
"ProxyIdentityExperienceFrameworkAppId": "Your dev environment AD Proxy app Id",
13
"DeploymentMode": "Development",
14
"MyApiUrl": "Your dev environment API URL",
15
"StorageUrl": "Your dev environment storage URL",
16
"AnyOtherSetting": "Any other setting",
17
"ExampleSetting": "Example setting"
18
}
19
},
20
{
21
"Name": "Production",
22
"Production": true,
23
"Tenant": "Your tenant description (this information you will find in the Resource Group)",
24
"PolicySettings": {
25
"TenantId": "Your production environment tenant Id (this information you will find in the Resource Group)",
26
"IdentityExperienceFrameworkAppId": "Your production environment AD app Id",
27
"ProxyIdentityExperienceFrameworkAppId": "Your production environment AD Proxy app Id",
28
"DeploymentMode": "Production",
29
"MyApiUrl": "Your production environment API URL",
30
"StorageUrl": "Your production environment storage URL",
31
"AnyOtherSetting": "Any other setting",
32
"ExampleSetting": "Example setting"
33
}
34
}
35
]
36
}

Agora que todas as suas variáveis de ambiente estão devidamente configuradas, você precisa entrar em cada uma de suas políticas e alterar os códigos "hard coded" para as suas variáveis. Abaixo vou exemplificar tais alterações: Exemplo da utilização da extensão

Para começar este blog, criei um repositório do B2C em branco e estou preenchendo à medida que vou criando os posts. As alterações para utilização da extensão estão no commit e048d49.