Application de bureau qui appelle des API web : Configuration de code
Maintenant que vous avez créé votre application, vous allez apprendre à configurer le code avec les coordonnées de l’application.
Bibliothèques Microsoft prenant en charge les applications de bureau
Les bibliothèques Microsoft suivantes prennent en charge les applications de bureau :
Langage/framework | Projet sur GitHub |
Package | Bien démarrer démarré |
Connexion des utilisateurs | Accès aux API web | Disponibilité générale ou Préversion publique1 |
---|---|---|---|---|---|---|
Electron | MSAL Node.js | msal-node | — | Préversion publique | ||
Java | MSAL4J | msal4j | — | GA | ||
macOS (Swift/Obj-C) | MSAL pour iOS et macOS | MSAL | Didacticiel | GA | ||
UWP | MSAL.NET | Microsoft.Identity.Client | Didacticiel | GA | ||
WPF | MSAL.NET | Microsoft.Identity.Client | Didacticiel | GA |
1Les termes du contrat de licence universelle pour les services en ligne s’appliquent aux bibliothèques en préversion publique.
Applications clientes publiques
Du point de vue du code, les applications de bureau sont des applications clientes publiques. La configuration est légèrement différente avec ou sans authentification interactive.
Vous devez créer et manipuler IPublicClientApplication
MSAL.NET.
Exclusivement par code
Le code suivant instancie une application cliente publique et connecte les utilisateurs dans le cloud public Microsoft Azure, avec un compte professionnel ou scolaire, ou un compte Microsoft personnel.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Si vous prévoyez d'utiliser l'authentification interactive ou le flux de code d'appareil, comme indiqué précédemment, utilisez le modificateur .WithRedirectUri
:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.Build();
Utiliser des fichiers de configuration
Le code suivant instancie une application cliente publique à partir d'un objet de configuration, qui pourrait être renseigné par programmation ou lu à partir d'un fichier config.
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithDefaultRedirectUri()
.Build();
Configuration plus élaborée
Vous pouvez développer la création d’une application en ajoutant un certain nombre de modificateurs. Par exemple, si vous souhaitez que votre application soit mutualisée dans un cloud national, tel que US Government comme illustré ici, vous pouvez écrire :
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
MSAL.NET contient également un modificateur pour les services de fédération Active Directory (AD FS) 2019 :
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
Enfin, si vous souhaitez acquérir des jetons pour un locataire Azure Active Directory (Azure AD) B2C, spécifiez votre client, comme indiqué dans l'extrait de code suivant :
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
En savoir plus
Pour en savoir plus sur la configuration d'une application de bureau MSAL.NET :
- Pour obtenir la liste de tous les modificateurs disponibles sur
PublicClientApplicationBuilder
, consultez PublicClientApplicationBuilder dans la documentation de référence. - Pour obtenir la description de toutes les options exposées dans
PublicClientApplicationOptions
, consultez PublicClientApplicationOptions dans la documentation de référence.
Exemple complet avec options de configuration
Imaginez une application console .NET disposant du fichier config appsettings.json
suivant :
{
"Authentication": {
"AzureCloudInstance": "AzurePublic",
"AadAuthorityAudience": "AzureAdMultipleOrgs",
"ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
},
"WebAPI": {
"MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
}
}
Vous avez peu de code à lire dans ce fichier via l'infrastructure de configuration .NET fournie :
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;
}
}
Pour créer votre application, écrivez le code suivant :
SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
.WithDefaultRedirectUri()
.Build();
Avant l'appel à la méthode .Build()
, vous pouvez remplacer votre configuration par des appels aux méthodes .WithXXX
, comme indiqué précédemment.
Étapes suivantes
Passez à l’article suivant de ce scénario, Acquérir un jeton pour l’application de bureau.