Skip to content

Passo a passo para implementação básica de utilização do Azure AD B2C com User Flows SignUp, SignIn e PasswordReset.

Notifications You must be signed in to change notification settings

RLGHISLENI/Azure-AD-B2C

Repository files navigation

Azure-AD-B2C

Passo a passo para implementação básica de utilização do Azure AD B2C com User Flows SignUp, SignIn e PasswordReset.

image.png

Assista a nossa Live do < Papo de Dev /> no Youtube

Faça o download da apresentação PowerPoint

Escopo

  • Criação de Tenant;
  • Criação e configuração de aplicação no portal;
  • Criação e configuração de User Flow: Sign Up / Sign In / Reset Password;
  • Testes no portal: Sign Up / Sign In / Reset Password;
  • Instrumentação em aplicação .NET Core;

O que você precisa para executar o Projeto

Criação do Tenant

Após realizar o login em sua conta no Microsoft Azure, adicione um novo recurso clicando no ícone demonstrado na imagem abaixo:

image.png

Digite "b2c" na caixa de pesquisa e localize o recurso "Azure Active Directory B2C".

image.png

Clique em "Create" para realizar a criação do recurso.

image.png

Escolha a opção "Create a new Azure AD B2C Tenant".

image.png

Selecione o tipo de Tenant conforme demonstrado abaixo:

image.png

Nesta mesma página, selecione a guia "Configuration" e vamos adicionar as informações do nosso diretório.

  • Defina o nome da Organização;
  • Defina o nome do Domínio;
  • Crie um novo grupo de recursos (Agrupamento lógico de recursos);

Clique em "Review + Create".

image.png

Atenção: Para criação deste recurso é preciso possuir uma Subscription vinculada a sua conta do Azure mesmo que o recurso seja gratuíto.

Conclua a criação clicando em "Create".

image.png

Aguarde a criação do "Resource Group" e do "Tenant.

image.png

Assim que a criação dos recursos forem concluídos, você pode clicar no link disponível na página e será redirecionado para o Tenant do Azure AD B2C.

image.png

Configuração da aplicação no portal

Na caixa de pesquisa localizada no topo da página escreva "b2c", localize o recurso chamdo "Azure AD B2C" e clique nele e você será direcionado para página principal deste recurso.

image.png

Localize no menu lateral a opção "App Registrations" e clique nela.

image.png

Dentro de App Registrations, registre um novo app clicando em "New registration".

image.png

Adicione o Name, o Account Type e a Redirect URI que é para onde o B2C deverá redirecionar o usuário após realização do Sign In.

Clique em Register para concluir.

image.png

Na página do seu app criado, encontre no menu lateral a opção "Authentication" e clique nela.

image.png

Adicione agora uma nova URI apontando para a aplicação desejada. Neste exemplo, adicionamos um redirecionamento para aplicação que irá rodar no localhost da máquina (nossa aplicação .NET Core).

https://localhost:5001/signin-oidc

Você poderá adicionar aqui o endereço de sua aplicação mas deve lembrar que esta URI sempre deverá terminar com "/signin-oidc".

Marque as duas caixas de seleção:

  • Access tokens (used for implicit flows)
  • ID tokens (used for implicit and hybrid flows)

Na parte inferior da página, ative a opção "Allow public client flows".

Conclua a operação clicando em "Save".

image.png

image.png

Criação e configuração de User Flow

Voltando para página principal do Azure AD B2C, localize no menu lateral a opção "User Flows" e clique em "New user flow" para adicionarmos a jornada de usuário do nosso Sign Up & Sign In.

image.png

Escolha o tipo de user flow "Sign Up and Sign In" e utilizando a versão recomendada clique em "Create".

image.png

Defina o nome do nosso user flow e guarde esta informação, pois iremos utiliza-la mais adiante.

Marque as opções demonstradas nas imagens a seguir:

image.png

Escolha a coleção de atributos e claims de retorno.

Clique em "Create" para concluir.

image.png

Agora vamos adicionar na jornada de usuário o user flow de "Reset Password" do mesmo modo que acabamos de fazer, veja a imagem abaixo:

