Partilhar via


Cenário: Aplicativo nativo chamando API Web

Saiba como criar uma aplicação nativa, fazer login de utilizadores autenticados pelo AD FS 2019 e adquirir tokens usando a biblioteca MSAL para aceder a 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

Overview

Nesse fluxo, adiciona autenticação à sua aplicação nativa (cliente público), que pode, assim, autenticar utilizadores e invocar uma API Web. Para chamar uma API da Web a partir de uma aplicação nativa que autentica os utilizadores, pode usar o método de aquisição de token AcquireTokenInteractive da MSAL. Para permitir essa interação, a MSAL utiliza um navegador da Web.

Para entender melhor como configurar um aplicativo nativo no AD FS para adquirir token de acesso interativamente, vamos usar um exemplo disponível aqui e passo a passo 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 Nativo como um cliente público e a API da Web como uma Parte Confiável (RP) no AD FS

  1. Em Gestão do AD FS, clique com o botão direito do rato em Grupos de Aplicações e selecione Adicionar Grupo de Aplicação.

  2. No Assistente de Grupo de Aplicações, para o campo Nome insira NativeAppToWebApi e em Client-Server aplicações selecione o modelo Aplicativo nativo a aceder uma API Web. Clique em Next.

    Captura de ecrã da página de boas-vindas do assistente para adicionar grupo de aplicativos, mostrando o aplicativo nativo a aceder a um modelo de API Web, destacado.

  3. Copie o valor do Identificador de Cliente . Ele será usado posteriormente como o valor para ClientId no arquivo App.config do aplicativo. Insira o seguinte para URI de redirecionamento:https://ToDoListClient. Clique em Adicionar. Clique em Next.

    Captura de ecrã da página de Aplicação Nativa do Assistente para Adicionar Grupo de Aplicações mostrando o redirecionamento URI.

  4. Na tela Configurar API Web, insira o Identificador de :https://localhost:44321/. Clique em Adicionar. Clique em Next. Esse valor será usado posteriormente nos arquivos App.config e Web.config do aplicativo.

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

  5. No ecrã Aplicar Política de Controle de Acesso, selecione Permitir a todos e clique em Seguinte.

    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 a todos realçada.

  6. No ecrã Configurar Permissões da Aplicação, certifique-se de que openid está selecionado e clique em Avançar.

    Captura de ecrã da página Configurar Permissões de Aplicação do Assistente para Adicionar Grupo de Aplicações mostrando o ID aberto selecionado.

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

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

  9. Em Gerenciamento do AD FS, clique em Grupos de Aplicativos e selecione NativeAppToWebApi grupo de aplicativos. Clique com o botão direito do mouse e selecione Propriedades.

    Captura de tela da caixa de diálogo de Gestão de A D F S mostrando o grupo NativeAppToWebApi realçado e a opção Propriedades na lista suspensa.

  10. Na tela de propriedades do NativeAppToWebApi, selecione NativeAppToWebApi – Web API em Web API e clique em Editar...

    Captura de ecrã da caixa de diálogo de propriedades do NativeAppToWebApi mostrando o aplicativo NativeAppToWebApi - Web A P I destacado.

  11. No ecrã NativeAppToWebApi – Web API Properties, selecione o separador Regras de Transformação de Emissão e clique em Adicionar Regra...

    Captura de ecrã da caixa de diálogo de Propriedades da WebAPI NativeAppToWebApi, mostrando o separador Regras de Transformação de Emissão.

  12. No Assistente para Adicionar Regra de Declaração de Transformação, selecione Transformar uma Declaração de Entrada no modelo de regra de declaração : menu suspenso e clique em Avançar.

    Captura de ecrã da página Selecionar Modelo de Regra do Assistente de Adicionar Regra de Transformação de Declaração exibindo a opção Transformar uma Declaração de Entrada selecionada.

  13. Insira NameID no campo Nome da regra de declaração :. Selecione Nome para o tipo de declaração de entrada :, ID de nome para o tipo de declaração de saída : e Nome comum para o formato de ID de nome de saída :. clique em Concluir.

    Captura de ecrã da página de configuração da regra no Assistente para Adicionar Regra de Declaração de Transformação, mostrando a configuração explicada acima.

  14. Clique em OK na tela NativeAppToWebApi – Web API Properties e, em seguida, na tela NativeAppToWebApi Properties.

Configuração de código

Esta seção mostra como configurar um aplicativo nativo para autenticar o utilizador e recuperar o token para chamar a API Web

  1. Faça o download do exemplo do aqui

  2. Abrir o exemplo usando o Visual Studio

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

    • ida:Autoridade - introduza https://[your AD FS hostname]/adfs

    • ida:ClientId - insira o valor do Identificador do Cliente de #3 na secção Acima mencionada do Registro de Aplicativo no AD FS.

    • ida:RedirectUri - insira o valor de URI de Redirecionamento de no #3 na secção 'Registo de Aplicação' no AD FS acima.

    • todo:TodoListResourceId – insira o valor do Identificador de #4 na seção de Registro de Aplicativo no AD FS acima

    • ida: todo:TodoListBaseAddress - insira o valor do Identificador do de #4 na seção de Registro de Aplicativo no AD FS acima.

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

  4. Abra o arquivo Web.config. Modifique o seguinte:

    • ida:Audience - insira o valor do Identificador , de #4 na seção de Registo de Aplicações no AD FS, conforme mencionado acima.

    • ida: AdfsMetadataEndpoint - insira https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml

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

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

  2. No Visual Studio, clique com o botão direito do mouse na solução e selecione Definir Projetos de Inicialização...

    Captura de ecrã da lista que aparece quando clica com o botão direito do rato na solução com a opção Configurar projetos de arranque realçada.

  3. Nas páginas de Propriedades, verifique se Ação está definido como Iniciar para cada um dos Projetos

    Captura de tela da caixa de diálogo Páginas de propriedades da solução mostrando a opção Vários projetos de inicialização selecionada e todas as ações dos projetos definidas como Iniciar.

  4. Na parte superior do Visual Studio, clique na seta verde.

    Captura de tela da interface do usuário do Visual Studio com a opção Iniciar destacada.

  5. No ecrã principal da aplicação nativa, clique em Entrar.

    Captura de tela da caixa de diálogo Cliente da lista de tarefas.

Se não vires o ecrã da aplicação nativa, pesquisa e remove os ficheiros *msalcache.bin da pasta onde o repositório do projeto está guardado no teu sistema.

  1. Será redirecionado para a página de início de sessão do AD FS. Vá em frente e faça login.

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

  2. Depois de entrar, insira o texto Construir Aplicação Nativa para API Web no Criar um item de Tarefa. Clique em Adicionar item. Isso chamará o Serviço de Lista de Tarefas (Web API) e adicionará o item na cache.

    Captura de tela da caixa de diálogo Cliente da Lista de Tarefas com o novo item a fazer preenchendo a seção Itens a Fazer.

Próximas Etapas

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