Laboratório 06: Autenticar usando SDKs do OpenID Connect, MSAL e .NET
Interface de usuário do Microsoft Azure
Dada a natureza dinâmica das ferramentas de nuvem da Microsoft, você pode se deparar com alterações na IU do Azure que ocorram após o desenvolvimento deste conteúdo do treinamento. Como resultado, as instruções do laboratório e as etapas do laboratório podem não estar alinhadas corretamente.
A Microsoft atualiza este curso de treinamento quando a comunidade nos alerta sobre as alterações necessárias. No entanto, as atualizações na nuvem ocorrem com frequência, portanto você pode encontrar alterações na interface de usuário antes que esse conteúdo de treinamento seja atualizado. Se isso ocorrer, adapte-se às alterações e trabalhe com elas nos laboratórios, conforme necessário.
Instruções
Antes de começar
Entrar no ambiente de laboratório
Entre na máquina virtual (VM) do Windows 11 usando as seguintes credenciais:
- Nome de usuário:
Admin
- Senha:
Pa55w.rd
Observação: Seu instrutor fornecerá instruções para se conectar ao ambiente de laboratório virtual.
Examinar os aplicativos instalados
Localize a barra de tarefas na área de trabalho do Windows 11. A barra de tarefas contém os ícones dos aplicativos que você usará neste laboratório, incluindo:
- Microsoft Edge
- Visual Studio Code
Cenário do laboratório
Neste laboratório, você registrará um aplicativo no Microsoft Entra ID, adicionará um usuário e, em seguida, testará o acesso do usuário ao aplicativo para validar que o Entra ID pode assegurá-lo.
Diagrama de arquitetura
Exercício 1: Configurar um ambiente do Entra ID de locatário único
Tarefa 1: Abrir o portal do Azure
-
Na barra de tarefas, selecione o ícone Microsoft Edge.
-
Na janela aberta do navegador, navegue até o portal do Azure em
https://portal.azure.com
e entre com a conta que você usará para este laboratório.Observação: Se esta for a primeira vez que entra no portal do Azure, você receberá um tour pelo portal. Selecione Introdução para ignorar o tour e começar a usar o portal.
Tarefa 2: Registrar um aplicativo no Entra ID Directory
-
No portal do Azure, use a caixa de texto Pesquisar recursos, serviços e documentos para encontrar o Entra ID e, na lista de resultados, selecione Microsoft Entra ID.
Observação: Isso redireciona a sessão do navegador para a folha do locatário do Microsoft Entra ID associado à sua assinatura do Azure.
-
Na folha Microsoft Entra ID , selecione Registros de aplicativo na seção Gerenciar.
-
Na seção Registros de aplicativo, selecione + Novo registro.
-
Na seção Registrar um aplicativo, realize as seguintes ações e selecione Registrar:
Configuração Ação Caixa de texto Nome Insira webappoidc Lista Tipos de conta com suporte Selecionar Apenas contas neste diretório organizacional (apenas Diretório Padrão - Locatário único) Observação: O nome do locatário pode ser diferente dependendo da sua assinatura do Azure.
A captura de tela a seguir exibe as configurações definidas na seção Registrar um aplicativo.
Tarefa 3: Registrar identificadores exclusivos
-
Na folha de registro de aplicativo webappoidc, selecione Visão Geral.
-
Na seção Visão geral, localize e registre o valor na caixa de texto ID do aplicativo (cliente). Você usará esse valor mais adiante no laboratório.
-
Na seção Visão Geral, localize e registre o valor na caixa de texto ID do diretório (locatário). Você usará esse valor mais adiante no laboratório.
Tarefa 4: Definir as configurações de autenticação de aplicativo
-
Na folha do registro de aplicativo webappoidc, selecione Autenticação na seção Gerenciar.
-
Na seção Autenticação, realize as seguintes ações e selecione Configurar:
Configuração Ação Seção Configurações de plataforma Selecione + Adicionar uma plataforma Folha Configurar plataformas Selecione Web Caixa de textoRedirecionar URIs Inserir https://localhost:5001/
Caixa de texto URL de logoff de canal frontal Inserir https://localhost:5001/signout-oidc
-
Voltando para a seção Configurações de plataforma, selecione Adicionar URI e insira
https://localhost:5001/signin-oidc
. -
Na seção Concessão implícita e fluxos híbridos, selecione Tokens de ID (usados para fluxos implícitos e híbridos).
-
Selecione Salvar.
A captura de tela a seguir exibe as configurações definidas na folha Autenticação.
Tarefa 5: Criar um usuário do Microsoft Entra ID
-
No portal do Azure, selecione o ícone do Cloud Shell para abrir o Cloud Shell. Se o Cloud Shell usa como padrão uma sessão do Bash, selecione Alternar para o PowerShell no menu do Cloud Shell e, em seguida, selecione Confirmar.
Observação: O ícone do Cloud Shell é representado por um sinal de maior que (>) e caractere de sublinhado (_).
Se você iniciar o Cloud Shell pela primeira vez, verá uma série de prompts para criar o recurso. Execute as ações apresentadas na tabela a seguir:
Prompt Ação Bem-vindo ao Azure Cloud Shell Selecione PowerShell. Introdução Selecione Montar conta de armazenamento, escolha a Assinatura da conta de armazenamento na lista de seleção e, por fim, selecione Aplicar. Montar conta de armazenamento Selecione Vamos criar uma conta de armazenamento para você e Avançar. -
No painel Cloud Shell, execute o seguinte comando para entrar no locatário do Microsoft Entra associado à sua assinatura do Azure:
Connect-AzureAD
-
Execute o seguinte comando para recuperar e exibir o nome de domínio DNS (Sistema de Nomes de Domínio) primário do locatário do Microsoft Entra:
$aadDomainName = ((Get-AzureAdTenantDetail).VerifiedDomains)[0].Name $aadDomainName
Observação: Registre o valor do nome de domínio DNS. Você usará esse valor mais adiante no laboratório.
-
Execute os seguintes comandos para criar usuários do Microsoft Entra ID que você usará para testar a autenticação do Microsoft Entra ID:
$passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile $passwordProfile.Password = 'Pa55w.rd1234' $passwordProfile.ForceChangePasswordNextLogin = $false New-AzureADUser -AccountEnabled $true -DisplayName 'aad_lab_user1' -PasswordProfile $passwordProfile -MailNickName 'aad_lab_user1' -UserPrincipalName "aad_lab_user1@$aadDomainName"
-
Execute o seguinte comando para identificar o UPN (nome de entidade de usuário) do usuário recém-criado do Microsoft Entra ID:
(Get-AzureADUser -Filter "MailNickName eq 'aad_lab_user1'").UserPrincipalName
Observação: Registre o UPN. Você usará esse valor mais adiante no laboratório.
-
Feche o painel do Cloud Shell.
Revisão
Neste exercício, você registrou um aplicativo do Azure AD de locatário único e criou uma conta de usuário do Azure AD.
Exercício 2: Criar um aplicativo Web do ASP.NET de locatário único
Tarefa 1: Criar um projeto de aplicativo Web do ASP.NET
-
No computador do laboratório, inicie um Prompt de comando.
-
No prompt de comando, execute os seguintes comandos para criar e definir o diretório atual como Allfiles (F):\Allfiles\Labs\06\Starter\OIDCClient:
F: cd F:\Allfiles\Labs\06\Starter\OIDCClient
-
Execute os seguintes comandos para criar um novo aplicativo Web do .NET Core com base no modelo de Controlador de Exibição de Modelo (MVC) (substitua os espaços reservados
<application_ID>
,<tenant_ID>
e<domain_Name>
pelos valores correspondentes registrados anteriormente neste laboratório):dotnet new mvc --auth SingleOrg --client-id <application_ID> --tenant-id <tenant_ID> --domain <domain_Name> rmdir .\obj /S /Q
Observação: Se você recebeu um erro no terminal, pode ser que esteja usando o PowerShell. Nesse caso, remova os sinalizadores
/S /Q
e execute novamente o comando. -
Execute o seguinte comando para iniciar o Visual Studio Code.
code .
Caso tenha sido solicitado Você confia nos autores de todos os arquivos nesta pasta?, selecione Sim, confio nos autores.
-
No painel Explorer do Visual Studio Code, examine a estrutura de pastas gerada automaticamente que representa um aplicativo Web MVC.
-
Navegue até a pasta Propriedades, abra o arquivo launchSettings.json e aplique as seguintes alterações:
Seção Propriedade Valor iisSettings sslPort 44321 https applicationUrl https://localhost:5001
Observação: Os números da porta devem corresponder ao valor especificado ao criar o registro de aplicativo do Microsoft Entra ID.
-
Salve e feche o arquivo.
-
No painel Explorer do Visual Studio Code, selecione OIDCClient.csproj.
-
Verifique se o valor do elemento
<TargetFramework>
está definido como net8.0. -
Verifique se a versão dos pacotes NuGet
Microsoft.AspNetCore.Authentication.JwtBearer
eMicrosoft.AspNetCore.Authentication.OpenIdConnect
está definida como 8.0.0. -
Verifique se conteúdo do arquivo OIDCClient.csproj é semelhante à listagem a seguir (o valor do
UserSecretsId
será diferente) e salve as alterações.<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <UserSecretsId>aspnet-OIDCClient-5249f5b2-6266-4a13-b8b4-e79c6443aabc</UserSecretsId> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.0-rc.2.23480.2" NoWarn="NU1605" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.0-rc.2.23480.2" NoWarn="NU1605" /> <PackageReference Include="Microsoft.Identity.Web" Version="2.13.0" /> <PackageReference Include="Microsoft.Identity.Web.UI" Version="2.13.0" /> <PackageReference Include="Microsoft.Identity.Web.DownstreamApi" Version="2.13.0" /> </ItemGroup> </Project>
-
Feche o arquivo OIDCClient.csproj.
-
Navegue até a pasta Views\Shared e abra o arquivo _LoginPartial.cshtml.
-
Verifique se o atributo
asp-area
de cada elemento span referenciaMicrosoftIdentity
, como na linha a seguir:<a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a>
-
Feche o arquivo sem fazer alterações.
-
Abra o arquivo appsettings.json na pasta raiz e examine o conteúdo do objeto ** AzureAd**, incluindo os seguintes elementos:
Elemento Valor Instance
https://login.microsoftonline.com/
Domain
Domínio DNS primário do locatário do Azure AD associado à sua assinatura do Azure TenantId
GUID do locatário do Azure AD ClientId
A ID de Aplicativo (cliente) do aplicativo registrado no locatário do Azure AD. CallbackPath
/signin-oidc
-
Feche o arquivo sem fazer alterações.
-
No painel Explorer do Visual Studio Code, selecione Program.cs.
-
Verifique se o arquivo contém as seguintes diretivas de uso:
using Microsoft.AspNetCore.Authentication.OpenIdConnect; using Microsoft.Identity.Web; using Microsoft.Identity.Web.UI;
-
Verifique se o arquivo contém as seguintes linhas que adicionam os serviços de autenticação relevantes ao contêiner:
// Add services to the container. builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"));
-
Verifique se o arquivo contém as seguintes linhas que adicionam um controlador e páginas Razor para gerenciamento de contas:
builder.Services.AddRazorPages() .AddMicrosoftIdentityUI();
-
Salve e feche o arquivo.
Tarefa 2: Testar o aplicativo Web de locatário único em um cenário de locatário único
-
Na janela Visual Studio Code, na barra de menus superior, procure o menu Terminal e selecione Novo Terminal.
-
No painel Terminal, o caminho atual do diretório de trabalho atual deve ser F:\Allfiles\Labs\06\Starter\OIDCClient. Execute os seguintes comandos para criar o aplicativo Web do .NET:
dotnet build
Observação: Se você encontrar algum erro de compilação, faça uma revisão dos arquivos na pasta Allfiles (F):\Allfiles\Labs\06\Solution\OIDCClient. Ignore eventuais mensagens de aviso.
-
Execute o seguinte comando para gerar um certificado autoassinado e configurar o computador local para confiar nele:
dotnet dev-certs https --trust
-
Se for solicitado a instalar o certificado gerado automaticamente, selecione Sim.
-
No prompt do terminal, execute o comando a seguir para executar o aplicativo Web do .NET:
dotnet run
-
Inicie o navegador Microsoft Edge no modo InPrivate e navegue até a
https://localhost:5001
URL. -
Caso seja apresentada a mensagem Sua conexão não é particular, selecione Avançado e, em seguida, selecione o link Continuar para localhost (não seguro).
-
Na janela abrir o navegador, quando solicitado, autentique usando o UPN da conta aad_lab_user1 do Microsoft Entra ID criada anteriormente neste laboratório com Pa55w.rd1234 como sua senha.
Observação: Se você for solicitado com uma janela Ajude-nos a proteger sua conta, selecione Ignorar por enquanto.
Observação: Se você receber a mensagem Precisa de aprovação do administrador, precisará usar um Microsoft Entra ID com privilégios elevados para concluir o restante dessa tarefa. Para fazer isso, selecione o link Tem uma conta de administrador? Entre com a conta, entre com uma conta de administrador e prossiga para a próxima etapa.
-
A janela do navegador abrirá automaticamente a página da Web Permissões solicitadas.
-
Examine as permissões solicitadas, que incluem Exibir seu perfil básico e Manter o acesso aos dados que você permitiu que ele acessasse.
-
Selecione Aceitar.
-
Revise a página inicial Bem-vindo do site de destino exibido pelo navegador e verifique se o UPN da conta aad_user1 do Microsoft Entra ID aparece na janela do navegador.
-
Na Página inicial, selecione Sair.
-
Quando solicitado a selecionar a conta para sair, selecione a conta aad_lab_user1 do Microsoft Entra ID. Você será redirecionado automaticamente para a página Desconectado.
-
Feche o navegador Microsoft Edge.
Revisão
Neste exercício, você implementou um aplicativo Web de locatário único e o testou em um ambiente do Microsoft Entra de locatário único.