in src/services/msalAuthService.ts [20:51]
private async getMsalInstance(): Promise<msal.PublicClientApplication> {
if (this.msalInstance) {
return this.msalInstance;
}
const settings = await this.configService.getSettings();
const authorityUrl = (settings.authentication.authority || settings.authentication.azureAdInstance) + settings.authentication.tenantId;
const msalConfig: msal.Configuration = {
auth: {
clientId: settings.authentication.clientId,
authority: authorityUrl,
},
};
const msalInstance = new msal.PublicClientApplication(msalConfig);
await msalInstance.initialize();
this.msalInstance = msalInstance;
this.scopes = typeof settings.authentication.scopes === "string"
? [settings.authentication.scopes]
: settings.authentication.scopes;
const accounts = msalInstance.getAllAccounts();
if (accounts.length > 0) {
msalInstance.setActiveAccount(accounts[0]);
}
return msalInstance;
}