Partilhar via


Aplicativo de área de trabalho que chama APIs da Web: configuração de código

Agora que você criou seu aplicativo, aprenderá a configurar o código com as coordenadas do aplicativo.

Bibliotecas da Microsoft que suportam aplicações de ambiente de trabalho

As seguintes bibliotecas da Microsoft suportam aplicações de ambiente de trabalho:

Linguagem / framework Projeto em
GitHub
Pacote Como obter
começar
Iniciar sessão de utilizadores Aceder a APIs Web Geralmente disponível (GA) ou
Pré-visualizaçãopública 1
Electron MSAL Node.js msal-nó A biblioteca pode solicitar tokens de ID para entrar no usuário. A biblioteca pode solicitar tokens de acesso para APIs da Web protegidas. Pré-visualização pública
Java MSAL4J MSAL4J A biblioteca pode solicitar tokens de ID para entrar no usuário. A biblioteca pode solicitar tokens de acesso para APIs da Web protegidas. GA
macOS (Swift/OBJ-C) MSAL para iOS e macOS MSAL Tutorial A biblioteca pode solicitar tokens de ID para entrar no usuário. A biblioteca pode solicitar tokens de acesso para APIs da Web protegidas. GA
UWP MSAL.NET Microsoft.Identity.Client Tutorial A biblioteca pode solicitar tokens de ID para entrar no usuário. A biblioteca pode solicitar tokens de acesso para APIs da Web protegidas. GA
WPF MSAL.NET Microsoft.Identity.Client Tutorial A biblioteca pode solicitar tokens de ID para entrar no usuário. A biblioteca pode solicitar tokens de acesso para APIs da Web protegidas. GA

1 Os Termos de Licença Universal para Serviços Online aplicam-se às bibliotecas na Pré-visualização Pública.

Aplicação cliente pública

Do ponto de vista do código, as aplicações de ambiente de trabalho são aplicações cliente públicas. A configuração será um pouco diferente dependendo se você usa autenticação interativa ou não.

Você precisará criar e manipular MSAL.NET IPublicClientApplication.

IPublicClientApplication

Exclusivamente por código

O código a seguir instancia um aplicativo cliente público e entra em usuários na nuvem pública do Microsoft Azure com uma conta corporativa ou de estudante ou uma conta pessoal da Microsoft.

IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
    .Build();

Se você pretende usar autenticação interativa ou fluxo de código de dispositivo, como visto anteriormente, use o .WithRedirectUri modificador.

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .Build();

Utilizar os ficheiros de configuração

O código a seguir instancia um aplicativo cliente público a partir de um objeto de configuração, que pode ser preenchido programaticamente ou lido a partir de um arquivo de configuração.

PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
        .WithDefaultRedirectUri()
        .Build();

Configuração mais elaborada

Você pode elaborar a construção do aplicativo adicionando vários modificadores. Por exemplo, se você quiser que seu aplicativo seja um aplicativo multilocatário em uma nuvem nacional, como o governo dos EUA mostrado aqui, você pode escrever:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithDefaultRedirectUri()
        .WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
                         AadAuthorityAudience.AzureAdMultipleOrgs)
        .Build();

MSAL.NET também contém um modificador para os Serviços de Federação do Ative Directory 2019:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithAdfsAuthority("https://consoso.com/adfs")
        .Build();

Finalmente, se você quiser adquirir tokens para um locatário B2C do Azure Ative Directory (Azure AD), especifique seu locatário conforme mostrado no seguinte trecho de código:

IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
        .WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
        .Build();

Mais informações

Para saber mais sobre como configurar um aplicativo de área de trabalho MSAL.NET:

Exemplo completo com opções de configuração

Imagine um aplicativo de console .NET que tenha o seguinte appsettings.json arquivo de configuração:

{
  "Authentication": {
    "AzureCloudInstance": "AzurePublic",
    "AadAuthorityAudience": "AzureAdMultipleOrgs",
    "ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
  },

  "WebAPI": {
    "MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
  }
}

Você tem pouco código para ler neste arquivo usando o arquivo . Estrutura de configuração fornecida pela NET:

public class SampleConfiguration
{
 /// <summary>
 /// Authentication options
 /// </summary>
 public PublicClientApplicationOptions PublicClientApplicationOptions { get; set; }

 /// <summary>
 /// Base URL for Microsoft Graph (it varies depending on whether the application runs
 /// in Microsoft Azure public clouds or national or sovereign clouds)
 /// </summary>
 public string MicrosoftGraphBaseEndpoint { get; set; }

 /// <summary>
 /// Reads the configuration from a JSON file
 /// </summary>
 /// <param name="path">Path to the configuration json file</param>
 /// <returns>SampleConfiguration as read from the json file</returns>
 public static SampleConfiguration ReadFromJsonFile(string path)
 {
  // .NET configuration
  IConfigurationRoot Configuration;
  var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile(path);
  Configuration = builder.Build();

  // Read the auth and graph endpoint configuration
  SampleConfiguration config = new SampleConfiguration()
  {
   PublicClientApplicationOptions = new PublicClientApplicationOptions()
  };
  Configuration.Bind("Authentication", config.PublicClientApplicationOptions);
  config.MicrosoftGraphBaseEndpoint =
  Configuration.GetValue<string>("WebAPI:MicrosoftGraphBaseEndpoint");
  return config;
 }
}

Agora, para criar seu aplicativo, escreva o seguinte código:

SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
           .WithDefaultRedirectUri()
           .Build();

Antes da chamada para o .Build() método, você pode substituir sua configuração por chamadas para .WithXXX métodos, como visto anteriormente.

Próximos passos

Passe para o próximo artigo neste cenário, Adquirir um token para o aplicativo da área de trabalho.