Skrivbordsapp som anropar webb-API:er: Anropa ett webb-API
Nu när du har en token kan du anropa ett skyddat webb-API.
Anropa en webb-API
AuthenticationResult-egenskaper i MSAL.NET
Metoderna för att hämta token returnerar AuthenticationResult
. För asynkrona metoder Task<AuthenticationResult>
returnerar.
I MSAL.NET AuthenticationResult
exponeras:
AccessToken
för att webb-API:et ska få åtkomst till resurser. Den här parametern är en sträng, vanligtvis en Base-64-kodad JWT. Klienten bör aldrig titta i åtkomsttoken. Formatet är inte garanterat stabilt och kan krypteras för resursen. Att skriva kod som är beroende av åtkomsttokeninnehåll på klienten är en av de största felkällorna och klientlogikbrytningarna. Mer information finns i Åtkomsttoken.IdToken
för användaren. Den här parametern är en kodad JWT. Mer information finns i ID-token.ExpiresOn
anger datum och tid när token upphör att gälla.TenantId
innehåller klientorganisationen där användaren hittades. För gästanvändare i Microsoft Entra B2B-scenarier är klientorganisations-ID:t gästklientorganisationen, inte den unika klientorganisationen. När token levereras för en användare innehållerAuthenticationResult
även information om den här användaren. För konfidentiella klientflöden där token begärs utan användare för programmet är den här användarinformationen null.- För
Scopes
vilken token utfärdades. - Det unika ID:t för användaren.
IAccount
MSAL.NET definierar begreppet konto via IAccount
gränssnittet. Den här icke-bakåtkompatibla ändringen ger rätt semantik. Samma användare kan ha flera konton i olika Microsoft Entra-kataloger. Dessutom ger MSAL.NET bättre information när det gäller gästscenarier eftersom hemkontoinformation tillhandahålls.
Följande diagram visar gränssnittets IAccount
struktur.
Klassen AccountId
identifierar ett konto i en specifik klientorganisation med de egenskaper som visas i följande tabell.
Property | beskrivning |
---|---|
TenantId |
En strängrepresentation för ett GUID, vilket är ID:t för klientorganisationen där kontot finns. |
ObjectId |
En strängrepresentation för ett GUID, vilket är ID för den användare som äger kontot i klientorganisationen. |
Identifier |
Unik identifierare för kontot. Identifier är sammanlänkningen av ObjectId och TenantId avgränsad med ett kommatecken. De är inte base 64-kodade. |
Gränssnittet IAccount
representerar information om ett enda konto. Samma användare kan finnas i olika klientorganisationer, vilket innebär att en användare kan ha flera konton. Dess medlemmar visas i följande tabell.
Property | beskrivning |
---|---|
Username |
En sträng som innehåller det visningsbara värdet i UPN-format (UserPrincipalName), till exempel john.doe@contoso.com. Den här strängen kan vara null, till skillnad från HomeAccountId och HomeAccountId.Identifier, som inte är null. Den här egenskapen ersätter DisplayableId egenskapen IUser för i tidigare versioner av MSAL.NET. |
Environment |
En sträng som innehåller identitetsprovidern för det här kontot, till exempel login.microsoftonline.com . Den här egenskapen ersätter IdentityProvider egenskapen IUser , förutom den som IdentityProvider också hade information om klientorganisationen, utöver molnmiljön. Här är värdet bara värden. |
HomeAccountId |
Konto-ID för hemkontot för användaren. Den här egenskapen identifierar användaren unikt i Microsoft Entra-klienter. |
Använda token för att anropa ett skyddat API
När AuthenticationResult
har returnerats av MSAL i lägger du till det i result
HTTP-auktoriseringshuvudet innan du anropar för att komma åt det skyddade webb-API:et.
httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
// Call the web API.
HttpResponseMessage response = await _httpClient.GetAsync(apiUri);
...
Nästa steg
Läs mer genom att skapa ett React-program med en sida (SPA) som loggar in användare i följande självstudieserie i flera delar.
Utforska Microsofts identitetsplattform exempel på skrivbordskod