Partilhar via


Guia de início rápido: chame uma API da Web protegida pela plataforma de identidade da Microsoft

Aplica-se a: círculo verde com um símbolo de marca de seleção branco. Locatários da força de trabalho círculo verde com um símbolo de marca de seleção branco. 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

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.

  1. 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:

    1. Em Nome do escopo, digite access_as_user.
    2. Para Quem pode consentir, verifique se a opção Administradores e usuários está selecionada.
    3. Na caixa Nome para exibição do consentimento do administrador , digite Access TodoListService as a user.
    4. Na caixa Descrição do consentimento do administrador , digite Accesses the TodoListService web API as a user.
    5. Na caixa Nome de exibição do consentimento do usuário , digite Access TodoListService as a user.
    6. Na caixa Descrição do consentimento do utilizador , introduza Accesses the TodoListService web API as a user.
    7. Para Estado, mantenha Ativado.
  2. 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.

  1. Abra a solução no Visual Studio e, em seguida, abra o arquivo appsettings.json sob a raiz do projeto TodoListService.

  2. 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 propriedades ClientID como nas Audience.

Adicionar o novo escopo ao arquivo app.config

Para adicionar o novo âmbito ao ficheiro TodoListClient app.config, siga estes passos:

  1. Na pasta raiz do projeto TodoListClient, abra o arquivo app.config .

  2. 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:

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.

  2. Navegue atéRegistros do aplicativo> e selecione Novo registro.

  3. Selecione Novo registo.

  4. Quando a página Registar uma candidatura abrir, introduza as informações de registo da sua candidatura:

    1. Na seção Nome , insira um nome de aplicativo significativo que será exibido para os usuários do aplicativo (por exemplo, NativeClient-DotNet-TodoListClient).
    2. Em Tipos de conta suportados, selecione Contas em qualquer diretório organizacional.
    3. 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.
  5. Na página Visão geral do aplicativo, selecione Autenticação e conclua estas etapas para adicionar uma plataforma:

    1. Em Configurações da plataforma, selecione o botão Adicionar uma plataforma .
    2. Para Aplicações móveis e de ambiente de trabalho, selecione Aplicações móveis e de ambiente de trabalho.
    3. Para Redirecionar URIs, selecione a caixa de https://login.microsoftonline.com/common/oauth2/nativeclient seleção.
    4. Selecione Configurar.
  6. Selecione Permissões de API e conclua estas etapas para adicionar permissões:

    1. Selecione o botão Adicionar uma permissão .
    2. Selecione a guia Minhas APIs .
    3. Na lista de APIs, selecione AppModelv2-NativeClient-DotNet-TodoListService API ou o nome que você inseriu para a API da Web.
    4. 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.
    5. Selecione o botão Adicionar permissões .

Configure seu projeto

Configure seu projeto TodoListClient adicionando a ID do aplicativo ao arquivo app.config .

  1. No portal de registros de aplicativos , na página Visão geral , copie o valor da ID do aplicativo (cliente).

  2. 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;

  1. Clique com o botão direito do mouse na solução Visual Studio e selecione Propriedades

  2. Nas Propriedades comuns, selecione Projeto de inicialização e, em seguida, Vários projetos de inicialização.

  3. Para ambos os projetos, escolha Iniciar como a ação

  4. 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.

  1. Pressione F5 para iniciar os projetos. A página de serviço é aberta, assim como a aplicação de desktop.

  2. 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.

  1. No portal de registo de aplicações , abra as propriedades da app TodoListService.
  2. Na seção Expor uma API , em Aplicativos cliente autorizados, selecione Adicionar um aplicativo cliente.
  3. Na caixa ID do cliente , cole a ID do aplicativo TodoListClient.
  4. Na seção Escopos autorizados , selecione o escopo da api://<Application ID>/access_as_user API da Web.
  5. Selecione Adicionar aplicativo.

Execute o seu projeto

  1. Pressione F5 para executar seu projeto. A sua aplicação TodoListClient abre-se.
  2. 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.