Aracılığıyla paylaş


Internet Explorer ve Microsoft Edge tarayıcılarında bilinen sorunlar (MSAL.js)

Güvenlik bölgelerinden kaynaklanan sorunlar

Microsoft Edge tarayıcı sürümünün 40.15063.0.0 sürümüne güncelleştirildiğinden beri ve Microsoft Edge'de kimlik doğrulamasıyla ilgili birden çok sorun raporumuz vardı. Bunları izliyoruz ve Microsoft Edge ekibine haber verdik. Microsoft Edge bir çözüm üzerinde çalışırken, sık karşılaşılan sorunların ve uygulanabilecek olası geçici çözümlerin açıklaması aşağıdadır.

Neden

Bu sorunların çoğunun nedeni aşağıdaki gibidir. Oturum depolama alanı ve yerel depolama alanı, Microsoft Edge tarayıcısında güvenlik bölgelerine göre bölümlenir. Microsoft Edge'in bu özel sürümünde, uygulama bölgeler arasında yeniden yönlendirildiğinde oturum depolama alanı ve yerel depolama temizlenir. Özel olarak, oturum depolama alanı normal tarayıcı gezintisinde temizlenir ve hem oturum hem de yerel depolama, tarayıcının InPrivate modunda temizlenir. MSAL.js, oturum depolama alanına belirli bir durumu kaydeder ve kimlik doğrulama akışları sırasında bu durumu denetlemeye dayanır. Oturum depolama alanı temizlendiğinde bu durum kaybolur ve bu nedenle bozuk deneyimlerle sonuçlanır.

Sorunlar

  • Kimlik doğrulaması sırasında sonsuz yeniden yönlendirme döngüleri ve sayfa yeniden yüklemeleri. Kullanıcılar Microsoft Edge'de uygulamada oturum açtıklarında, Microsoft Entra oturum açma sayfasından geri yönlendirilir ve yinelenen sayfa yeniden yüklemelerine neden olan sonsuz bir yeniden yönlendirme döngüsünde takılırlar. Buna genellikle oturum depolamada bir invalid_state hata eşlik edilir.

  • Sonsuz alma belirteci döngüleri ve AADSTS50058 hatası. Microsoft Edge'de çalışan bir uygulama bir kaynak için belirteç almaya çalıştığında, uygulama belirteç alma çağrısının sonsuz döngüsünde takılabilir. Ağ izlemenizdeki Microsoft Entra Kimliği'nden aşağıdaki hata döndürülür:

    Error :login_required; Error description:AADSTS50058: A silent sign-in request was sent but no user is signed in. The cookies used to represent the user's session were not sent in the request to Azure AD. This can happen if the user is using Internet Explorer or Edge, and the web app sending the silent sign-in request is in different IE security zone than the Azure AD endpoint (login.microsoftonline.com)

  • Açılır pencere kapatılmıyor veya kimlik doğrulaması için açılır pencere aracılığıyla oturum açma kullanılırken takılıyor. Microsoft Edge veya Internet Explorer'da (InPrivate) açılan pencerede kimlik doğrulaması yaparken, kimlik bilgilerini girdikten ve oturum açtıktan sonra, gezintiye güvenlik bölgeleri arasında birden çok etki alanı dahil edilirse, açılan pencerenin tutamacını kaybettiğinden açılır pencere kapatılmaz MSAL.js .

  • Tauri ön ekli yeniden yönlendirme URL'si kullanılarak oturum açılamıyor. Yeniden yönlendirme URI'leri için desteklenen tek şemalar üretim uygulamaları ve http://localhost yerel geliştirme içindirhttps:. Mobil veya masaüstü uygulaması için gibi tauri://localhostfarklı bir düzen kullanmaya çalışırsanız aşağıdaki hata iletisi görüntülenir. Bu hata, SPA'nın arka ucu tasarımının bir sonucu olarak ortaya çıkar.

    AADSTS90023: Cross-origin token redemption is permitted only for the 'Single-Page Application' client-type or 'Native' client-type with origin registered in AllowedOriginForNativeAppCorsRequestInOAuthToken allow list.

Güncelleştirme: MSAL.js 0.2.3'te kullanılabilen düzeltme

MSAL.js 0.2.3'te kimlik doğrulama yeniden yönlendirme döngüsü sorunlarına yönelik düzeltmeler yayımlandı. Bu düzeltmeden yararlanmak için MSAL.js yapılandırmasında bayrağını storeAuthStateInCookie etkinleştirin. Varsayılan olarak bu bayrak false olarak ayarlanır.

storeAuthStateInCookie Bayrak etkinleştirildiğinde, MSAL.js kimlik doğrulama akışlarının doğrulanması için gereken istek durumunu depolamak için tarayıcı tanımlama bilgilerini kullanır.

Not

Bu düzeltme ve sarmalayıcıları için msal-angularmsal-angularjs henüz kullanılamıyor. Bu düzeltme açılır pencerelerle ilgili sorunu gidermez.

Diğer geçici çözümler

Bu geçici çözümleri benimsemeden önce sorununuzun yalnızca Microsoft Edge tarayıcısının belirli bir sürümünde oluştuğunu ve diğer tarayıcılarda çalıştığından emin olun.

  1. Bu sorunları çözmek için ilk adım olarak, uygulama etki alanının ve kimlik doğrulama akışının yeniden yönlendirmelerine dahil olan diğer sitelerin tarayıcının güvenlik ayarlarına güvenilen siteler olarak eklendiğinden emin olun. Bu, yeniden yönlendirmelerin aynı güvenlik bölgesine ait olmasını sağlar. Bunu yapmak için aşağıdaki adımları izleyin:

    • Internet Explorer'ı açın ve sağ üst köşedeki ayarlara (dişli simgesi) tıklayın
    • İnternet Seçenekleri'ni seçin
    • Güvenlik sekmesini seçin
    • Güvenilen Siteler seçeneğinin altında siteler düğmesine tıklayın ve açılan iletişim kutusuna URL'leri ekleyin.
  2. Daha önce belirtildiği gibi, normal gezinti sırasında yalnızca oturum depolama alanı temizlendiğinden, MSAL.js yerel depolamayı kullanacak şekilde yapılandırabilirsiniz. Bu, MSAL başlatılırken yapılandırma parametresi olarak cacheLocation ayarlanabilir.

Hem oturum hem de yerel depolama alanı temizlendiğinden, bu geçici çözümlerin InPrivate gözatma sorununu çözmeyeceğini unutmayın.

Açılır pencere engelleyicileri nedeniyle sorunlar

Çok faktörlü kimlik doğrulaması sırasında ikinci bir açılır pencere oluştuğunda açılan pencerelerin veya Microsoft Edge'de engellendiği durumlar vardır. Tarayıcıda açılır pencereye bir kez veya her zaman izin vermek için bir uyarı alırsınız. İzin vermeyi seçerseniz, tarayıcı açılır pencereyi otomatik olarak açar ve bunun için bir null tutamaç döndürür. Sonuç olarak, kitaplığın pencere için tanıtıcısı yoktur ve açılır pencereyi kapatmanın bir yolu yoktur. Açılır pencere otomatik olarak açılmadığı için açılır pencerelere izin vermeniz istendiğinde Chrome'da aynı sorun gerçekleşmez.

Geçici bir çözüm olarak, geliştiricilerin bu sorunu önlemek için uygulamalarını kullanmaya başlamadan önce uygulamasındaki açılır pencerelere ve Microsoft Edge'e izin vermeleri gerekir.

Sonraki adımlar

Internet Explorer'da MSAL.js kullanma hakkında daha fazla bilgi edinin.