运行 在 运行 示例 Azure AD B2C 授权代码时出现 x-frame-options 问题

Running into x-frame-options issues when running sample Azure AD B2C auth code

我正在尝试 运行 Microsoft 用于实现 Azure AD B2C 身份验证的示例代码。 代码库可以在这里找到: https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/blob/master/index.html

我修改了代码,如下面的要点所示。主要的变化是我没有使用 Msal.UserAgentApplication 对象的 loginPopup() 方法,而是使用 loginRedirect() (为了更好的用户体验) 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 中不会发生同样的错误。对于那些浏览器,我可以毫无问题地取回授权令牌。

X-Frame-Options header 是针对 MDN 上 clickjacking, the thing is, not all browsers have an implementation that takes that header into consideration when processing a returned response (see X-Frame-Options 的安全措施)。

长话短说,Chrome 将阻止任何没有匹配 allow-from[=23= 的响应处理] X-Frame-Options header 中的值来自 frame, iframe or object 元素中的渲染。

希望对您有所帮助!

它对 B2C 没有帮助,但 Okta、Auth0 和 OneLogin 具有开箱即用的 iframe 选项设置,以及 cookie 的同一站点...