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
.
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 result
pliku 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