Guia de início rápido: chame uma API da Web protegida pela plataforma de identidade da Microsoft
Aplica-se a: Os inquilinos da força de trabalho
Inquilinos externos (saber 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 da Biblioteca de Autenticação da Microsoft (MSAL) para manipular a autenticação.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Visual Studio 2022. Baixe Visual Studio gratuitamente.
Registrar aplicativo de API da Web
Para concluir o registro, forneça um nome ao aplicativo e especifique os tipos de conta suportados. Uma vez registrado, a página Visão geral do aplicativo exibe os identificadores necessários no código-fonte do aplicativo.
Entre no centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de Aplicativos.
Se tiver acesso a vários inquilinos, utilize o ícone Definições
no menu superior para mudar para o inquilino no qual pretende registar a aplicação a partir do menu Diretórios + subscrições.
Navegue até Identidade>Aplicativos>Registros de aplicativos.
Selecione Novo registo.
Insira um Nome para a aplicação, como NewWebAPI1.
Para Tipos de conta suportados, selecione Contas somente neste diretório organizacional. Para obter informações sobre diferentes tipos de conta, selecione Ajude-me a escolher opção.
Selecione Registo.
O painel Visão geral do do aplicativo é exibido quando o registro é concluído. Registre o de ID do Diretório (locatário) e o ID do Aplicativo (cliente) a serem usados no código-fonte do aplicativo.
Observação
Os Tipos de conta suportados podem ser alterados consultando Modificar as contas suportadas por um aplicativo.
Expor uma 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 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 continuare, em seguida, insira as seguintes informações:- Para 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 de exibição do consentimento do administrador, digite
Access TodoListService as a user
. - Na caixa de 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 de descrição do consentimento do utilizador , introduza
Accesses the TodoListService web API as a user
. - Para o Estado, mantenha Ativado.
- Para Nome do escopo, digite
Selecione Adicionar escopo.
Clone ou baixe 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 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 de appsettings.json na raiz do projeto TodoListService.
Substitua o valor do
Enter_the_Application_Id_here
pelo valor ID do Cliente (ID do Aplicativo) do aplicativo registrado no portal registros do Aplicativo nas propriedadesClientID
eAudience
.
Adicionar o novo escopo ao arquivo app.config
Para adicionar o novo escopo ao arquivo de app.config TodoListClient, execute 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 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 o seu aplicativo TodoListClient em Registros de Aplicativos no portal do Azure 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 Aplicações na Nuvem .
Navegue até Identity>Applications>Registos de aplicações e selecione Novo registo.
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).
- Para Tipos de conta suportados, selecione Contas em qualquer diretório organizacional.
- Selecione Registrar para criar o aplicativo.
Observação
No arquivo de app.config do projeto TodoListClient, o valor padrão de
ida:Tenant
é definido comocommon
. Os valores possíveis são:-
common
: Pode iniciar sessão utilizando uma conta escolar ou profissional ou uma conta Microsoft pessoal (porque selecionou Contas em qualquer diretório organizacional num passo 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çãoe conclua estas etapas para adicionar uma plataforma:
- Em Configurações da plataforma, selecione o botão Adicionar plataforma.
- Para aplicativos móveis e de desktop, selecione Aplicativos móveis e de desktop.
- Para Redirecionar URIs, marque a caixa de seleção
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Selecione Configurar.
Selecione permissões de APIe conclua os passos seguintes para adicionar permissões:
- Selecione o botão Adicionar uma permissão.
- Selecione o separador Minhas APIs.
- Na lista de APIs, selecione de API AppModelv2-NativeClient-DotNet-TodoListService ou o nome que você inseriu para a API da Web.
- Marque a caixa de seleção de permissão access_as_user 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 Registros de aplicativos portal, na página Visão geral do, copie o valor do ID do aplicativo (cliente).
Na pasta raiz do projeto TodoListClient, abra o arquivo app.config e cole o valor da ID do aplicativo no parâmetro
ida:ClientId
.
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
No Propriedades Comuns, selecione Projeto de Inicialização e 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, depois inicie a sessão com as mesmas credenciais que você/vocês usou/usaram para registar a sua aplicação, ou inicie a sessão como um utilizador 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 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 registo de aplicações , abra as propriedades da app TodoListService.
- Na seção Expor uma API, em Aplicações cliente autorizadas, selecione Adicionar uma aplicação cliente.
- Na caixa de ID do Cliente, cole a ID do Aplicativo do aplicativo TodoListClient.
- Na seção Escopos autorizados, selecione o escopo para a
api://<Application ID>/access_as_user
API web. - Selecione Adicionar aplicativo.
Execute o seu 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 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 entrar no seu aplicativo, alterando a propriedade TenantId
no arquivo appsettings.json.
Próximos passos
Saiba mais criando uma API Web protegida do ASP.NET Core na seguinte série de tutoriais: