Udostępnij przez


Aplikacja desktopowa, która wywołuje webowe API: wywoływanie webowego API

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru, który wskazuje następującą zawartość dotyczy dzierżawców pracowników. Dzierżawcy pracowników (dowiedz się więcej)

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

Wywołaj API internetowe

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

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

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 po stronie klienta jest jednym z największych źródeł błędów i problemów z logiką 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 klienta, w którym został znaleziony użytkownik. W scenariuszach Microsoft Entra B2B dla użytkowników-gości identyfikator dzierżawy odnosi się do dzierżawy gościa, a nie dzierżawy głównej. 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 obecności użytkownika dla aplikacji, 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 bardziej szczegółowe informacje w przypadku scenariuszy gościa, ponieważ podano dane dotyczące konta domowego. 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.

Nieruchomość opis
TenantId Reprezentacja ciągu identyfikatora GUID, który jest identyfikatorem dzierżawcy, w którym znajduje się konto.
ObjectId Reprezentacja ciągu dla GUID, będącego identyfikatorem użytkownika właściciela konta w tenancie.
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. Członkowie są pokazani w poniższej tabeli.

Nieruchomość 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 właściwość DisplayableIdIUser 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 właściwość IdentityProvider w IUser, z tą różnicą, że IdentityProvider oprócz informacji o środowisku chmury zawiera również informacje o najemcy. W tym miejscu wartość jest jedynie gospodarzem.
HomeAccountId Identyfikator konta domowego użytkownika. Ta właściwość jednoznacznie identyfikuje użytkownika w tenantach Microsoft Entra.

Wywoływanie chronionego interfejsu API przy użyciu tokenu

Po zwróceniu AuthenticationResult przez bibliotekę MSAL w pliku result, dodaj go do nagłówka autoryzacji HTTP przed dokonaniem wywołania w celu uzyskania dostępu do chronionego interfejsu internetowego 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.

  • Eksploracja przykładowego kodu na komputer stacjonarny dla platformy tożsamości Microsoft< c0 />