我正在开发一个 Excel 插件,它使用 MSAL 代表登录用户执行 SSO。鉴于用户正在从 O365 云运行插件,他们已经登录到域,并且登录应该是静默的。不过,我注意到 SSO 流程后有一个简短的弹出窗口。目前,MS Entra ID 中的重定向 URL 设置为 Excel Addin 网页。我曾尝试配置以下
https://login.microsoftonline.com/common/oauth2/nativeclient
- 但是弹出空白页面。
任何有关适当重定向 URL 的想法将不胜感激。
登录代码如下:
async function signIn(msalConfig, scopeArray) {
if (msalClient == null){
msalClient = new msal.PublicClientApplication(msalConfig);
}
if ( msalRequest.scopes.length == 0 ){
msalRequest.scopes = JSON.parse(JSON.stringify(scopeArray));
}
// Use MSAL to login
let authResult = null;
const account = msalClient.getActiveAccount();
if ( account !== null ){
authResult = await msalClient.acquireTokenSilent({account: account});
traceLog(`signIn`, `Reusing ${account.username} ${account.name}`);
} else {
authResult = await msalClient.loginPopup(msalRequest);
}
msalClient.setActiveAccount(authResult.account);
}
最简单的解决方案似乎是创建一个关闭弹出窗口的专用重定向页面:
<html><head></head><body><script>window.close()</script></body></html>