Desktopová aplikace, která volá webová rozhraní API: Volání webového rozhraní API

Teď, když máte token, můžete volat chráněné webové rozhraní API.

Volání webového rozhraní API

Vlastnosti AuthenticationResult v MSAL.NET

Metody získání tokenů vrátí AuthenticationResult. U asynchronních metod Task<AuthenticationResult> vrátí hodnotu.

V MSAL.NET AuthenticationResult zveřejňuje:

  • AccessToken pro přístup k prostředkům webového rozhraní API. Tento parametr je řetězec, obvykle kódovaný jako Base-64 JWT. Klient by nikdy neměl hledat uvnitř přístupového tokenu. Formát není zaručený, že zůstane stabilní a může být pro prostředek zašifrovaný. Psaní kódu, který závisí na obsahu přístupového tokenu na klientovi, je jedním z největších zdrojů chyb a přerušení logiky klienta. Další informace najdete v tématu Přístupové tokeny.
  • IdToken pro uživatele. Tento parametr je kódovaný JWT. Další informace najdete v tématu Tokeny ID.
  • ExpiresOn udává datum a čas vypršení platnosti tokenu.
  • TenantId obsahuje tenanta, ve kterém byl uživatel nalezen. Pro uživatele typu host ve scénářích Microsoft Entra B2B je ID tenanta typu host, nikoli jedinečný tenant. Při doručení tokenu pro uživatele AuthenticationResult obsahuje také informace o tomto uživateli. V případě důvěrných toků klientů, u kterých jsou tokeny požadovány bez uživatele pro aplikaci, mají tyto informace o uživateli hodnotu null.
  • Token Scopes , pro který byl vydán.
  • Jedinečné ID uživatele.

IAccount

MSAL.NET definuje pojem účtu prostřednictvím IAccount rozhraní. Tato změna způsobující chybu poskytuje správnou sémantiku. Stejný uživatel může mít několik účtů v různých adresářích Microsoft Entra. Také MSAL.NET poskytuje lepší informace v případě scénářů hosta, protože jsou k dispozici informace o domovském účtu. Následující diagram znázorňuje strukturu IAccount rozhraní.

IAccount interface structure

Třída AccountId identifikuje účet v konkrétním tenantovi s vlastnostmi zobrazenými v následující tabulce.

Vlastnost Popis
TenantId Řetězcové vyjádření identifikátoru GUID, což je ID tenanta, ve kterém se účet nachází.
ObjectId Řetězcové vyjádření identifikátoru GUID, což je ID uživatele, který vlastní účet v tenantovi.
Identifier Jedinečný identifikátor účtu. Identifier je zřetězení ObjectId čárkou a TenantId oddělené čárkou. Nejsou kódované v base 64.

Rozhraní IAccount představuje informace o jednom účtu. Stejný uživatel může být přítomný v různých tenantech, což znamená, že uživatel může mít více účtů. Její členové jsou zobrazeni v následující tabulce.

Vlastnost Popis
Username Řetězec, který obsahuje zobrazenou hodnotu ve formátu UserPrincipalName (UPN), například john.doe@contoso.com. Tento řetězec může mít hodnotu null, na rozdíl od HomeAccountId a HomeAccountId.Identifier, který nebude null. Tato vlastnost nahrazuje DisplayableId vlastnost IUser v předchozích verzích MSAL.NET.
Environment Řetězec, který obsahuje zprostředkovatele identity pro tento účet, login.microsoftonline.comnapříklad . Tato vlastnost nahrazuje IdentityProvider vlastnost kromě IdentityProvider cloudového IUserprostředí také informace o tenantovi. V této části je hodnota pouze hostitelem.
HomeAccountId ID účtu domovského účtu uživatele. Tato vlastnost jednoznačně identifikuje uživatele napříč tenanty Microsoft Entra.

Použití tokenu k volání chráněného rozhraní API

Jakmile AuthenticationResult msAL resultvrátí, přidejte ji do autorizační hlavičky HTTP před voláním pro přístup k chráněnému webovému rozhraní API.

httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);

// Call the web API.
HttpResponseMessage response = await _httpClient.GetAsync(apiUri);
...
}

Další kroky

Přechod na další článek v tomto scénáři– Přechod do produkčního prostředí