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
.
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ı. Identifier virgü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 IUser ek 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 result
tarafı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
Aşağıdaki çok bölümlü öğretici serisinde kullanıcılara oturum açmanızı sağlayan bir React Tek sayfalı uygulama (SPA) oluşturarak daha fazla bilgi edinin.
Microsoft kimlik platformu masaüstü kod örneklerini keşfetme
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin