Partilhar via


Cenário: Aplicativo Web (Aplicativo de Servidor) chamando API Web

Saiba como criar uma aplicação web, permitindo que utilizadores autenticados pelo AD FS 2019 entrem e adquiram tokens usando a biblioteca MSAL para invocar APIs web.

Antes de ler este artigo, você deve estar familiarizado com os conceitos do AD FS e fluxo de concessão de código de autorização

Overview

Visão geral do aplicativo Web chamando a API da Web

Nesse fluxo, adiciona-se autenticação à sua Aplicação Web (Aplicação de Servidor), que pode, assim, iniciar sessão de utilizadores e chamar uma API da Web. Na Aplicação Web, para chamar a API Web, utilize o método AcquireTokenByAuthorizationCode da MSAL para adquirir um token. Você usa o fluxo do código de autorização, armazenando o token adquirido no cache de tokens. Em seguida, o controlador adquire tokens silenciosamente do cache quando necessário. O MSAL atualiza o token, se necessário.

Aplicativos Web que chamam APIs da Web:

  • são aplicações de cliente confidenciais.
  • registou um segredo (segredo partilhado da aplicação, certificado ou conta AD) no AD FS. Esse segredo é passado durante a chamada para o AD FS para obter um token.

Para registrar um Aplicativo Web no AD FS e configurá-lo para adquirir tokens para chamar uma API Web, vamos usar um exemplo disponível aqui e percorrer as etapas de registro e configuração de código do aplicativo.

Pre-requisites

  • Ferramentas de cliente do GitHub
  • AD FS 2019 ou posterior configurado e em execução
  • Visual Studio 2013 ou posterior

Registo de Aplicações no AD FS

Esta seção mostra como registrar o Aplicativo Web como um cliente confidencial e a API Web como uma Parte Confiável (RP) no AD FS.

  1. No Gerenciamento do AD FS, clique com o botão direito do mouse em Grupos de Aplicativos e selecione Adicionar Grupo de Aplicativos.

  2. No Assistente de Grupo de Aplicações, para o Nome, insira WebAppToWebApi e em aplicações Cliente-Servidor selecione o modelo Aplicação Servidor que acede a uma API Web. Clique em Next.

    Captura de ecrã da página de boas-vindas do Assistente para Adicionar Grupo de Aplicações mostrando a aplicação Servidor a aceder a um modelo API da Web realçado.

  3. Copie o valor do Identificador de Cliente . O valor é usado posteriormente como valor para ida:ClientId no arquivo dos aplicativos Web.config. Insira o seguinte para URI de redirecionamento: - https://localhost:44326. Clique em Adicionar. Clique em Next.

    Captura de ecrã da página da aplicação do servidor do assistente para adicionar grupo de aplicações mostrando o identificador de cliente correto e a URI de redirecionamento.

  4. Na ecrã Configurar Credenciais do Aplicativo, selecione Gerar um segredo partilhado e copie o segredo. Este segredo é posteriormente usado como valor do ida:ClientSecret no ficheiro de aplicativos Web.config. Clique em Next.

    Captura de ecrã da página Configurar Credenciais da Aplicação do Assistente para Adicionar Grupo de Aplicações, mostrando a opção

  5. Na tela Configurar API Web, insira o Identificador de :https://webapi. Clique em Adicionar. Clique em Next. Este valor é usado posteriormente para ida:GraphResourceId no arquivo de aplicativos Web.config.

    Captura de tela da página Configurar API Web do Assistente para Adicionar Grupo de Aplicativos mostrando o identificador correto.

  6. Na tela Aplicar Política de Controle de Acesso, selecione Permitir todos e clique em Avançar.

    Captura de tela da página Escolher Política de Controle de Acesso do Assistente para Adicionar Grupo de Aplicativos mostrando a opção Permitir todos realçada.

  7. No ecrã Configurar Permissões de Aplicação, verifique se openid e user_impersonation estão selecionados e clique em Avançar.

    Captura de ecrã da página Configurar Permissões de Aplicativo do Assistente para Adicionar Grupo de Aplicativos com as opções abertas de ID e de representação de utilizador selecionadas.

  8. No ecrã de Resumo, clique em Seguinte.

  9. No ecrã Concluído, clique em Fechar.

Configuração de código

Esta seção mostra como configurar um ASP.NET Web App para autenticar o utilizador e obter um token de modo a chamar a Web API.

  1. Faça o download do exemplo do aqui

  2. Abrir o exemplo usando o Visual Studio

  3. Abra o arquivo web.config. Modifique o seguinte:

    • ida:ClientId - introduza o valor Identificador de Cliente de #3 na secção Registo de Aplicações no AD FS.

    • ida:ClientSecret - insira o valor Segredo do #4 na secção Registro de Aplicativos na AD FS.

    • ida:RedirectUri - insira o valor de URI de Redirecionamento de no registo de aplicação na secção AD FS.

    • ida:Authority - introduza https://[nome de anfitrião do AD FS]/adfs. Por exemplo, https://adfs.contoso.com/adfs

    • ida:Resource - introduza o valor do Identificador de #5 na secção Registo de Aplicação no AD FS.

      Captura de tela do arquivo de configuração da Web mostrando os valores modificados.

Testar a amostra

Esta seção mostra como testar o exemplo configurado.

  1. Depois que as alterações de código forem feitas, reconstrua a solução.

  2. Na parte superior do Visual Studio, verifique se Internet Explorer está selecionado e clique na seta verde.

    Captura de tela da interface do usuário do Visual Studio com a opção IIS Express (Internet Explorer) destacada.

  3. Na Página inicial, clique em Entrar.

    Captura de ecrã da Página Inicial com a opção Iniciar sessão realçada.

  4. Será redirecionado para a página de login do AD FS. Vá em frente e faça login.

    Captura de ecrã da página Iniciar sessão.

  5. Depois de entrar, clique em Token de acesso.

    Captura de ecrã da Página Inicial com a opção Token de Acesso destacada.

  6. Ao clicar no token de acesso, obtêm-se as informações do token de acesso ao chamar a API da Web.

    Captura de ecrã da página do Token de Acesso que mostra as informações do token de acesso.

Próximas Etapas

Fluxos OpenID Connect/OAuth do AD FS e Cenários de Aplicação