我正在使用 Azure AD B2C 示例,出于测试目的,我使用稍作修改的单页应用程序sample https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp。我还创建了一个 Azure B2C 和一个测试 api(作为 Azure 函数)。测试 API 和单页应用程序已在 Azure B2C 中注册为正确的应用程序,并且设置正常工作。
该场景是用户登录Azure B2C,获取令牌并使用令牌调用Azure函数。问题是登录页面在一个单独的窗口中打开,B2C Url 在地址栏中。我想要的是将登录控件嵌入到单页应用程序中。
我浏览了文档,发现可以自定义登录页面(在用户流程策略/页面布局中),但似乎它仍然是一个单独的页面,这是我不想要的。另一个想法是让单页应用程序将登录请求作为 AJAX 请求发送到我自己的服务器,然后该服务器代表该用户执行登录,然后将令牌中继回单页应用程序。但这似乎有很多麻烦和不必要的间接,我想尽可能避免。
Following is an screenshot of the scenario:
目前,单页应用程序无法嵌入登录体验,因为 Azure AD B2C 不允许 CORS 或 iframe,这意味着您只有以下选项:
- 浏览器重定向
- 浏览器弹出窗口
- 通过您自己的服务器将登录凭据发布到资源所有者密码凭据 (ROPC) 策略 https://learn.microsoft.com/en-us/azure/active-directory-b2c/configure-ropc
浏览器弹出窗口和重定向之间的差异描述于https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript#choose- Between-a-pop-up-or-redirect-experience https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-acquire-token?tabs=javascript#choose-between-a-pop-up-or-redirect-experience
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)