Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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ê usa 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 Microsoft Authentication Library (MSAL) para manipular 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 Registrar um aplicativo.
- Nome: NewWebAPI1
- Tipos de conta suportados: Contas apenas neste diretório organizacional (Inquilino único)
- Visual Studio 2022. Baixe o Visual Studio gratuitamente.
Tornar a API acessível
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 da Web protegida. Em seguida, a API da Web executa a operação solicitada somente se o token de acesso que recebe contiver os escopos necessários.
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.
Copie ou descarregue a aplicação 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
Sugestão
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.
Configurar o aplicativo de exemplo
Configure o exemplo de código para corresponder à API da Web registrada.
Abra a solução no Visual Studio e, em seguida, abra o arquivo appsettings.json sob a raiz do projeto TodoListService.
Substitua o valor de
Enter_the_Application_Id_here
pelo ID do Cliente (ID da Aplicação) da aplicação que registou no portal de registos de aplicações, tanto nas propriedadesClientID
como nasAudience
.
Adicionar o novo escopo ao arquivo app.config
Para adicionar o novo âmbito ao ficheiro TodoListClient app.config, siga estes passos:
Na pasta raiz do projeto TodoListClient, abra o arquivo app.config .
Cole a ID do aplicativo que você registrou para seu 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
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)
Registe a sua aplicação TodoListClient em Registos de aplicações no centro de administração do Microsoft Entra e, em seguida, 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 do aplicativo> 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 Registrar para criar o aplicativo.
Observação
No arquivo app.config do projeto 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
: Só pode iniciar sessão utilizando 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, selecione 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 se a permissão ainda não estiver selecionada. 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 o aplicativo de exemplo
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 a aplicação de desktop.
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 estiveres a entrar pela primeira vez, poderás ser solicitado a dar consentimento à API web TodoListService.
Para ajudá-lo a acessar a API da Web TodoListService e manipular a lista de tarefas pendentes , o logon também solicita um token de acesso ao escopo access_as_user .
Pré-autorize a sua aplicação 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 registo de aplicações , abra as propriedades da app 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.
Execute o seu projeto
- Pressione F5 para executar seu projeto. A sua aplicação TodoListClient abre-se.
- 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 iniciar 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 iniciar sessão na sua aplicação, altere a TenantId
propriedade no ficheiro appsettings.json.
Próximos passos
Saiba como proteger uma API Web ASP.NET Core com a plataforma de identidade da Microsoft.