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.
Questo articolo descrive l'inizializzazione di applicazioni client pubbliche e client riservate usando il Libreria di Autenticazione Microsoft per .NET (MSAL.NET). Per altre informazioni sui tipi di applicazione client, vedere Applicazioni client pubbliche e client riservate.
Con MSAL.NET 3.x, il modo consigliato per creare un'istanza di un'applicazione consiste nell'usare i generatori di applicazioni: PublicClientApplicationBuilder e ConfidentialClientApplicationBuilder. Offrono un meccanismo potente per configurare l'applicazione dal codice, un file di configurazione o anche combinando entrambi gli approcci.
Prerequisiti
Prima di inizializzare un'applicazione, devi prima registrarla in modo che l'app possa essere integrata con il Microsoft Identity Platform. Per altre informazioni, vedere Avvio rapido: Registrare un'applicazione con il Microsoft Identity Platform. Dopo la registrazione, sono necessarie le informazioni seguenti, disponibili nella pagina di registrazione dell'app nel Interfaccia di amministrazione di Microsoft Entra.
- ID applicazione (client): stringa che rappresenta un GUID.
- ID della directory (tenant) - Fornisce funzionalità di gestione delle identità e degli accessi (IAM) relative alle applicazioni e alle risorse usate dalla tua organizzazione. Consente di specificare se si sta sviluppando un'applicazione aziendale esclusivamente per la propria organizzazione (detta anche applicazione a tenant singolo).
- L'URL del provider di identità (denominato instance) e il pubblico di accesso dell'applicazione. Questi due parametri sono noti collettivamente come autorità.
-
Credenziali client : che possono assumere la forma di un segreto dell'applicazione (stringa privata client) o di un certificato (di tipo
X509Certificate2) se si tratta di un'app client riservata. - Per le app Web e talvolta per le app client pubbliche (in particolare quando l'app deve usare un broker), è necessario impostare l'URI di reindirizzamento in cui il provider di identità ricontatterà l'applicazione con i token di sicurezza.
Inizializzazione delle applicazioni
Esistono molti modi diversi per istanziare applicazioni client.
Inizializzazione di un'applicazione client pubblica dal codice
Il codice seguente crea un'istanza di un'applicazione client pubblica, consentendo agli utenti di accedere nel cloud pubblico di Microsoft Azure con account Microsoft aziendali, scolastici o personali.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Inizializzazione di un'applicazione client riservata dal codice
Allo stesso modo, il codice seguente crea un'istanza di un'applicazione riservata (un'app Web che si trova in https://myapp.azurewebsites.net) che gestisce i token degli utenti nel cloud pubblico Microsoft Azure, con gli account aziendali e dell'istituto di istruzione o i relativi account Microsoft personali. L'applicazione viene identificata con il provider di identità condividendo un segreto client:
string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithRedirectUri(redirectUri )
.Build();
Nell'ambiente di produzione, tuttavia, i certificati sono consigliati perché sono più sicuri rispetto ai segreti client. Possono essere creati e caricati nel Interfaccia di amministrazione di Microsoft Entra. Il codice sarà quindi il seguente:
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithCertificate(certificate)
.WithRedirectUri(redirectUri )
.Build();
Inizializzazione di un'applicazione client pubblica dalle opzioni di configurazione
Il codice seguente istanzia un'applicazione client pubblica a partire da un oggetto di configurazione, che può essere popolato programmaticamente o letto da un file di configurazione:
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.Build();
Inizializzazione di un'applicazione client riservata dalle opzioni di configurazione
Lo stesso tipo di modello si applica alle applicazioni client riservate. È anche possibile aggiungere altri parametri usando .WithXXX modificatori. Questo esempio usa .WithCertificate.
ConfidentialClientApplicationOptions options = GetOptions(); // your own method
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithCertificate(certificate)
.Build();
Modificatori del builder
Nei frammenti di codice che usano i generatori di applicazioni, molti .With metodi possono essere applicati come modificatori (ad esempio, .WithCertificate e .WithRedirectUri).
Modificatori comuni alle applicazioni client pubbliche e riservate
I modificatori che è possibile impostare in un client pubblico o in un generatore di applicazioni client riservate sono disponibili nella AbstractApplicationBuilder<T> classe . I diversi metodi sono disponibili nella Azure SDK per .NET documentazione.
Modificatori specifici delle applicazioni Xamarin.iOS
I modificatori che è possibile impostare in un generatore di applicazioni client pubblico in Xamarin.iOS sono:
| Modificatore | Description |
|---|---|
.WithIosKeychainSecurityGroup() |
solo Xamarin.iOS: imposta il gruppo di sicurezza della catena di chiavi iOS (per la persistenza della cache). |
Modificatori specifici delle applicazioni client riservate
I modificatori specifici di un generatore di applicazioni client riservato sono disponibili nella ConfidentialClientApplicationBuilder classe . I diversi metodi sono disponibili nella Azure SDK per .NET documentazione.
I modificatori come .WithCertificate(X509Certificate2 certificate) e .WithClientSecret(string clientSecret) si escludono a vicenda. Se si specificano entrambi, MSAL genera un'eccezione significativa.
Esempio di utilizzo dei modificatori
Supponiamo che l'applicazione sia un'applicazione aziendale, destinata esclusivamente alla propria organizzazione. È quindi possibile scrivere:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, tenantId)
.Build();
La programmazione per i cloud nazionali è stata semplificata, quindi se si vuole che l'applicazione sia un'applicazione multi-tenant in un cloud nazionale, è possibile scrivere, ad esempio:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzureUsGovernment, AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
È anche disponibile un override per ADFS (MSAL.NET supporta solo ADFS 2019 o versione successiva):
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
Infine, se sei uno sviluppatore di AD B2C Azure, puoi specificare il tenant come segue:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
Vedere anche
Documentazione di riferimento delle API
Codice sorgente della libreria
Passaggi successivi
Dopo aver inizializzato l'applicazione client, l'attività successiva consiste nell'aggiungere il supporto per l'accesso utente, l'accesso autorizzato all'API o entrambi.
La documentazione dello scenario dell'applicazione fornisce indicazioni per l'accesso di un utente e l'acquisizione di un token di accesso per accedere a un'API per conto dell'utente: