运行示例Azure AD B2C身份验证代码时遇到x-frame-options问题

时间:2018-11-11 05:23:16

标签: azure authentication azure-ad-b2c msal x-frame-options

我正在尝试运行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

这是我运行代码时发生的事情。

  1. 我按预期看到了index.html页面。
  2. 我单击登录按钮,重定向到Microsoft登录页面,在这里我可以看到通过Google进行社交登录的选项。
  3. 我通过Google登录,并被重定向回我的index.html页面。

这时,将触发“ 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中不会发生相同的错误。对于这些浏览器,我可以毫无问题地获得身份验证令牌。

2 个答案:

答案 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的同一站点...