image.png

Defina o nome desta user flow e guarde-o para utilizarmos mais adiante.

image.png

Marque as claims que a user deverá retornar e clique no botão "Create" para concluir.

image.png

Na página de "User Flows", clique no fluxo de Sign Up & Sign In.

image.png

Localize e clique na a opção "Properties".

image.png

Na seção "Password configuration" marque a opção "Self-service password reset" para permitir que o link de "Forgot your password" do fluxo de Sign Up & Sign In aponte para nossa user flow de "Reset Password" recem criada.

Clique em "Save" no topo da página para concluir a operação.

image.png

Voltando a página da nossa user flow de Sign Up & Sign In, vamos alterar a configuração de idioma para utilizar Português Brasil.

Na seção "Customize", localize a opção "Languages" e clique nela.

image.png

Clique na opção "Enable language customization" localizada no topo da página.

image.png

Selecione o idioma "português (Brasil) pt-BR". Abrirá uma janela no lado direito para habilitar a utilização deste idioma.

Marque a opção "Enabled" e clique em "Save" para aplicar.

image.png

Testes no portal

Agora estamos prontos para testar nossa jornada de usuário completa via portal do Azure.

Na página da nossa user flow de Sign Up & Sign In, localise o botão "Run user flow" e clique nele.

image.png

Abrirá uma janela no lado direito com as opções de execução da nossa user flow.

Selecione "https://jwt.ms" na opção de "Reply URL" para podermos ver o token gerado após a conclusão do Sign Up & Sign In.

Clique em "Run user flow" para executar.

image.png

Será apresentada a jornada de usuário de Sign Up & Sign In com Reset Password funcionando.

Bora testar...

image.png

Agora que nossas configurações e apontontamentos do Azure AD B2C estão protas, vamos criar uma "Secret" para podermos plugar nossa jornada de usuário ao nosso projeto .NET Core.

Volte a página de "App registrations" e acesse seu app criado.

image.png

Localize no menu a opção "Certificaes & secrets" em seguida clique em "New client secret".

image.png

Será aberta uma janela do lado direito para configuração da "Secret".

Adicione a "Description" e "Expires" para a secret.

Clique no botão "Save" para concluir.

image.png

IMPORTANTE: Após a criação da "Secret", copie o atributo "Value" dela e guarde em local seguro. Esta informação não poderá mais ser resgatada e em caso de perda, nova secret deverá ser criada.

Veja abaixo a secret recem criada com o valor exposto e uma já existente que não permite mais a visualização da informação.

image.png

Agora, vamos obter as informações necessárias para configurarmos nosso projeto .NET Core.

Precisamos das seguintes informações:

  • ClientId = Localizado na página de "App registrations". image.png

  • Tenant = Localizado na página do nosso app registrado. image.png

  • SignUpSignInPolicyId e ResetPasswordPolicyId = Nome das user flows criadas image.png

  • ClientSecret = Secret que acabamos de criar (espero que você tenha guardado o valor, né!!!).

Instrumentação da aplicação .NET Core

Agora sim!!

Abra o projeto no Visual Studio e adicione as informações no arquivo o appsettings.json

image.png

IMPORTANTE: Deverá ser alterado o valor do texto "< TENANT >" pelo mesmo nome contido na chave Tenant acima, mas sem o domínio ".onmicrosoft.com".

Execute o projeto no Visual Studio e clique na opção login no canto superior direito da página.

image.png

Será direcionado para dentro do nosso Tenant e executada a jornada do usuário.

Realize as operações de Sign Up, Sign In e Reset Password para testar o funcionamento do projeto.

image.png

Quando a jornada do usuário for concluída o Azure AD B2C irá redirecionar para nossa aplicação com o Token válido e as claims definidas na configuração.

image.png

Perceba que retornou a claim "DisplayName" contendo a informação que adicionei no momento do Sign Up.

Referências

Deploy custom policies devops

AZ B2C

Personalização

Informações

image.png

About

Passo a passo para implementação básica de utilização do Azure AD B2C com User Flows SignUp, SignIn e PasswordReset.

Resources

Stars

Watchers

Forks