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ó | — | Pré-visualização pública | ||
Java | MSAL4J | MSAL4J | — | GA | ||
macOS (Swift/OBJ-C) | MSAL para iOS e macOS | MSAL | Tutorial | GA | ||
UWP | MSAL.NET | Microsoft.Identity.Client | Tutorial | GA | ||
WPF | MSAL.NET | Microsoft.Identity.Client | Tutorial | 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
.
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:
- Para obter uma lista de todos os modificadores disponíveis no
PublicClientApplicationBuilder
, consulte a documentação de referência PublicClientApplicationBuilder. - Para obter uma descrição de todas as opções expostas no
PublicClientApplicationOptions
, consulte PublicClientApplicationOptions na documentação de referência.
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.