MSAL Angular v4'ten v5'e yükseltme

MSAL Angular v5, Angular 19'un en düşük sürümünü gerektirir ve Angular 15, 16, 17 ve 18 için desteği bırakır.

Tarayıcı desteği ve temel kitaplıktaki diğer önemli değişiklikler için lütfen @azure/msal-browser bakın.

Değişikliklerde uyum sorunları @azure/msal-angular@5

protectedResourceMap için katı eşleştirme

msal-angular v5'te, protectedResourceMap girdileri için URL desen eşleştirmesi varsayılan olarak katı eşleştirme semantiğini kullanır. Katı eşleştirme, desen metakarakterlerini harfi harfine değerlendirir, eşleşmeleri URL bileşeninin tamamına sabitler ve nokta ayırıcılarını aşmayan ana bilgisayar joker karakter kurallarını uygular. v4 yapılandırmanız daha gevşek eşleştirme davranışına dayalıysa, desenlerinizi protectedResourceMap katı eşleştirmeyle uyumlu olacak şekilde güncelleştirin veya eski davranışı geçici olarak korumak için strictMatching olarak ayarlayınfalse. Daha fazla ayrıntı için MSAL Interceptor belgelerine başvurun.

Warning

Bu değişiklik v5 ikincil yükseltmelerini de etkileyebilir. Katı eşleştirme ilk olarak benimsediğiniz v5 ikincil sürümünde (örneğin, 5.0.x) henüz varsayılan değilse, katı eşleştirmenin varsayılan olduğu sonraki bir v5 ikincil sürümüne (örneğin 5.1.x) yükseltmek belirteç ekini sessizce kesebilir. Birincil belirti aynıdır: 401 hatalarıstrictMatching açıkça yapılandırılmadığında artık bir çalışma zamanı uyarısı verilir, ancak eşleşme başarısızlığının kendisi sessiz kalır ve Authorization başlığı artık eklenmez.

Hızlı denetim listesi

  1. Anahtarlarınızı protectedResourceMap gözden geçirin. Joker karakterler veya alt yollar içermeyen yalnızca çıplak temel URL’lerden (örn. https://api.example.com) oluşan anahtarlar, artık bu URL’nin alt yollarına yönelik isteklerle eşleşmeyecektir. Bkz. yaygın hata desenleri.
  2. Anahtarları, tam yollar veya joker karakterler kullanacak şekilde güncelleyin. Her anahtar ya uygulamanızın istediği tam URL ile tam olarak eşleşmeli ya da alt yolları eşleştirmek için /* joker karakteri son ekini kullanmalıdır. Düzeltme seçeneklerine bakın.
  3. Anahtarlarınız çalışma zamanında dinamik olarak yükleniyorsa, strictMatching: false değerini geçici olarak güvenli varsayılan olarak ayarlayın. Bkz. Ortam temelli yapılandırmalar için yönergeler.

Ortama dayalı protectedResourceMap

Anahtarlarınız protectedResourceMap Angular environment dosyalarından geliyorsa, APP_INITIALIZER, JSON yapılandırması veya platformBrowserDynamic, geçiş sırasında güvenli bir varsayılan olarak ayarlayın strictMatching: false :

export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
  const protectedResourceMap = new Map<string, Array<string>>();
  protectedResourceMap.set(environment.apiConfig.uri, environment.apiConfig.scopes);

  return {
    interactionType: InteractionType.Redirect,
    protectedResourceMap,
    // TODO: Remove once protectedResourceMap keys are updated to use
    // exact paths or wildcard patterns (e.g. "https://api.example.com/*").
    strictMatching: false,
  };
}

Tüm anahtarlar tam yollara veya joker karakterlere geçirildikten sonra, daha katı ve daha güvenli eşleştirme davranışından yararlanmak için strictMatching: false öğesini kaldırın (veya true olarak ayarlayın). Daha fazla ayrıntı için bkz. ortam tabanlı yapılandırmalar için yönergeler .

logout() Kaldırıldı

logout() kaldırıldı. Bunun yerine logoutRedirect() veya logoutPopup() kullanın.

// BEFORE (v4)
this.authService.logout();

// AFTER (v5)
this.authService.logoutRedirect();
// or
this.authService.logoutPopup();

@azure/msal-angular@5 içindeki diğer değişiklikler

inject(TOKEN) söz dizimi

MSAL_INSTANCE, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG ve MSAL_BROADCAST_CONFIG, inject(TOKEN) söz dizimini desteklemek için artık dizeler yerine türlere çözümlenir. Bu değişiklik, açık yazma olmadan uygulamalarda TypeScript hatalarının bulunmasına neden olabilir.

handleRedirectObservable() Seçenekler

handleRedirectObservable() artık, @azure/msal-browser@5 içindeki yapılandırmadan taşınan navigateToLoginRequestUrl seçeneğini içeren isteğe bağlı bir HandleRedirectPromiseOptions nesnesini kabul eder. Daha fazla ayrıntı için yeniden yönlendirme belgelerine bakın.

// BEFORE (msal-browser v4 configuration)
const msalConfig = {
  auth: {
    clientId: 'your-client-id',
    navigateToLoginRequestUrl: false // This option has moved
  }
};

// AFTER (msal-angular v5)
this.authService.handleRedirectObservable({
  navigateToLoginRequestUrl: false
}).subscribe();

Note

Bir hash dizesinin doğrudan handleRedirectObservable(hash) öğesine geçirilmesi kullanımdan kaldırılmıştır. Bunun yerine options nesnesini kullanın: handleRedirectObservable({ hash: "#..." }).

Samples

Aşağıdaki geliştirici örnekleri artık kullanılabilir:

Geçerli MSAL Angular örneklerinin ve sunulan özelliklerin listesi için buraya bakın.