Azure active directory 如果使用msal.js,则在登录期间让我保持登录消息丢失

Azure active directory 如果使用msal.js,则在登录期间让我保持登录消息丢失,azure-active-directory,msal,msal.js,Azure Active Directory,Msal,Msal.js,上下文 我正在开发一个浏览器应用程序,它使用msal.js库允许Azure Active Directory帐户访问我们的网站。应用程序已正确设置了clientId和作用域,并成功使用LoginDirect和acquireTokenSilent 问题 我面临的问题是,我无法保持会话打开,因为我没有看到“让我登录”消息(KMSI),因此我无法回答“是”,并使AADSSO cookie持久化。因此,在登录过程之后,如果浏览器关闭,我需要再次登录 期望值 如果我使用msal.js库从我的网站重定向到m

上下文

我正在开发一个浏览器应用程序,它使用msal.js库允许Azure Active Directory帐户访问我们的网站。应用程序已正确设置了clientId和作用域,并成功使用LoginDirect和acquireTokenSilent

问题

我面临的问题是,我无法保持会话打开,因为我没有看到“让我登录”消息(KMSI),因此我无法回答“是”,并使AADSSO cookie持久化。因此,在登录过程之后,如果浏览器关闭,我需要再次登录

期望值

如果我使用msal.js库从我的网站重定向到microsoft登录,我希望看到KMSI消息以启用持久会话(出于某种原因,我可以看到是否直接登录到login.microsoftonline.com)

对不起,西班牙语是这样说的:它说你想保持会话打开吗?否/是

问题


如何在msal.js中启用KMSI?

使用msal.js时未看到“让我登录”登录消息的原因是,当库构建URL以执行登录时,它包含一个名为x-client-Ver的查询字符串项,该项会更改microsoftonline.com的登录流。 如果从URL中删除该项(例如&x-client-Ver=1.1.3),则可以看到“让我登录”消息


解决方案是手动修补库,直到Microsoft修复为止。就像这样:

那很有趣。。您是否有使用例如OpenID Connect身份验证和AAD的Web应用程序?如果您使用该功能登录,是否会提示您输入KMSI?我认为,由于您的前端是一个公共客户/使用隐式赠款流,这可能只是预期的行为。但我不确定。如果我直接浏览microsoft登录页面,它会。但如果我从msal.js库重定向,它不会