我正在尝试运行Microsoft的示例代码来实现Azure AD B2C身份验证。 代码库可以在这里找到: https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/blob/master/index.html
我修改了代码,如以下要点所示。主要变化是,我使用loginRedirect()代替了Msal.UserAgentApplication对象的loginPopup()方法(为了获得更好的用户体验) https://gist.github.com/ttchuah/6718e268a235a3206968b36d748fd369
这是我运行代码时发生的事情。
这时,将触发“ authCallback()”函数。
在Chrome中,出现以下控制台错误。有什么想法吗? 拒绝在框架中显示“ https://accounts.google.com/o/oauth2/auth?client_id=903295266285-78au30g3bsmt8q1phvfqqu65c58kp35i.apps.googleusercontent.com&redirect_uri=https%3a%2f%2flogin.microsoftonline.com%2fte%2fdv0dop000devaad000.onmicrosoft.com%2foauth2%2fauthresp&response_type=code&scope=email+profile&state=StateProperties%3deyJTSUQiOiJ4LW1zLWNwaW0tcmM6OGM1YTQwNDQtNGYyYi00ZTJmLTgyMmUtYjU2ZjRkMWU4ZWU2IiwiVElEIjoiMDBmZjUzOTctNjYxZC00NDY4LWFlODktNzlkOThlMmEwMzI0In0”,因为它将“ X-Frame-Options”设置为“ sameorigin”。
在FireFox或Safari中不会发生相同的错误。对于这些浏览器,我可以毫无问题地获得身份验证令牌。
答案 0 :(得分:1)
X-Frame-Options 标头是针对clickjacking的安全性度量,事实是,并非所有浏览器都具有在处理返回的响应时考虑该标头的实现(请参见X-Frame-Options(在MDN上)。
长话短说, Chrome 将阻止任何在 X-Frame-Options 中没有匹配的 allow-from 值的响应处理在 frame , iframe 或 object 元素中呈现的strong>标头。
希望有帮助!
答案 1 :(得分:0)
它对B2C没有帮助,但是Okta,Auth0和OneLogin开箱即用地设置了iframe选项,以及用于cookie的同一站点...