Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Locatários da força de trabalho
Locatários externos (saiba mais)
Neste início rápido, você usará um aplicativo Web de exemplo para mostrar como proteger uma API Web ASP.NET usando a plataforma de identidade da Microsoft. O exemplo usa a MSAL (Biblioteca de Autenticação da Microsoft) para lidar com autenticação e autorização.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Registre um novo aplicativo no Centro de administração do Microsoft Entra e registre seus identificadores na página Visão geral do aplicativo. Para obter mais informações, consulte Register an application (Registrar um aplicativo).
- Nome: NewWebAPI1
- Tipos de conta com suporte: Somente contas deste diretório organizacional (Locatário único)
- Visual Studio 2022. Baixe o Visual Studio gratuitamente.
Expor a API
Depois que a API for registrada, você poderá configurar sua permissão definindo os escopos que a API expõe aos aplicativos cliente. Os aplicativos cliente solicitam permissão para executar operações passando um token de acesso junto com suas solicitações para a API Web protegida. A API Web executará a operação solicitada somente se o token de acesso recebido contiver os escopos necessários.
Em Gerenciar, selecione Expor uma API>Adicionar um escopo. Aceite o URI da ID do Aplicativo proposto (
api://{clientId}
) selecionando Salvar e continuar e insira as seguintes informações:- Para Nome do escopo, insira
access_as_user
. - Para Quem pode consentir, verifique se a opção Administradores e usuários está selecionada.
- Na caixa Nome de exibição do consentimento do administrador, insira
Access TodoListService as a user
. - Na caixa Descrição do consentimento do administrador, insira
Accesses the TodoListService web API as a user
. - Na caixa Nome de exibição do consentimento do usuário, insira
Access TodoListService as a user
. - Na caixa Descrição do consentimento do usuário, insira
Accesses the TodoListService web API as a user
. - Para Estado, mantenha Habilitado.
- Para Nome do escopo, insira
Selecione Adicionar escopo.
Clonar ou baixar o aplicativo de exemplo
Para obter o aplicativo de exemplo, você pode cloná-lo do GitHub ou baixá-lo como um arquivo .zip.
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Dica
Para evitar erros causados por limitações de comprimento de caminho no Windows, recomendamos extrair o arquivo ou clonar o repositório em um diretório na raiz da unidade.
Configurar o aplicativo de exemplo
Configure o exemplo de código para corresponder à API Web registrada.
Abra a solução no Visual Studio e abra o arquivo appsettings.json na raiz do projeto TodoListService.
Substitua o valor do parâmetro
Enter_the_Application_Id_here
pelo valor da ID do Cliente (ID do Aplicativo) do aplicativo recém-registrado no portal Registros de aplicativo nas propriedadesClientID
eAudience
.
Adicionar o novo escopo ao arquivo app.config
Para adicionar o novo escopo ao arquivo app.config do TodoListClient, siga estas etapas:
Na pasta raiz do projeto TodoListClient, abra o arquivo app.config.
Cole a ID do Aplicativo registrada para o projeto TodoListService no parâmetro
TodoListServiceScope
, substituindo a cadeia de caracteres{Enter the Application ID of your TodoListService from the app registration portal}
.
Observação
Verifique se a ID do Aplicativo usa o seguinte formato: api://{TodoListService-Application-ID}/access_as_user
(em que {TodoListService-Application-ID}
é o GUID que representa a ID do Aplicativo para o aplicativo do TodoListService).
Registrar o aplicativo Web (TodoListClient)
Registre seu aplicativo TodoListClient em registros de aplicativo no Centro de administração do Microsoft Entra e configure o código no projeto TodoListClient. Se o cliente e o servidor forem considerados o mesmo aplicativo, você poderá reutilizar o aplicativo registrado na etapa 2. Use o mesmo aplicativo se desejar que os usuários entrem com uma conta pessoal Microsoft.
Registre o aplicativo
Para registrar o aplicativo TodoListClient, siga estas etapas:
Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativos de Nuvem.
Navegue atéregistros do aplicativo> e selecione Novo registro.
Selecione Novo registro.
Quando a página Registrar um aplicativo for exibida, insira as informações de registro do aplicativo:
- Na seção Nome, insira um nome de aplicativo relevante que será exibido aos usuários do aplicativo (por exemplo, NativeClient-DotNet-TodoListClient).
- Em Tipos de conta compatíveis, selecione Contas em qualquer diretório da organização.
- Selecione Registrar para criar o aplicativo.
Observação
No arquivo app.config do projeto TodoListClient, o valor padrão de
ida:Tenant
é definido comocommon
. Os valores possíveis são:-
common
: você pode se conectar usando uma conta corporativa ou de estudante ou uma conta pessoal Microsoft (porque você selecionou Contas em qualquer diretório organizacional em uma etapa anterior). -
organizations
: você pode entrar usando uma conta corporativa ou de estudante. -
consumers
: você pode entrar somente usando uma conta pessoal Microsoft.
Na página Visão geral do aplicativo, selecione Autenticação e conclua estas etapas para adicionar uma plataforma:
- Em Configurações da plataforma, selecione o botão Adicionar uma plataforma.
- Para Aplicativos móveis e da área de trabalho, selecione Aplicativos móveis e da área de trabalho.
- Em URIs de Redirecionamento, marque a caixa de seleção
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Selecione Configurar.
Selecione Permissões de API e conclua estas etapas para adicionar permissões:
- Selecione o botão Adicionar uma permissão.
- Selecione a guia Minhas APIs.
- Na lista de APIs, selecione a API AppModelv2-NativeClient-DotNet-TodoListService ou o nome que você inseriu para a API Web.
- Marque a caixa de seleção de permissão access_as_user caso ela ainda não esteja marcada. Use a caixa de Pesquisa, se necessário.
- Selecione o botão Adicionar permissões.
Configurar seu projeto
Configure seu projeto TodoListClient adicionando a ID do Aplicativo ao arquivo app.config.
No portal de Registros de aplicativo, na página Visão Geral, copie o valor da ID do Aplicativo (Cliente) .
Da pasta raiz do projeto TodoListClient, abra o arquivo app.config e cole o valor da ID do Aplicativo no parâmetro
ida:ClientId
.
Executar o aplicativo de exemplo
Inicie ambos os projetos. Para usuários do Visual Studio;
Clique com o botão direito na solução do Visual Studio e selecione Propriedades
Nas Propriedades Comuns, selecione Projeto de Inicialização e, em seguida, Vários projetos de inicialização.
Para ambos os projetos, escolha Iniciar como a ação
Verifique se o serviço TodoListService é iniciado primeiro movendo-o para a primeira posição na lista, usando a seta para cima.
Conecte-se para executar o projeto TodoListClient.
Pressione F5 para iniciar o projeto. A página de serviço será aberta, bem como o aplicativo da área de trabalho.
Em TodoListClient, no canto superior direito, selecione Entrar e conecte-se com as mesmas credenciais usadas para registrar o aplicativo ou entre como um usuário no mesmo diretório.
Se você está se conectando pela primeira vez, talvez precise fornecer seu consentimento para a API Web TodoListService.
Para ajudar você a acessar a API Web do TodoListService e manipular a lista de tarefas pendentes, o login também solicita um token de acesso para o escopo access_as_user.
Pré-autorize seu aplicativo cliente
Você pode permitir que os usuários de outros diretórios acessem a API Web pré-autorizando o aplicativo cliente a acessá-la. Faça isso adicionando a ID do aplicativo cliente à lista de aplicativos pré-autenticados para sua API Web. Ao adicionar um cliente pré-autenticado, você está permitindo que os usuários acessem sua API Web sem precisar fornecer consentimento.
- No portal Registros de aplicativo, abra as propriedades do aplicativo do TodoListService.
- Na seção Expor uma API, em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente.
- No campo ID do Cliente, cole a ID do Aplicativo do TodoListClient.
- Na seção Escopos autorizados, selecione o escopo da API Web
api://<Application ID>/access_as_user
. - Selecione Adicionar aplicativo.
Execute seu projeto
- Pressione F5 para executar o projeto. O aplicativo TodoListClient será aberto.
- No canto superior direito, selecione Entrar e conecte-se usando uma conta pessoal Microsoft, como live.com ou hotmail.com, ou uma conta corporativa ou de estudante.
Opcional: limitar o acesso de entrada a determinados usuários
Por padrão, todas as contas pessoais, como outlook.com ou live.com, ou as contas corporativas ou de estudante de organizações integradas ao Microsoft Entra ID podem solicitar tokens e acessar a API Web.
Para especificar quem pode entrar em seu aplicativo, alterando a propriedade TenantId
no arquivo appsettings.json .
Próximas etapas
Saiba como proteger uma API Web do ASP.NET Core com a plataforma de identidade da Microsoft.