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 que indica que o conteúdo a seguir se aplica aos locatários da força de trabalho. Locatários da força de trabalho Círculo verde com um símbolo de marca de seleção branco que indica que o conteúdo a seguir se aplica a locatários externos. Inquilinos 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.