Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Locataires de main-d’œuvre (en savoir plus)
Cet article contient des instructions pour vous aider à configurer le code avec les coordonnées de l’application.
Prerequisites
- Inscrivez une nouvelle application dans le Centre d’administration Microsoft Entra, configurée pour les comptes dans cet annuaire organisationnel uniquement. Pour plus d’informations, reportez-vous à l'enregistrement d'une application. Enregistrez les valeurs suivantes à partir de la page Vue d’ensemble de l’application pour une utilisation ultérieure :
- ID d’application (client)
- ID de l’annuaire (locataire)
Ajouter un URI de redirection de plateforme
Pour spécifier votre type d’application à votre inscription d’application, procédez comme suit :
- Sous Gérer, sélectionnez Authentification>Ajouter une plateforme>mobile et des applications de bureau
- Selon la méthode d’authentification que vous utilisez, choisissez l’une des options suivantes :
- Pour les applications utilisant des navigateurs incorporés, utilisez la valeur exacte :
https://login.microsoftonline.com/common/oauth2/nativeclient - Pour les applications utilisant des navigateurs système, utilisez la valeur exacte :
http://localhost - applications Objective-C ou Swift pour macOS :
msauth.<your.app.bundle.id>://auth. - Applications Node.js Electron :
msal{Your_Application/Client_Id}://auth
- Pour les applications utilisant des navigateurs incorporés, utilisez la valeur exacte :
Note
Pour les applications du Gestionnaire d’authentification web (WAM), aucun URI de redirection n’est nécessaire dans MSAL.
Activer le flux de client public
Pour distinguer le flux de code d’appareil, l’authentification Windows intégrée et un nom d’utilisateur et un mot de passe d’une application cliente confidentielle à l’aide d’un flux d’informations d’identification client utilisé dans les applications démon, aucun d’entre eux ne nécessite d’URI de redirection, configurez-le en tant qu’application cliente publique. Pour obtenir cette configuration
Pour identifier votre application en tant que client public, procédez comme suit :
Sous Gérer, sélectionnez Authentification.
Sous Paramètres avancés, pour Autoriser les flux clients publics, sélectionnez Oui.
Cliquez sur Enregistrer pour enregistrer vos modifications.
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.