拥有一个 Outlook 加载项,该加载项使用对话框 API 通过 MSAL-JS 提示用户进行图形 API 访问。它可以在 Mac 上的 Safari、Mac 上的 Edge、Mac 上的 Chrome、Mac 上的 FF 以及任何 Windows 客户端或浏览器中 100% 运行。但是,在 Mac Outlook(新版或旧版)上,当使用对话框 API 打开发生 MSAL 重定向的窗口时,在尝试首先调用 ssoSilent 时,结果始终为“USER_INTERACTION_REQUIRED”。
在工作客户端(例如 Windows Outlook)中,如果令牌需要刷新,对话框会短暂出现,ssoSilent 执行其操作,然后对话框消失。但在 Mac Outlook 上且仅在 Mac Outlook 中,此对话框会失败 ssoSilent,然后代码默认为完全交互式登录。这对于我的加载项的 Mac Outlook 用户来说非常烦人。这是一个已知的问题?为什么这只发生在 Mac Outlook 上?有什么建议可以克服这个问题吗?
已解决,问题是 MSAL 上的 clientCapatilities:
身份验证:{ clientCapability:[“CP1”] }
第二个是范围。这可能与它没有任何关系,但它们没有出现在 Mac 上的跟踪中,因此我明确地将这些范围添加到请求中:
“电子邮件”, “轮廓”, “离线访问”
一旦我这样做了,Windows 中的频繁登录和 Mac 上的强制 MFA (USER_INTERACTION_REQUIRED) 就消失了。