Application de bureau qui appelle des API web : Appeler une API web
Maintenant que vous avez un jeton, vous pouvez appeler une API web protégée.
Appeler une API web
Propriétés AuthenticationResult dans MSAL.NET
Les méthodes d'acquisition de jetons renvoient AuthenticationResult
. Pour les méthodes asynchrones, Task<AuthenticationResult>
retourne.
Dans MSAL.NET, AuthenticationResult
expose :
AccessToken
pour que l’API web accède aux ressources. Ce paramètre correspond à une chaîne, généralement un JWT encodé en base 64. Le client ne doit jamais regarder dans le jeton d’accès. La stabilité du format n’est pas garantie et ce dernier peut être chiffré pour la ressource. L’écriture de code qui dépend du contenu des jetons d’accès sur le client constitue l’une des sources d’erreurs et des ruptures de logique client les plus importantes. Pour plus d’informations, consultez Jetons d'accès.IdToken
pour l'utilisateur. Ce paramètre est un jeton JWT encodé. Pour plus d'informations, consultez Jetons d’ID.ExpiresOn
exprime la date et l'heure d’expiration du jeton.TenantId
contient le locataire dans lequel l’utilisateur a été trouvé. Pour les utilisateurs invités dans les scénarios Microsoft Entra B2B, l’ID de tenant est le tenant invité et non le tenant unique. Lorsque le jeton est remis pour un utilisateur,AuthenticationResult
contient également les informations sur cet utilisateur. Pour les flux de clients confidentiels où les jetons sont demandés sans aucun utilisateur pour l’application, ces informations sur l’utilisateur sont manquantes ou inconnues.- Les
Scopes
pour lesquelles le jeton a été émis. - L’ID unique de l’utilisateur.
IAccount
MSAL.NET définit la notion de compte via l’interface IAccount
. Ce changement cassant fournit la sémantique qui convient. Un même utilisateur peut disposer de plusieurs comptes, dans des répertoires Microsoft Entra différents. De plus, MSAL.NET fournit de meilleures informations dans les scénarios d’invité, car des informations de compte d’accueil sont fournies.
Le schéma suivant présente la structure de l’interface IAccount
.
La classe AccountId
identifie un compte dans un locataire spécifique avec les propriétés indiquées dans le tableau suivant.
Propriété | Description |
---|---|
TenantId |
Une représentation de chaîne pour un identificateur global unique, qui correspond à l’ID du locataire où réside le compte. |
ObjectId |
Une représentation de chaîne pour un identificateur global unique, qui correspond à l’ID de l’utilisateur qui possède le compte dans le locataire. |
Identifier |
Identificateur unique pour ce compte. Identifier est la concaténation de ObjectId et de TenantId séparés par une virgule. Ils ne sont pas encodés base64. |
L’interface IAccount
représente les informations d’un seul compte. Le même utilisateur peut être présent dans différents locataires, ce qui signifie qu'un utilisateur peut disposer de plusieurs comptes. Ses membres sont disponibles dans le tableau suivant.
Propriété | Description |
---|---|
Username |
Une chaîne contenant la valeur affichée au format UserPrincipalName (UPN), par exemple, john.doe@contoso.com. Cette chaîne peut être Null, alors que HomeAccountId et HomeAccountId.Identifier ne le sont pas. Cette propriété remplace la propriété DisplayableId de IUser dans les versions précédentes de MSAL.NET. |
Environment |
Une chaine contenant le fournisseur d’identité de ce compte, par exemple, login.microsoftonline.com . Cette propriété remplace la propriété IdentityProvider de IUser , sauf que IdentityProvider disposait aussi des informations sur le locataire (en plus de l’environnement cloud). Ici, la valeur n’est que l’hôte. |
HomeAccountId |
L'ID du compte d’accueil de l’utilisateur. Cette propriété identifie de façon unique l’utilisateur entre les tenants Microsoft Entra. |
Utiliser le jeton pour appeler une API protégée
Après renvoi de AuthenticationResult
par MSAL dans result
, ajoutez-le à l’en-tête d’autorisation HTTP avant de passer l’appel pour accéder à l’API web protégée.
httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
// Call the web API.
HttpResponseMessage response = await _httpClient.GetAsync(apiUri);
...
Étapes suivantes
Découvrez plus d’informations en créant une application monopage (SPA) React qui connecte les utilisateurs dans cette série de tutoriels en plusieurs parties.
Explorer les exemples de code de bureau de la Plateforme d’identités Microsoft