Cenário: Aplicativo da área de trabalho que chama APIs WebScenario: Desktop app that calls web APIs

Saiba tudo o que você precisa para criar um aplicativo de desktop que chama APIs da WebLearn all you need to build a Desktop app that calls web APIs

Pré-requisitosPrerequisites

Antes de ler este artigo, você deve estar familiarizado com os conceitos a seguir ou leia os seguintes artigos:Before reading this article, you should be familiar with the following concepts or read the following articles:

IntroduçãoGetting started

Se você ainda não fez isso, crie seu primeiro aplicativo seguindo o início rápido da área de trabalho do .NET ou o início rápido do UWP:If you haven't already, create your first application by following the .NET desktop quickstart or the UWP quickstart:

Visão geralOverview

Você escreve um aplicativo de área de trabalho e deseja conectar usuários ao seu aplicativo e chamar APIs da Web, como o Microsoft Graph, outras APIs da Microsoft ou sua própria API Web.You write a desktop application, and you want to sign in users to your application and call web APIs such as the Microsoft Graph, other Microsoft APIs, or your own web API. Você tem várias possibilidades:You have several possibilities:

  • Você pode usar a aquisição de token interativo:You can use the interactive token acquisition:

    • Se o seu aplicativo de área de trabalho oferecer suporte a controles gráficos, por exemplo, se for um aplicativo Windows. Form ou um aplicativo do WPF.If your desktop application supports graphical controls, for instance if it's a Windows.Form application or a WPF application.
    • De se trata-se de um aplicativo .NET Core e você concorda em ter a interação de autenticação com o AD do Azure ocorre no navegador do sistemaOf if it's a .NET Core application and you agree to have the authentication interaction with Azure AD happen in the system browser
  • Para aplicativos hospedados do Windows, também é possível para aplicativos em execução em computadores ingressados em um domínio do Windows ou o AAD ingressado para adquirir um token silenciosamente usando a autenticação integrada do Windows.For Windows hosted applications, it's also possible for applications running on computers joined to a Windows domain or AAD joined to acquire a token silently by using Integrated Windows Authentication.

  • Finalmente, e embora não seja recomendado, você pode usar o nome de usuário/senha em aplicativos cliente públicos.Finally, and although it's not recommended, you can use Username/Password in public client applications. Ainda é necessário em alguns cenários (como DevOps), mas saiba que usá-lo irá impor restrições em seu aplicativo.It's still needed in some scenarios (like DevOps), but beware that using it will impose constraints on your application. Por exemplo, ele não pode conectar o usuário que precisa executar a autenticação multifator (acesso condicional).For instance, it can't sign in user who needs to perform multi-factor authentication (Conditional Access). Além disso, seu aplicativo não se beneficiará do SSO (logon único).Also your application won't benefit from single sign-on (SSO).

    Isso também vai contra os princípios da autenticação moderna e só é oferecido por ser herdado.It's also against the principles of modern authentication and is only provided for legacy reasons.

    Aplicativo de desktop

  • Se você estiver escrevendo uma ferramenta de linha de comando portátil, provavelmente um aplicativo .NET Core em execução no Linux ou Mac, e se aceitar que a autenticação seja delegada ao navegador do sistema, você poderá usar a autenticação interativa.If you're writing a portable command-line tool - probably a .NET Core application running on Linux or Mac - and if you accept that the authentication be delegated to the system browser, you will be able to use interactive authentication. (O .NET Core não fornece ainda um navegador da Web e, portanto, a autenticação ocorre no navegador do sistema), caso contrário, a melhor opção nesse caso é usar o fluxo de código do dispositivo.(.NET Core doesn't provide yet a Web browser and therefore the authentication happens in the system browser), Otherwise, the best option in that case is to use device code flow. Esse fluxo também é usado para aplicativos sem um navegador, como aplicativos de IoTThis flow is also used for applications without a browser, such as IoT applications

    Aplicativo com navegador

EspecificaçõesSpecifics

Os aplicativos de área de trabalho têm várias especificidades, o que depende principalmente se seu aplicativo usa a autenticação interativa ou não.Desktop applications have a number of specificities, which depends mainly on whether your application uses the interactive authentication or not.

Próximas etapasNext steps