Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Inquilini della forza lavoro (altre informazioni)
Questo articolo contiene istruzioni per configurare il codice con le coordinate dell'applicazione.
Prerequisiti
- Registrare una nuova app nell'interfaccia di amministrazione di Microsoft Entra, configurata solo per gli account in questa directory organizzativa. Per altri dettagli, vedere Registrare un'applicazione . Registrare i valori seguenti dalla pagina Panoramica dell'applicazione per usarli in un secondo momento:
- ID applicazione (cliente)
- ID della directory (cliente)
Aggiungere un URI di reindirizzamento della piattaforma
Per specificare il tipo di app per la registrazione, seguire questa procedura:
- In Gestisci selezionare Autenticazione>Aggiungi una piattaforma>Applicazioni per dispositivi mobili e desktop
- A seconda del metodo di autenticazione in uso, scegliere una delle opzioni seguenti:
- Per le app che usano browser incorporati, usare il valore esatto:
https://login.microsoftonline.com/common/oauth2/nativeclient - Per le app che usano browser di sistema, usare il valore esatto:
http://localhost - Applicazioni Objective-C o Swift per macOS:
msauth.<your.app.bundle.id>://auth. - app Node.js Electron:
msal{Your_Application/Client_Id}://auth
- Per le app che usano browser incorporati, usare il valore esatto:
Annotazioni
Per le app Web Authentication Manager (WAM), non è necessario alcun URI di reindirizzamento in MSAL.
Abilitare il flusso dei client pubblici
Per distinguere il flusso del codice del dispositivo, l'autenticazione integrata di Windows e un nome utente e una password da un'applicazione client riservata usando un flusso di credenziali client usato nelle applicazioni daemon, nessuno dei quali richiede un URI di reindirizzamento, configurarlo come applicazione client pubblica. Per ottenere questa configurazione
Per identificare l'app come client pubblico, seguire questa procedura:
In Gestisci selezionare Autenticazione.
In Impostazioni avanzateper Consenti flussi client pubbliciselezionare Sì.
Seleziona Salva per salvare le modifiche.
Librerie Microsoft che supportano le app desktop
Le librerie Microsoft seguenti supportano le app desktop:
| Linguaggio di programmazione / framework | Progetto su GitHub |
Pacchetto | Ottenendo avviata |
Accedere utenti | Accedere alle API Web | Disponibile a livello generale (GA) o Anteprima pubblica1 |
|---|---|---|---|---|---|---|
| Elettrone | MSAL Node.js | msal-node | — |
|
|
Anteprima pubblica |
| Giava | MSAL4J | msal4j | — |
|
|
Disponibilità generale |
| macOS (Swift/Obj-C) | MSAL per iOS e macOS | MSAL | Guida |
|
|
Disponibilità generale |
| UWP (Piattaforma Universale Windows) | MSAL.NET | Microsoft.Identity.Client | Guida |
|
|
Disponibilità generale |
| WPF (Windows Presentation Foundation) | MSAL.NET | Microsoft.Identity.Client | Guida |
|
|
Disponibilità generale |
1 Lecondizioni di licenza universali per i servizi online si applicano alle librerie in anteprima pubblica.
Applicazione client pubblica
Dal punto di vista del codice, le applicazioni desktop sono applicazioni client pubbliche. La configurazione sarà leggermente diversa in base all'uso o meno dell'autenticazione interattiva.
Sarà necessario compilare e modificare MSAL.NET IPublicClientApplication.
Esclusivamente per codice
Il codice seguente crea un'istanza di un'applicazione client pubblica e permette agli utenti di accedere al cloud pubblico di Microsoft Azure con un account aziendale o scolastico o un account Microsoft personale.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Se si intende usare l'autenticazione interattiva o il flusso del codice del dispositivo, come illustrato in precedenza, usare il .WithRedirectUri modificatore.
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.Build();
Usare i file di configurazione
Il codice seguente instanzia un'applicazione client pubblica da un oggetto di configurazione, che può essere riempito a livello di codice o letto da un file di configurazione.
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithDefaultRedirectUri()
.Build();
Configurazione più elaborata
È possibile elaborare la compilazione dell'applicazione aggiungendo un certo numero di modificatori. Ad esempio, se si vuole che l'applicazione sia un'applicazione multi-tenant in un cloud nazionale, ad esempio us government mostrata di seguito, è possibile scrivere:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
MSAL.NET contiene anche un modificatore per Active Directory Federation Services 2019:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
Infine, se si vogliono acquisire i token per un tenant di Azure Active Directory (Azure AD) B2C, specificare il tenant come illustrato nel frammento di codice seguente:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
Altre informazioni
Per altre informazioni su come configurare un'applicazione desktop MSAL.NET:
- Per un elenco di tutti i modificatori disponibili in
PublicClientApplicationBuilder, vedere la documentazione di riferimento PublicClientApplicationBuilder. - Per una descrizione di tutte le opzioni esposte in
PublicClientApplicationOptions, vedere PublicClientApplicationOptions nella documentazione di riferimento.
Esempio completo con le opzioni di configurazione
Si immagini un'applicazione console .NET con il file di configurazione seguente appsettings.json :
{
"Authentication": {
"AzureCloudInstance": "AzurePublic",
"AadAuthorityAudience": "AzureAdMultipleOrgs",
"ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
},
"WebAPI": {
"MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
}
}
Il codice da leggere in questo file è molto poco grazie al framework di configurazione fornito da .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;
}
}
A questo punto, per creare l'applicazione, scrivere il codice seguente:
SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
.WithDefaultRedirectUri()
.Build();
Prima della chiamata al metodo, è possibile eseguire l'override della .Build() configurazione con le chiamate ai .WithXXX metodi, come illustrato in precedenza.
Passaggi successivi
Passare all'articolo successivo in questo scenario, Acquisire un token per l'applicazione desktop.