Megosztás a következőn keresztül:


Webes API-kat hívó asztali alkalmazás: Webes API meghívása

Most, hogy rendelkezik egy jogkivonattal, meghívhat egy védett webes API-t.

Webes API-hívás

AuthenticationResult tulajdonságok a MSAL.NET

A jogkivonatok beszerzésének módszerei adnak vissza AuthenticationResult. Aszinkron metódusok Task<AuthenticationResult> esetén a visszatérési érték.

A MSAL.NET AuthenticationResult a következőt teszi elérhetővé:

  • AccessToken a webes API számára az erőforrások eléréséhez. Ez a paraméter egy sztring, általában egy Base-64 kódolású JWT. Az ügyfélnek soha nem szabad belenéznie a hozzáférési jogkivonatba. A formátum nem garantáltan stabil marad, és titkosítható az erőforrás számára. Az ügyfél hozzáférési jogkivonat-tartalmától függő kód írása az egyik legnagyobb hibaforrás és ügyféllogika-törés. További információ: Access-jogkivonatok.
  • IdToken a felhasználó számára. Ez a paraméter egy kódolt JWT. További információ: azonosító jogkivonatok.
  • ExpiresOn a jogkivonat lejáratának dátumát és időpontját jelzi.
  • TenantId tartalmazza azt a bérlőt, amelyben a felhasználó megtalálható. A Microsoft Entra B2B-forgatókönyvekben a vendégfelhasználók esetében a bérlőazonosító nem az egyedi bérlő, hanem a vendégbérlelő. Amikor a jogkivonatot egy felhasználónak kézbesíti, AuthenticationResult a felhasználóról is tartalmaz információkat. Az olyan bizalmas ügyfélfolyamatok esetében, amelyeknél a jogkivonatokat az alkalmazás felhasználója nélkül kérik le, ez a felhasználói információ null értékű.
  • Az Scopes a jogkivonat, amelyhez a jogkivonatot kiadták.
  • A felhasználó egyedi azonosítója.

IAccount

MSAL.NET határozza meg a fiók fogalmát a IAccount felületen keresztül. Ez a kompatibilitástörő változás biztosítja a megfelelő szemantikát. Ugyanaz a felhasználó több fiókkal is rendelkezhet, különböző Microsoft Entra-címtárakban. Emellett a MSAL.NET a vendégforgatókönyvek esetében is jobb információkat nyújt, mivel az otthoni fiók adatai meg lesznek adva. Az alábbi ábra a felület szerkezetét IAccount mutatja be.

IAccount-felület felépítése

Az AccountId osztály azonosít egy fiókot egy adott bérlőben az alábbi táblázatban látható tulajdonságokkal.

Tulajdonság Leírás
TenantId A GUID sztring-ábrázolása, amely annak a bérlőnek az azonosítója, ahol a fiók található.
ObjectId A GUID sztring-ábrázolása, amely annak a felhasználónak az azonosítója, aki a bérlőben lévő fiókot birtokolja.
Identifier A fiók egyedi azonosítója. Identifier vesszővel elválasztott összefűzés ObjectId TenantId . Ezek nem base 64 kódolású.

Az IAccount interfész egyetlen fiók adatait jeleníti meg. Ugyanaz a felhasználó különböző bérlőkben is jelen lehet, ami azt jelenti, hogy egy felhasználó több fiókkal is rendelkezhet. A tagok az alábbi táblázatban láthatók.

Tulajdonság Leírás
Username Olyan sztring, amely a megjeleníthető értéket tartalmazza UserPrincipalName (UPN) formátumban, például john.doe@contoso.com. Ez a sztring null értékű lehet, ellentétben a HomeAccountId és a HomeAccountId.Identifier értékkel, amely nem lesz null. Ez a tulajdonság a DisplayableId MSAL.NET korábbi verzióinak tulajdonságát IUser váltja fel.
Environment Egy sztring, amely a fiók identitásszolgáltatója, például login.microsoftonline.com. Ez a tulajdonság a felhőkörnyezeten kívül a IdentityProvider IUserIdentityProvider bérlőre vonatkozó információkat is lecseréli. Itt az érték csak a gazdagép.
HomeAccountId A felhasználó otthoni fiókjának fiókazonosítója. Ez a tulajdonság egyedileg azonosítja a felhasználót a Microsoft Entra-bérlők között.

Védett API meghívása a jogkivonat használatával

Miután AuthenticationResult az MSAL resultvisszaadta a címet, adja hozzá a HTTP-engedélyezési fejléchez, mielőtt meghívja a védett webes API eléréséhez.

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

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

Következő lépések