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 gibitauri://localhost
farklı 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-angular
msal-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.
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.
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.