Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Inquilinos da força de trabalho (saiba mais)
Este artigo contém instruções para ajudá-lo a configurar o código com as coordenadas do aplicativo.
Pré-requisitos
- Registre um novo aplicativo no centro de administração do Microsoft Entra, configurado para Contas somente neste diretório organizacional. Consulte Registar uma candidatura para obter mais detalhes. Registre os seguintes valores na página Visão geral do aplicativo para uso posterior:
- ID da aplicação (cliente)
- ID do diretório (inquilino)
Adicionar um URI de redirecionamento de plataforma
Para especificar o tipo de aplicativo para o registro do aplicativo, siga estas etapas:
- Em Gerir, selecione Autenticação>Adicionar uma plataforma>Aplicações móveis e de ambiente de trabalho
- Dependendo do método de autenticação que estiver a utilizar, escolha uma das seguintes opções:
- Para aplicativos que usam navegadores incorporados, use o valor exato:
https://login.microsoftonline.com/common/oauth2/nativeclient - Para aplicativos que usam navegadores de sistema, use o valor exato:
http://localhost - Objective-C ou aplicativos Swift para macOS:
msauth.<your.app.bundle.id>://auth. - Aplicações Node.js do Electron:
msal{Your_Application/Client_Id}://auth
- Para aplicativos que usam navegadores incorporados, use o valor exato:
Observação
Para aplicativos do Web Authentication Manager (WAM), nenhum URI de redirecionamento é necessário no MSAL.
Habilitar o fluxo público de clientes
Para distinguir o fluxo de código de dispositivo, a autenticação integrada do Windows e um nome de usuário e uma senha de um aplicativo cliente confidencial usando um fluxo de credenciais de cliente usado em aplicativos daemon, nenhum dos quais requer um URI de redirecionamento, configure-o como um aplicativo cliente público. Para conseguir esta configuração
Para identificar seu aplicativo como um cliente público, siga estas etapas:
Em Gerir, selecione Autenticação.
Em Configurações avançadas, para Permitir fluxos de clientes públicos, selecione Sim.
Selecione Guardar para guardar as alterações.
Bibliotecas da Microsoft que suportam aplicações de ambiente de trabalho
As seguintes bibliotecas da Microsoft suportam aplicações de ambiente de trabalho:
| Linguagem / estrutura | Projeto em GitHub |
Pacote | Como obter começar |
Iniciar sessão de utilizadores | Aceder a APIs Web | Geralmente disponível (GA) ou Pré-visualização pública1 |
|---|---|---|---|---|---|---|
| Elétron | MSAL Node.js | msal-node | — | A biblioteca pode solicitar tokens de identificação para o início de sessão do usuário. |
|
Pré-visualização pública |
| Java | MSAL4J | MSAL4J | — | A biblioteca pode solicitar tokens de identificação para o início de sessão do usuário. |
|
disponibilidade geral |
| macOS (Swift/OBJ-C) | MSAL para iOS e macOS | MSAL | Tutoriais | A biblioteca pode solicitar tokens de identificação para o início de sessão do usuário. |
|
disponibilidade geral |
| UWP | MSAL.NET | Microsoft.Identity.Client | Tutoriais | A biblioteca pode solicitar tokens de identificação para o início de sessão do usuário. |
|
disponibilidade geral |
| WPF | MSAL.NET | Microsoft.Identity.Client | Tutoriais | A biblioteca pode solicitar tokens de identificação para o início de sessão do usuário. |
|
disponibilidade geral |
1Os Termos de Licença Universal para Serviços Online aplicam-se às bibliotecas em 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 uma aplicação cliente pública e efetua login dos utilizadores na nuvem pública do Microsoft Azure com uma conta de trabalho ou escolar, 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 Active 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 ficheiro, utilizando o framework de configuração fornecido 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 a aplicação de ambiente de trabalho.