Guia de início rápido: chame uma API Web ASP.NET protegida pela plataforma de identidade da Microsoft
O guia de início rápido a seguir usa um exemplo de código que demonstra como proteger uma API da Web ASP.NET restringindo o acesso a seus recursos apenas a contas autorizadas. O exemplo oferece suporte à autorização de contas pessoais da Microsoft e contas em qualquer organização do Microsoft Entra.
O artigo também usa um aplicativo Windows Presentation Foundation (WPF) para demonstrar como solicitar um token de acesso para acessar uma API da Web.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Visual Studio 2022. Baixe o Visual Studio gratuitamente.
Clone ou faça o download do exemplo
O exemplo de código pode ser obtido de duas maneiras:
Clone a partir do seu shell ou linha de comando:
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Gorjeta
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 perto da raiz da unidade.
Registrar a API da Web (TodoListService)
Gorjeta
As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.
Registe a sua API Web em Registos de aplicações no portal do Azure.
Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
Se você tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o locatário no qual deseja registrar o aplicativo no menu Diretórios + assinaturas.
Navegue até Registros de aplicativos de identidade>>e selecione Novo registro.
Introduza um Nome para a sua aplicação, por exemplo
AppModelv2-NativeClient-DotNet-TodoListService
. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.Em Tipos de conta suportados, selecione Contas em qualquer diretório organizacional.
Selecione Registar para criar a aplicação.
Na página Visão geral do aplicativo, procure o valor da ID do aplicativo (cliente) e registre-o para uso posterior. Você precisará dele para configurar o arquivo de configuração do Visual Studio para este projeto (ou seja,
ClientId
no arquivo TodoListService\appsettings.json ).Em Gerenciar, selecione Expor uma API>Adicionar um escopo. Aceite o URI de ID do Aplicativo proposto (
api://{clientId}
) selecionando Salvar e continuar e insira as seguintes informações:- Em Nome do escopo, digite
access_as_user
. - Para Quem pode consentir, verifique se a opção Administradores e usuários está selecionada.
- Na caixa Nome para exibição do consentimento do administrador, digite
Access TodoListService as a user
. - Na caixa Descrição do consentimento do administrador, digite
Accesses the TodoListService web API as a user
. - Na caixa Nome de exibição do consentimento do usuário, digite
Access TodoListService as a user
. - Na caixa Descrição do consentimento do utilizador, introduza
Accesses the TodoListService web API as a user
. - Para Estado, mantenha Ativado.
- Em Nome do escopo, digite
Selecione Adicionar escopo.
Configurar o projeto de serviço
Configure o projeto de serviço para corresponder à API da Web registrada.
Abra a solução no Visual Studio e, em seguida, abra o arquivo de appsettings.json sob a raiz do projeto TodoListService.
Substitua
Enter_the_Application_Id_here
o valor do valor pelo ID do Cliente (ID do Aplicativo) do aplicativo que você registrou no portal de registros do aplicativo nasClientID
propriedades eAudience
nas propriedades.
Adicione o novo escopo ao arquivo app.config
Para adicionar o novo escopo ao arquivo app.config TodoListClient, siga estas etapas:
Na pasta raiz do projeto TodoListClient, abra o arquivo app.config .
Cole a ID do aplicativo que você registrou para seu projeto TodoListService no
TodoListServiceScope
parâmetro, substituindo a{Enter the Application ID of your TodoListService from the app registration portal}
cadeia de caracteres.
Nota
Certifique-se de que a ID do aplicativo usa o seguinte formato: api://{TodoListService-Application-ID}/access_as_user
(onde {TodoListService-Application-ID}
é o GUID que representa a ID do aplicativo para seu aplicativo TodoListService).
Registrar o aplicativo Web (TodoListClient)
Registre seu aplicativo TodoListClient em Registros de aplicativo no portal do Azure 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. Utilize a mesma aplicação se pretender que os utilizadores iniciem sessão com uma conta Microsoft pessoal.
Registar a aplicação
Para registar a aplicação TodoListClient, siga estes passos:
Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
Navegue até Registros de aplicativos de identidade>>e selecione Novo registro.
Selecione Novo registo.
Quando a página Registar uma candidatura abrir, introduza as informações de registo da sua candidatura:
- Na seção Nome, insira um nome de aplicativo significativo que será exibido para os usuários do aplicativo (por exemplo, NativeClient-DotNet-TodoListClient).
- Em Tipos de conta suportados, selecione Contas em qualquer diretório organizacional.
- Selecione Registar para criar a aplicação.
Nota
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 entrar usando uma conta corporativa ou de estudante ou uma conta pessoal da 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 da 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 Aplicações móveis e de ambiente de trabalho, selecione Aplicações móveis e de ambiente de trabalho.
- Para Redirecionar URIs, marque a caixa de
https://login.microsoftonline.com/common/oauth2/nativeclient
seleção. - 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 AppModelv2-NativeClient-DotNet-TodoListService API ou o nome que você inseriu para a API da Web.
- Marque a caixa de seleção access_as_user permissão se ainda não estiver marcada. Use a caixa Pesquisar, se necessário.
- Selecione o botão Adicionar permissões .
Configure seu projeto
Configure seu projeto TodoListClient adicionando a ID do aplicativo ao arquivo app.config .
No portal de registros de aplicativos, na página Visão geral, copie o valor da ID do aplicativo (cliente).
Na pasta raiz do projeto TodoListClient, abra o arquivo app.config e cole o valor da ID do
ida:ClientId
aplicativo no parâmetro.
Execute seus projetos
Inicie ambos os projetos. Para usuários do Visual Studio;
Clique com o botão direito do mouse na solução 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 da lista, usando a seta para cima.
Entre para executar seu projeto TodoListClient.
Pressione F5 para iniciar os projetos. A página de serviço é aberta, assim como o aplicativo da área de trabalho.
No TodoListClient, no canto superior direito, selecione Entrar e entre com as mesmas credenciais que você usou para registrar seu aplicativo ou entre como um usuário no mesmo diretório.
Se você estiver entrando pela primeira vez, poderá ser solicitado a consentir com a API da Web TodoListService.
Para ajudá-lo a acessar a API da Web TodoListService e manipular a lista de Tarefas Pendentes , o login também solicita um token de acesso ao escopo access_as_user .
Pré-autorizar seu aplicativo cliente
Você pode permitir que usuários de outros diretórios acessem sua API da Web pré-autorizando o aplicativo cliente a acessar sua API da Web. Para fazer isso, adicione a ID do aplicativo cliente à lista de aplicativos pré-autorizados para sua API da Web. Ao adicionar um cliente pré-autorizado, você está permitindo que os usuários acessem sua API da Web sem precisar fornecer consentimento.
- No portal de registros de aplicativos, abra as propriedades do seu aplicativo TodoListService.
- Na seção Expor uma API, em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente.
- Na caixa ID do cliente, cole a ID do aplicativo TodoListClient.
- Na seção Escopos autorizados, selecione o escopo da
api://<Application ID>/access_as_user
API da Web. - Selecione Adicionar aplicativo.
Executar o projeto
- Pressione F5 para executar seu projeto. Seu aplicativo TodoListClient é aberto.
- No canto superior direito, selecione Entrar e entre usando uma conta pessoal da Microsoft, como uma conta live.com ou hotmail.com ou uma conta corporativa ou de estudante.
Opcional: limitar o acesso de início de sessão a determinados utilizadores
Por padrão, todas as contas pessoais, como contas outlook.com ou live.com , ou contas corporativas ou de estudante de organizações integradas ao Microsoft Entra ID podem solicitar tokens e acessar sua API da Web.
Para especificar quem pode entrar no seu aplicativo, alterando a TenantId
propriedade no arquivo appsettings.json .
Ajuda e suporte
Se precisar de ajuda, quiser comunicar um problema ou quiser saber mais sobre as suas opções de suporte, consulte Ajuda e suporte para programadores.
Próximos passos
Saiba mais criando uma API Web protegida do ASP.NET Core na seguinte série de tutoriais:
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários