Compartilhar via


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

Saiba como criar um aplicativo Web conectando usuários autenticados pelo AD FS 2019 e adquirindo 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

Visão geral

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 registro de aplicativo e configuração de código.

Pré-requisitos

  • 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, em Aplicativos cliente-servidor, selecione o modelo Aplicativo de servidor acessando uma 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 no arquivo Web.config dos aplicativos . 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. O segredo é usado posteriormente como o valor de ida:ClientSecret no arquivo Web.config dos aplicativos . Clique em Avançar.

    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 Avançar. Esse valor é usado posteriormente para ida:GraphResourceId no arquivo Web.config dos aplicativos .

    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. Na tela Configurar Permissões do Aplicativo, verifique se 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 Identificador do Cliente de #3 na seção Registro de Aplicativo no AD FS.

    • ida:ClientSecret - insira o valor de Secret de #4 na seção Registro de Aplicativo no AD FS.

    • ida:RedirectUri - insira o valor de Redirect URI de #3 na seção Registro de Aplicativo no 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 de Identifier de #5 na seção Registro de Aplicativo no 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