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
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.
No Gerenciamento dos AD FS, clique com o botão direito do mouse em Grupos de Aplicativos e selecione Adicionar Grupo de Aplicativos.
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.
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.
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.
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 .
Na tela Aplicar Política de Controle de Acesso, selecione Permitir todos e clique em Avançar.
Na tela Configurar Permissões do Aplicativo, verifique se openid e user_impersonation estão selecionados e clique em Avançar.
Na tela Resumo, clique em Avançar.
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
Baixe o exemplo aqui
Abrir o exemplo usando o Visual Studio
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/adfsida:Resource
- insira o valor de Identifier de #5 na seção Registro de Aplicativo no AD FS.
O exemplo de teste
Esta seção mostra como testar o exemplo configurado.
Após as alterações de código, recompile a solução.
Na parte superior do Visual Studio, verifique se o Internet Explorer está selecionado e clique na seta verde.
Na Home Page, clique em Entrar.
Você será redirecionado para a página de entrada do AD FS. Vá em frente e entre.
Depois de conectado, clique em Token de Acesso.
Clicar em Access Token obtém as informações do token de acesso chamando a API da Web.
Próximas etapas
Fluxos e cenários de aplicativo do AD FS OpenID Connect/OAuth