Angular 2 不离开页面的 Active Directory 身份验证

Angular 2 Active Directory Auth Without Leaving Page

我正在创建一个 Word Web 插件,它将涉及使用 Azure B2C Active Directory 登录,然后调用 API。

我在项目中创建了一个 Web 添加,并且在 this example.

之后使用 angular 2 和 msal.js

msal.js 库提供了 2 种我可以看到的登录方式,可以使用弹出窗口 window 或重定向到登录页面。

this.clientApplication.loginRedirect();
this.clientApplication.loginPopup();

我一直在使用浏览器来调试加载项,当 运行 在浏览器中时,我可以成功使用任一登录选项,但是在尝试实际使用加载项时会出现问题单词。

如果我使用重定向选项,那么当我点击登录时,页面会在 chrome 中打开,我可以登录,但是我在浏览器中而不是在我可以实际使用的 word 中加载项(加载项仍 运行,但未登录)。

如果我使用弹出选项,那么在尝试登录时(在 word 中)我只是得到一个弹出窗口,我需要 select 一个应用程序(我什至不能 select 除了存储):

有没有一种只停留在一页的登录方式?

找到解决方案:使用 loginRedirect() 方法它只在 chrome 中打开,因为它不是 "approved" url。

我只需要将 https://login.microsoftonline.com 添加到 XML 清单中的 AppDomains:

现在,登录页面会按预期在 Word 任务窗格中打开。