Sdílet prostřednictvím


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

platí pro: zelený kruh se symbolem bílé zaškrtnuté značky. pracovníci bílý kruh se šedým symbolem X.externí nájemníci (další informace)

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 k získání tokenů vracejí AuthenticationResult. U asynchronních metod Task<AuthenticationResult> vrátí hodnotu.

V MSAL.NET zveřejňuje AuthenticationResult:

  • AccessToken pro webové rozhraní API k přístupu k prostředkům. 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čeno, že zůstane stabilní, a může být pro zdroj zašifrován. 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 ID tokeny.
  • 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, pro který byl vydán Scopes.
  • 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í.

Struktura rozhraní IAccount

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á reprezentace identifikátoru GUID, což je ID uživatele, který vlastní účet v nájemci.
Identifier Jedinečný identifikátor účtu. Identifier je zřetězením ObjectId 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é nebudou 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, například login.microsoftonline.com. Tato vlastnost nahrazuje vlastnost IdentityProvider ale na rozdíl od IUser zahrnuje pouze informace o cloudovém prostředí, zatímco IUser také obsahovala informace o tenantovi. Hodnota je zde pouze hostitelem.
HomeAccountId ID 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 vrátí MSAL v result, 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řečtěte si další informace o vytvoření jednostránkové aplikace React (SPA), která přihlašuje uživatele v následující vícedílné sérii kurzů.

  • Prozkoumejte ukázky desktopového kódu na platformě Microsoft Identity