Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Erişim belirteci almadan önce , uygulama nesnesini nasıl başlatabileceğinizi anladığınızdan emin olun. Erişim belirteçleri ile kaynaklar arasındaki ilişkiyi anlamak da önemlidir.
MSAL'de, uygulamanızın çağırması gereken API'ler için, kitaplık tarafından sağlanan acquireToken* yöntemleri kullanarak erişim belirteçleri alabilirsiniz. Yöntemler, acquireToken*OAuth 2.0 yetkilendirme kodu akışıyla belirteç almayla ilgili 2 adımı soyutlar:
- Microsoft Entra ID almak için istekte bulunma
authorization code - kullanıcının onay verdiği kapsamları içeren bir erişim belirteci almak için bu kodu kullanın
Erişim Belirteci Alma
Etkileşim Türü Seçme
acquireTokenRedirect ile acquireTokenPopup arasındaki farklardan emin değilseniz buraya bakın.
İstek nesnesini hazırlama
API'lere acquireToken* bir istek nesnesi geçirmeniz gerekir. Bu nesne, istekte farklı parametreler kullanmanıza olanak tanır. İstek nesnesi parametreleri hakkında daha fazla bilgi için buraya bakın. Tüm acquireToken* çağrılar için kapsamlar gereklidir.
Önbelleği denetleme
MSAL, kapsamlar, kaynak ve yetkili gibi belirli parametrelere dayalı belirteçleri depolamak için bir önbellek kullanır ve gerektiğinde belirteci önbellekten alır. Ayrıca bu belirteçlerin süresi dolduğunda sessiz yenileme gerçekleştirebilir. MSAL, bu işlevselliği acquireTokenSilent yöntemi aracılığıyla sunar.
veya ssoSilent API'lerinden login* biriyle oturum açtıktan sonra önbellek bir dizi kimlik, erişim ve yenileme belirteci içerir. Her erişim belirteci gerektiğinde çağrı acquireTokenSilent yapmanız gerekir ve bu başarısız olursa bunun yerine etkileşimli bir API çağırın.
acquireTokenSilent önbellekte geçerli bir belirteç arar ve süresi dolmak üzereyse veya yoksa, önbelleğe alınmış yenileme belirtecini kullanarak sizin için otomatik olarak yenilemeyi dener.
acquireTokenSilent kullanma hakkında daha fazla bilgi edinebilirsiniz.
Popup
var request = {
scopes: ["User.Read"],
};
msalInstance.acquireTokenSilent(request).then(tokenResponse => {
// Do something with the tokenResponse
}).catch(async (error) => {
if (error instanceof InteractionRequiredAuthError) {
// fallback to interaction when silent call fails
return msalInstance.acquireTokenPopup(request);
}
// handle other errors
})
Redirect
var request = {
scopes: ["User.Read"],
};
msalInstance.acquireTokenSilent(request).then(tokenResponse => {
// Do something with the tokenResponse
}).catch(error => {
if (error instanceof InteractionRequiredAuthError) {
// fallback to interaction when silent call fails
return msalInstance.acquireTokenRedirect(request)
}
// handle other errors
});
Erişim Belirtecini Kullanma
Erişim belirtecini aldıktan sonra, aşağıda gösterildiği gibi, belirteci aldığınız kaynağa yapılan istekte bunu Authorization üst bilgisine bearer belirteci olarak eklemeniz gerekir:
var headers = new Headers();
var bearer = "Bearer " + tokenResponse.accessToken;
headers.append("Authorization", bearer);
var options = {
method: "GET",
headers: headers
};
var graphEndpoint = "https://graph.microsoft.com/v1.0/me";
fetch(graphEndpoint, options)
.then(resp => {
//do something with response
});
MSAL belirteci edinmeye yönelik en iyi uygulamalar
Hatalar, performans isabetleri ve kullanılabilirlik sorunlarını önlemek için MSAL ile belirteçleri almaya yönelik en iyi yöntemler aşağıda belirtilmiştir. Bazı senaryolar bunlara özel durumlar sağlayabilir.
Tek bir PublicClientApplication örneği kullanma
Uygulama başına bir PublicClientApplication örnek oluşturun ve uygulamanız genelinde aynı örneği kullanın. Bu, MSAL'nin herhangi bir zamanda gerçekleştirdiği işlemler için tek bir gerçek kaynağı olmasını sağlar (bkz. MSAL olayları) ve farklı uygulama nesnelerinin paralel etkileşimli istekler veya olası önbellek çakışmaları yapma olasılığını ortadan kaldırır; bu da uygulamaları bozabilir, performansı azaltabilir veya kullanıcı deneyimini engelleyebilir.
Her zaman sözlerin çözümlenmesi için bekleyin
Tüm MSAL acquireToken* API'leri ile login* API'leri asenkron işlemler gerçekleştirir ve Promise nesneleri döndürür. Kullanıcı bilgilerini işleme, korumalı API çağırma veya diğer MSAL API'lerini çağırma gibi kimlik doğrulama durumuna veya belirteçlere bağlı diğer görevleri gerçekleştirmeden önce her zaman bu vaatlerin çözülmesini beklemelisiniz.
Önce sessiz isteği, ardından etkileşimli isteği deneyin
Belirteç isterken her zaman önce acquireTokenSilent kullanın; gerekirse etkileşimli belirteç edinimine geri dönün (örneğin, InteractionRequiredAuthError fırlatıldığında).
Eşzamanlı sessiz isteklere izin verilir. Eşzamanlı olarak iki veya daha fazla sessiz istek yapılırsa, yalnızca bir tane ağa gider (gerekirse), ancak bu istekler aynı istek parametreleri (örneğin kapsamlar) için olduğu sürece tümü yanıtı alır.
Eşzamanlı etkileşimli isteklere izin verilmez . eşzamanlı olarak iki veya daha fazla etkileşimli istek yapılırsa, yalnızca ilki bir etkileşim başlatırken, geri kalanı interaction_in_progress hatayla başarısız olur. Uygulamalarınızda bu hatayla karşılaşmamak için bu hataya ve olası çözümlere alışmanızı öneririz.
Kaynak başına bir belirteç isteğinde bulun
Aynı anda yalnızca bir kaynak için erişim belirteçleri isteyebilirsiniz (bkz . kaynaklar ve kapsamlar). Gerekirse, istek nesnesindeki parametresini kullanarak extraScopesToConsent birden fazla kaynağın gerektirdiği kapsamlar (izinler) için kullanıcı onayı isteyebilirsiniz. Önceden onaylanan kapsamlar için erişim belirteçleri sessizce edinilebilir.