Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
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:
-
AccessTokenaby 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. -
IdTokendla użytkownika. Ten parametr jest zakodowany w formacie JWT. Aby uzyskać więcej informacji, zobacz Tokeny identyfikatorów. -
ExpiresOninformuje o dacie i godzinie wygaśnięcia tokenu. -
TenantIdzawiera 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,AuthenticationResultzawiera 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 .
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 />