MSAL.js kullanarak istemci uygulamalarını başlatma
Bu makalede, JavaScript (MSAL.js) için Microsoft Kimlik Doğrulama Kitaplığı'nı bir kullanıcı aracısı uygulaması örneğiyle başlatma işlemi açıklanmaktadır.
Kullanıcı aracısı uygulaması, istemci kodunun web tarayıcısı gibi bir kullanıcı aracısında yürütüldiği bir genel istemci uygulaması biçimidir. Tarayıcı bağlamı açık bir şekilde erişilebilir olduğundan, bunlar gibi istemciler gizli dizileri depolamaz.
İstemci uygulama türleri ve uygulama yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için bkz. MSAL'da genel ve gizli istemci uygulamaları.
Önkoşullar
Bir uygulamayı başlatmadan önce, uygulamanızla Microsoft kimlik platformu arasında güven ilişkisi kurarak uygulamayı Microsoft Entra yönetim merkezine kaydetmeniz gerekir.
Uygulamanızı kaydettikten sonra, Microsoft Entra yönetim merkezinde bulunabilecek aşağıdaki değerlerin bir kısmına veya tümüne ihtiyacınız olacaktır.
Değer | Zorunlu | Açıklama |
---|---|---|
Uygulama (istemci) kimliği | Zorunlu | uygulamanızı Microsoft kimlik platformu içinde benzersiz olarak tanımlayan bir GUID. |
Yetkili | İsteğe bağlı | Uygulamanızın kimlik sağlayıcısı URL'si (örnek) ve oturum açma hedef kitlesi . Örnek ve oturum açma hedef kitlesi, birleştirilirken yetkiliyi oluşturur. |
Dizin (kiracı) kimliği | İsteğe bağlı | Yalnızca kuruluşunuz için bir iş kolu uygulaması oluşturuyorsanız (genellikle tek kiracılı uygulama olarak adlandırılır) Dizin (kiracı) kimliğini belirtin. |
Yeniden yönlendirme URI'si | İsteğe bağlı | Bir web uygulaması oluşturuyorsanız, redirectUri kimlik sağlayıcısının (Microsoft kimlik platformu) verilen güvenlik belirteçlerini nereye döndüreceği belirtir. |
MSAL.js 2.x uygulamalarını başlatma
Bir Configuration nesnesiyle PublicClientApplication örneği oluşturarak MSAL.js kimlik doğrulama bağlamını başlatın. Gerekli en düşük yapılandırma özelliği, Microsoft Entra yönetim merkezindeki uygulama kaydının Genel Bakış sayfasında Uygulama (istemci) Kimliği olarak gösterilen uygulamanın özelliğidirclientID
.
Aşağıda örnek bir yapılandırma nesnesi ve örneği verilmiştir PublicClientApplication
:
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.com/Enter_the_Tenant_Info_Here",
knownAuthorities: [],
redirectUri: "https://localhost:{port}/redirect",
postLogoutRedirectUri: "https://localhost:{port}/redirect",
navigateToLoginRequestUrl: true,
},
cache: {
cacheLocation: "sessionStorage",
storeAuthStateInCookie: false,
},
system: {
loggerOptions: {
loggerCallback: (
level: LogLevel,
message: string,
containsPii: boolean
): void => {
if (containsPii) {
return;
}
switch (level) {
case LogLevel.Error:
console.error(message);
return;
case LogLevel.Info:
console.info(message);
return;
case LogLevel.Verbose:
console.debug(message);
return;
case LogLevel.Warning:
console.warn(message);
return;
}
},
piiLoggingEnabled: false,
},
windowHashTimeout: 60000,
iframeHashTimeout: 6000,
loadFrameTimeout: 0,
},
};
// Create an instance of PublicClientApplication
const msalInstance = new PublicClientApplication(msalConfig);
// Handle the redirect flows
msalInstance
.handleRedirectPromise()
.then((tokenResponse) => {
// Handle redirect response
})
.catch((error) => {
// Handle redirect error
});
handleRedirectPromise
Uygulama yeniden yönlendirme akışları kullandığında handleRedirectPromise'i çağırın. Yeniden yönlendirme akışları kullanılırken, handleRedirectPromise
her sayfa yükünde çalıştırılmalıdır.
Sözden üç sonuç elde edilir:
.then
çağrılır vetokenResponse
gerçektir: Uygulama başarılı olan bir yeniden yönlendirme işleminden geri dönüyor..then
çağrılır vetokenResponse
hatalıdır (null
): Uygulama yeniden yönlendirme işleminden döndürülmiyor..catch
çağrılır: Uygulama yeniden yönlendirme işleminden geri dönüyor ve bir hata oluştu.
MSAL.js 1.x uygulamalarını başlatma
Bir yapılandırma nesnesiyle UserAgentApplication örneği oluşturarak MSAL 1.x kimlik doğrulama bağlamını başlatın. Gerekli en düşük yapılandırma özelliği, Microsoft Entra yönetim merkezindeki uygulama kaydının Genel Bakış sayfasında Uygulama (istemci) Kimliği olarak gösterilen uygulamanızın özelliğidirclientID
.
1.2.x veya önceki MSAL.js yeniden yönlendirme akışlarına (loginRedirect ve acquireTokenRedirect) sahip kimlik doğrulama yöntemleri için, yöntemi aracılığıyla handleRedirectCallback()
başarılı veya hata için bir geri çağırmayı açıkça kaydetmeniz gerekir. Yeniden yönlendirme akışları açılır pencere deneyimine sahip yöntemler gibi vaatler döndürmediğinden, geri çağırmanın açıkça kaydedilmesi MSAL.js 1.2.x ve önceki sürümlerde gereklidir. Geri çağırmanın kaydedilmesi, MSAL.js sürüm 1.3.x ve sonraki sürümlerde isteğe bağlıdır .
// Configuration object constructed
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
},
};
// Create UserAgentApplication instance
const msalInstance = new UserAgentApplication(msalConfig);
function authCallback(error, response) {
// Handle redirect response
}
// Register a redirect callback for Success or Error (when using redirect methods)
// **REQUIRED** in MSAL.js 1.2.x and earlier
// **OPTIONAL** in MSAL.js 1.3.x and later
msalInstance.handleRedirectCallback(authCallback);
Tek örnek ve yapılandırma
Hem MSAL.js 1.x hem de 2.x, tek bir kimlik doğrulama bağlamını temsil etmek için sırasıyla veya PublicClientApplication
öğesinin UserAgentApplication
tek bir örneğine ve yapılandırmasına sahip olacak şekilde tasarlanmıştır.
Birden çok veya PublicClientApplication
örneğiUserAgentApplication
, tarayıcıda çakışan önbellek girişlerine ve davranışlara neden olabileceğinden önerilmez.
Sonraki adımlar
GitHub'da MSAL.js 2.x kod örneği, Configuration nesnesiyle PublicClientApplication örneğini gösterir: