Compartilhar via


Cenário: aplicativo Web (aplicativo de servidor) chamando a API Web

Saiba como criar usuários de entrada de um aplicativo Web autenticados pelo AD FS 2019 e adquirir tokens usando a biblioteca MSAL para chamar APIs Web.

Antes de ler este artigo, é necessário estar familiarizado com os Conceitos do AD FS e o Fluxo de concessão de código de autorização

Overview

Visão geral do aplicativo Web chamando API Web

Neste fluxo, adicione autenticação ao aplicativo Web (Aplicativo de Servidor), que poderá, portanto, conectar os usuários e chamar uma API Web. No aplicativo Web, para chamar a API Web, use o método de aquisição de token AcquireTokenByAuthorizationCode de MSAL. Use o fluxo de código de autorização, armazenando o token adquirido no cache de token. Em seguida, o controlador adquire tokens silenciosamente do cache quando necessário. A MSAL atualiza o token, se necessário.

Aplicativos Web que chamam APIs Web:

  • são aplicativos clientes confidenciais.
  • Registrou um segredo (segredo compartilhado do aplicativo, certificado ou conta do AD) no AD FS. Esse segredo é passado durante a chamada ao 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 configuração de código e registro do aplicativo.

Pre-requisites

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

Registro de aplicativo no AD FS

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

  1. No Gerenciamento dos 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 Aplicativos, para o Nome , insira WebAppToWebApi e , emClient-Server aplicativos , selecione o aplicativo Servidor acessando um modelo de API Web . Clique em Próximo.

    Captura de tela da página inicial do Assistente para Adicionar Grupo de Aplicativos mostrando o modelo Aplicativo de servidor acessando uma API Web realçado.

  3. Copie o valor Identificador de Cliente. O valor é usado posteriormente como o valor de ida:ClientId nos aplicativos Web.config arquivo. Insira o seguinte para URI de redirecionamento: – https://localhost:44326. Clique em Adicionar. Clique em Próximo.

    Captura de tela da página Aplicativo de servidor do Assistente para Adicionar Grupo de Aplicativos mostrando o identificador de cliente correto e o URI de redirecionamento.

  4. Na tela Configurar Credenciais do Aplicativo, faça uma verificação em Gerar um segredo compartilhado e copie o segredo. Esse segredo é usado posteriormente como o valor de ida:ClientSecret no arquivo deWeb.config de aplicativos. Clique em Próximo.

    Captura de tela da página do aplicativo Configurar Credenciais do Aplicativo do Assistente para Adicionar Grupo de Aplicativos mostrando a opção Gerar um segredo compartilhado selecionada e o segredo compartilhado gerado preenchido.

  5. Na tela Configurar API Web, insira o Identificador:https://webapi. Clique em Adicionar. Clique em Próximo. Esse valor é usado posteriormente para ida:GraphResourceId nos aplicativos Web.config arquivo.

    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 a 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. Na tela Configurar Permissões de Aplicativo, verifique se o openid e user_impersonation estão selecionados e clique em Avançar.

    Captura de tela da página Configurar Permissões do Aplicativo do Assistente para Adicionar Grupo de Aplicativos mostrando as opções selecionadas de ID aberta e 	representação de usuário.

  8. Na tela Resumo, clique em Avançar.

  9. Na tela Concluído, clique em Fechar.

Configuração de código

Esta seção mostra como configurar um Aplicativo Web ASP.NET para fazer logon do usuário e recuperar o token para chamar a API Web

  1. Baixe o exemplo aqui

  2. Abrir o exemplo usando o Visual Studio

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

    • ida:ClientId – insira o valor do Identificador de Cliente de nº 3 no Registro de Aplicativo na seção AD FS.

    • ida:ClientSecret - insira o valor do segredo de nº 4 na seção Registro de Aplicativo no AD FS.

    • ida:RedirectUri – insira o valor de URI de Redirecionamento de nº 3 no Registro de Aplicativo na seção AD FS.

    • ida:Authority - insira https://[seu nome de host do AD FS]/adfs. Por exemplo, https://adfs.contoso.com/adfs

    • ida:Resource - insira o valor do Identificador de nº 5 no Registro de Aplicativo na seção AD FS.

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

O exemplo de teste

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

  1. Após as alterações de código, recompile a solução.

  2. Na parte superior do Visual Studio, verifique se o 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 Home Page, clique em Entrar.

    Captura de tela da Home Page com a opção Entrar em destaque.

  4. Você será redirecionado para a página de entrada do AD FS. Vá em frente e entre.

    Captura de tela da página de Entrada.

  5. Depois de conectado, clique em Token de Acesso.

    Captura de tela da Home Page com a opção Token de Acesso em destaque.

  6. Clicar em Access Token obtém as informações do token de acesso chamando a API da Web.

    Captura de tela da página Token de Acesso mostrando as informações do token de acesso.

Próximas etapas

Fluxos e cenários de aplicativo do AD FS OpenID Connect/OAuth