MSAL.js ile istem davranışı

MSAL.js, oturum açma veya belirteç isteği yöntemlerinin bir parçası olarak bir istem değeri geçirilmesine izin verir. Uygulama senaryonuza bağlı olarak, istek nesnesinde istem parametresini ayarlayarak bir istek için Microsoft Entra istemi davranışını özelleştirebilirsiniz:

import { PublicClientApplication } from "@azure/msal-browser";

const pca = new PublicClientApplication({
    auth: {
        clientId: "YOUR_CLIENT_ID"
    }
});

const loginRequest = {
    scopes: ["user.read"],
    prompt: 'select_account',
}

pca.loginPopup(loginRequest)
    .then(response => {
        // do something with the response
    })
    .catch(error => {
        // handle errors
    });

Desteklenen istem değerleri

Microsoft kimlik platformu kimlik doğrulaması yaparken aşağıdaki istem değerleri kullanılabilir:

Parametre Davranış
login Kullanıcıyı bu istekte kimlik bilgilerini girmeye zorlar ve çoklu oturum açmayı olumsuzlar.
none Kullanıcıya etkileşimli bir istem sunulmamasını sağlar. İstek, çoklu oturum açma kullanılarak sessizce tamamlanamazsa, Microsoft kimlik platformu bir login_required veya interaction_required hatası döndürür.
consent Kullanıcı oturum açtığında OAuth onayı iletişim kutusunu tetikler ve kullanıcıdan uygulamaya izin vermesini ister.
select_account Oturumdaki tüm hesapları listeleyen bir hesap seçimi deneyimi veya tamamen farklı bir hesap seçme seçeneği sağlayarak çoklu oturum açmayı kesintiye uğratır.
create Dış kullanıcıların hesap oluşturmasına olanak sağlayan bir kaydolma iletişim kutusu tetikler. Daha fazla bilgi için bkz. Self servis kaydolma

MSAL.js desteklenmeyen istem değerleri için bir invalid_prompt hata oluşturur:

invalid_prompt_value: Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest Given value: my_custom_prompt

Varsayılan istem değerleri

MSAL.js'nin kullandığı varsayılan istem değerleri aşağıda gösterilmiştir:

MSAL.js yöntemi Varsayılan istem İzin verilen istemler
loginPopup Yok Tümü
loginRedirect Yok Tümü
ssoSilent none Yok (yoksayıldı)
acquireTokenPopup Yok Tümü
acquireTokenRedirect Yok Tümü
acquireTokenSilent none Yok (yoksayıldı)

Dekont

İstemin protokol düzeyinde bir parametre olduğunu ve istenen kimlik doğrulama davranışını kimlik sağlayıcısına işaret ettiğini unutmayın. MSAL.js davranışını etkilemez ve MSAL.js hizmetinin nihai olarak isteği nasıl işleyeceğini denetlemez. Çoğu durumda, Microsoft Entra Id isteği yerine getirmeye çalışır. Bu mümkün değilse, bir hata yanıtı döndürebilir veya verilen istem değerini tamamen yoksayabilir.

prompt=none ile etkileşimli istekler

Genellikle, sessiz bir istekte bulunmanız gerektiğinde, sessiz bir MSAL.js yöntemi (, ) kullanın ve etkileşimli bir yöntemle (ssoSilentloginPopup, loginRedirectacquireTokenSilent, , acquireTokenPopupacquireTokenRedirect) login_required veya interaction_required hataları işleyin.

Ancak bazı durumlarda istem değeri none , sessiz kimlik doğrulaması gerçekleştirmek için etkileşimli bir MSAL.js yöntemiyle birlikte kullanılabilir. Örneğin, bazı tarayıcılardaki üçüncü taraf tanımlama bilgisi kısıtlamaları nedeniyle, ssoSilent Microsoft Entra Id ile etkin bir kullanıcı oturumuna rağmen istekler başarısız olur. Çözüm olarak, istem değerini none gibi loginPopupetkileşimli bir isteğe geçirebilirsiniz. MSAL.js daha sonra Microsoft Entra Id için bir açılır pencere açar ve Microsoft Entra Id mevcut oturum tanımlama bilgisini kullanarak istem değerini kabul eder. Bu durumda kullanıcı kısa bir açılır pencere görür ancak kimlik bilgisi girişi istenmez.

Sonraki adımlar