Initialiser des applications clientes
Avec MSAL.NET 3.x, la méthode recommandée pour instancier une application consiste à utiliser les générateurs d’applications : PublicClientApplicationBuilder
et ConfidentialClientApplicationBuilder
. Ils offrent un mécanisme puissant permettant de configurer l’application à partir du code, ou d’un fichier de configuration ou même en combinant ces deux approches.
Avant d’initialiser une application, vous devez d’abord l’inscrire afin que votre application puisse être intégrée à la plateforme d’identités Microsoft. Après l’inscription, vous aurez peut-être besoin des informations suivantes (que vous trouverez sur le Portail Azure) :
- ID d’application (client) : il s’agit d’une chaîne représentant un GUID.
- ID de répertoire (locataire) : fournit des fonctionnalités de gestion des identités et des accès (IAM) aux applications et ressources utilisées par votre organisation. Il peut spécifier si vous écrivez une application métier uniquement pour votre organisation (également nommée application à locataire unique).
- L’URL du fournisseur d’identité (appelé instance) et l’audience de connexion pour votre application. Ces deux paramètres représentent collectivement l’autorité.
- Informations d’identification du client : elles peuvent prendre la forme d’un secret d’application (chaîne secrète client) ou d’un certificat (de type
X509Certificate2
) s’il s’agit d’une application cliente confidentielle. - Pour les applications web et parfois pour les applications clientes publiques (en particulier lorsque votre application doit utiliser un répartiteur), vous devez définir l’URI de redirection auquel le fournisseur d’identité va recontacter votre application avec les jetons de sécurité.
Initialisation d’applications clientes publiques et confidentielles à partir du code
Le code suivant instancie une application cliente publique en connectant les utilisateurs dans le cloud public Microsoft Azure, avec leur compte professionnel et scolaire ou leur compte Microsoft personnel.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();
De la même manière, le code suivant instancie une application confidentielle (une application web se trouvant sur https://myapp.azurewebsites.net
) en gérant les jetons des utilisateurs du cloud public Microsoft Azure, avec leur compte professionnel et scolaire ou leur compte Microsoft personnel. L’application est identifiée par le fournisseur d’identité en partageant une clé secrète client :
string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithRedirectUri(redirectUri )
.Build();
Modificateurs de générateur
Dans les extraits de code à l’aide de générateurs d’applications, des méthodes .With
peuvent être appliquées en tant que modificateurs (par exemple, .WithAuthority
et .WithRedirectUri
).
Modificateur
.WithAuthority
: Le modificateur.WithAuthority
définit l’autorité par défaut de l’application sur une autorité Microsoft Entra, avec la possibilité de choisir le cloud Azure, l’audience et le locataire (ID de locataire ou nom de domaine), ou de fournir directement l’URI d’autorité.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId) .Build();
Modificateur
.WithRedirectUri
: le modificateur.WithRedirectUri
remplace l’URI de redirection par défaut.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(client_id) .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id) .WithRedirectUri("http://localhost") .Build();
Modificateurs communs aux applications clientes publiques et confidentielles
Le tableau ci-dessous liste certains des modificateurs que vous pouvez définir sur un client public ou confidentiel.
Modificateur | Description |
---|---|
.WithAuthority() |
Définit l’autorité par défaut de l’application sur une autorité Microsoft Entra, avec la possibilité de choisir le cloud Azure, l’audience et le locataire (ID de locataire ou nom de domaine), ou de fournir directement l’URI d’autorité. |
.WithTenantId(string tenantId) |
Remplace l’ID de locataire, ou la description du locataire. |
.WithClientId(string) |
Remplace l’ID client. |
.WithRedirectUri(string redirectUri) |
Remplace l’URI de redirection par défaut. Cela est utile pour les scénarios nécessitant un répartiteur. |
.WithComponent(string) |
Définit le nom de la bibliothèque à l’aide de MSAL.NET (pour des raisons de télémétrie). |
.WithDebugLoggingCallback() |
Si elle est appelée, l’application appelle Debug.Write en activant simplement les traces de débogage. |
.WithLogging() |
Si elle est appelée, l’application effectue un rappel à l’aide de traces de débogage. |
.WithTelemetry(TelemetryCallback telemetryCallback) |
Définit le délégué utilisé pour envoyer la télémétrie. |
Modificateurs spécifiques aux applications clientes confidentielles
Les modificateurs spécifiques à un générateur d’applications clientes confidentielles se trouvent dans la classe ConfidentialClientApplicationBuilder
. Vous trouverez les différentes méthodes dans la documentation du Kit de développement logiciel (SDK) Azure pour .NET.
Les modificateurs tels que .WithCertificate(X509Certificate2 certificate)
et .WithClientSecret(string clientSecret)
s’excluent mutuellement. Si vous fournissez les deux, MSAL génère une exception explicite.