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.json1{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:

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.