Udostępnij za pośrednictwem


Aplikacja klasyczna, która wywołuje internetowe interfejsy API: wywoływanie internetowego interfejsu API

Teraz, gdy masz token, możesz wywołać chroniony internetowy interfejs API.

Wywoływanie interfejsu API sieci Web

Właściwości AuthenticationResult w MSAL.NET

Metody uzyskiwania tokenów zwracają wartość AuthenticationResult. W przypadku metod asynchronicznych Task<AuthenticationResult> zwraca wartość .

W MSAL.NET AuthenticationResult uwidacznia:

  • AccessToken aby internetowy interfejs API uzyskiwał dostęp do zasobów. Ten parametr jest ciągiem, zwykle zakodowanym w formacie Base-64 JWT. Klient nigdy nie powinien szukać wewnątrz tokenu dostępu. Format nie jest gwarantowany, aby zachować stabilność i można go zaszyfrować dla zasobu. Pisanie kodu zależnego od zawartości tokenu dostępu od klienta jest jednym z największych źródeł błędów i podziałów logiki klienta. Aby uzyskać więcej informacji, zobacz Tokeny dostępu.
  • IdToken dla użytkownika. Ten parametr jest zakodowany w formacie JWT. Aby uzyskać więcej informacji, zobacz Tokeny identyfikatorów.
  • ExpiresOn informuje o dacie i godzinie wygaśnięcia tokenu.
  • TenantId zawiera dzierżawę, w której został znaleziony użytkownik. W przypadku użytkowników-gości w scenariuszach firmy Microsoft Entra B2B identyfikator dzierżawy jest dzierżawą gościa, a nie unikatową dzierżawą. Gdy token jest dostarczany dla użytkownika, AuthenticationResult zawiera również informacje o tym użytkowniku. W przypadku poufnych przepływów klienta, w których tokeny są żądane bez użytkownika dla aplikacji, te informacje o użytkowniku mają wartość null.
  • Element Scopes , dla którego wystawiono token.
  • Unikatowy identyfikator użytkownika.

IAccount

MSAL.NET definiuje pojęcie konta za pośrednictwem interfejsu IAccount . Ta zmiana powodująca niezgodność zapewnia właściwą semantyka. Ten sam użytkownik może mieć kilka kont w różnych katalogach firmy Microsoft Entra. Ponadto MSAL.NET zapewnia lepsze informacje w przypadku scenariuszy gościa, ponieważ podano informacje o koncie głównym. Na poniższym diagramie przedstawiono strukturę interfejsu IAccount .

Struktura interfejsu IAccount

Klasa AccountId identyfikuje konto w określonej dzierżawie z właściwościami przedstawionymi w poniższej tabeli.

Właściwości opis
TenantId Reprezentacja ciągu dla identyfikatora GUID, który jest identyfikatorem dzierżawy, w której znajduje się konto.
ObjectId Reprezentacja ciągu dla identyfikatora GUID, który jest identyfikatorem użytkownika, który jest właścicielem konta w dzierżawie.
Identifier Unikatowy identyfikator konta. Identifier to łączenie ObjectId i TenantId oddzielane przecinkami. Nie są one zakodowane w formacie Base 64.

Interfejs IAccount reprezentuje informacje o pojedynczym koncie. Ten sam użytkownik może być obecny w różnych dzierżawach, co oznacza, że użytkownik może mieć wiele kont. Jego elementy członkowskie są wyświetlane w poniższej tabeli.

Właściwości opis
Username Ciąg zawierający wartość wyświetlaną w formacie UserPrincipalName (UPN), na przykład john.doe@contoso.com. Ten ciąg może mieć wartość null, w przeciwieństwie do parametrów HomeAccountId i HomeAccountId.Identifier, które nie będą mieć wartości null. Ta właściwość zastępuje DisplayableId właściwość IUser w poprzednich wersjach MSAL.NET.
Environment Ciąg zawierający dostawcę tożsamości dla tego konta, na przykład login.microsoftonline.com. Ta właściwość zastępuje IdentityProvider właściwość IUser, z tą różnicą, że IdentityProvider oprócz środowiska chmury zawiera również informacje o dzierżawie. W tym miejscu wartość jest tylko hostem.
HomeAccountId Identyfikator konta głównego użytkownika. Ta właściwość jednoznacznie identyfikuje użytkownika w dzierżawach firmy Microsoft Entra.

Wywoływanie chronionego interfejsu API przy użyciu tokenu

Po AuthenticationResult powrocie przez bibliotekę MSAL w resultpliku dodaj go do nagłówka autoryzacji HTTP przed wywołaniem w celu uzyskania dostępu do chronionego internetowego interfejsu API.

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

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

Następne kroki

  • Dowiedz się więcej, tworząc aplikację jednostronicową React (SPA), która loguje użytkowników w poniższej serii samouczków wieloczęściowych.

  • Eksplorowanie przykładów kodu klasycznego Platforma tożsamości Microsoft