Aracılığıyla paylaş


Web API'lerini çağıran masaüstü uygulaması: Web API'sini çağırma

Artık bir belirteciniz olduğuna göre korumalı bir web API'sini çağırabilirsiniz.

Web API çağrısı

MSAL.NET authenticationResult özellikleri

Belirteçleri alma yöntemleri döndürür AuthenticationResult. Zaman uyumsuz yöntemler için Task<AuthenticationResult> döndürür.

MSAL.NET'da şunları AuthenticationResult kullanıma sunar:

  • AccessToken web API'sinin kaynaklara erişmesini sağlar. Bu parametre genellikle Base-64 kodlu JWT olan bir dizedir. İstemci hiçbir zaman erişim belirtecinin içine bakmamalıdır. Biçimin kararlı kalacağı garanti edilmez ve kaynak için şifrelenebilir. İstemcideki erişim belirteci içeriğine bağlı kod yazmak, en büyük hata ve istemci mantığı kesme kaynaklarından biridir. Daha fazla bilgi için bkz . Erişim belirteçleri.
  • IdToken kullanıcı için. Bu parametre kodlanmış bir JWT'dir. Daha fazla bilgi için bkz . Kimlik belirteçleri.
  • ExpiresOn belirtecin süresinin dolmasına ilişkin tarih ve saati bildirir.
  • TenantId kullanıcının bulunduğu kiracıyı içerir. Microsoft Entra B2B senaryolarındaki konuk kullanıcılar için kiracı kimliği benzersiz kiracı değil konuk kiracıdır. Belirteç bir kullanıcı için teslim edildiğinde, AuthenticationResult bu kullanıcı hakkındaki bilgileri de içerir. Uygulama için kullanıcı olmadan belirteçlerin istendiği gizli istemci akışları için bu kullanıcı bilgileri null değeridir.
  • Scopes Belirtecin verildiği.
  • Kullanıcının benzersiz kimliği.

IAccount

MSAL.NET, arabirim aracılığıyla IAccount bir hesabın tanımını tanımlar. Bu hataya neden olan değişiklik doğru semantiği sağlar. Aynı kullanıcının farklı Microsoft Entra dizinlerinde birkaç hesabı olabilir. Ayrıca MSAL.NET, ev hesabı bilgileri sağlandığından konuk senaryolarında daha iyi bilgiler sağlar. Aşağıdaki diyagramda arabirimin yapısı gösterilmektedir IAccount .

IAccount arabirim yapısı

sınıfı, AccountId belirli bir kiracıdaki bir hesabı aşağıdaki tabloda gösterilen özelliklerle tanımlar.

Özellik Açıklama
TenantId Hesabın bulunduğu kiracının kimliği olan GUID için dize gösterimi.
ObjectId Kiracıda hesabın sahibi olan kullanıcının kimliği olan GUID için dize gösterimi.
Identifier Hesabın benzersiz tanımlayıcısı. Identifiervirgülle ayrılmış ve TenantId öğesinin birleştirilmiş olmasıdırObjectId. Temel 64 kodlanmış değiller.

Arabirim, IAccount tek bir hesap hakkındaki bilgileri temsil eder. Aynı kullanıcı farklı kiracılarda mevcut olabilir; başka bir deyişle kullanıcının birden çok hesabı olabilir. Üyeleri aşağıdaki tabloda gösterilmiştir.

Özellik Açıklama
Username UserPrincipalName (UPN) biçiminde görüntülenebilir değeri içeren bir dize, örneğin, john.doe@contoso.com. Bu dize, HomeAccountId ve HomeAccountId.Identifier'ın aksine null olabilir ve null olmaz. Bu özellik, önceki MSAL.NET sürümlerinde özelliğinin yerini alır DisplayableId IUser .
Environment Bu hesabın kimlik sağlayıcısını içeren bir dize, örneğin, login.microsoftonline.com. Bu özellik, bulut ortamına IdentityProvider IUserek olarak kiracıyla ilgili bilgilere sahip olması IdentityProvider dışında özelliğinin yerini alır. Burada değer yalnızca konaktır.
HomeAccountId Kullanıcının giriş hesabının hesap kimliği. Bu özellik, kullanıcıyı Microsoft Entra kiracıları genelinde benzersiz olarak tanımlar.

Korumalı API'yi çağırmak için belirteci kullanma

içinde MSAL resulttarafından döndürüldükten sonraAuthenticationResult, korumalı web API'sine erişim çağrısında bulunmadan önce bunu HTTP yetkilendirme üst bilgisine ekleyin.

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

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

Sonraki adımlar