iframe 中的 Azure AD MSAL

Posted

技术标签:

【中文标题】iframe 中的 Azure AD MSAL【英文标题】:Azure AD MSAL in iframe 【发布时间】:2021-07-23 05:19:43 【问题描述】:

我有一个受 azure ad 保护的网站并使用 msal,我想在 iframe 中访问它,但它看起来不起作用。有没有办法让它工作?是否与重定向网址或其他问题有关?

【问题讨论】:

不太确定您的要求,您想在 iframe 中弹出 Azure AD 登录页面,而不是重定向到 Azure AD 登录页面吗? 事实上,我有一个受 azure ad msal 保护的网站,一切正常,现在该网站作为 iframe 包含在另一个网站中,身份验证不再有效。 【参考方案1】:

您无法在 iframe 中对用户进行身份验证,这意味着您无法使用重定向 API 与身份提供者进行用户交互。

您可以从创建自己的客户页面开始,并允许用户输入凭据,然后对用户进行身份验证。当用户输入他们的凭据并单击登录时,服务器将返回 OK(如果电子邮件/密码正确)。之后,您应该将令牌保存在 localstorage 中,然后设置 isAuthenticated = true。

如果您使用的是 Auth 代码流,那么您应该在外部真实页面而不是 iframe 内部进行身份验证。然后,您必须在通过身份验证后登录。这个概念是您必须完全重定向到 azure 广告而不是 iframe 中的身份验证页面。

您可以在 iframed 和父应用之间实现单点登录 如果您传递来自的帐户提示,则同源和跨源 父应用到 iframed 应用。

了解更多here

【讨论】:

【参考方案2】:

您需要在身份验证配置中指定以允许在 IFrame 中进行重定向 https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_browser.html

【讨论】:

以上是关于iframe 中的 Azure AD MSAL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure AD MSAL 库将角色包含到访问令牌中

Unity for Android 中的 Azure AD 身份验证出错

Electron + Vue + msal-nodejs + Azure Ad:重定向 URL 问题

Azure AD Msal 拦截器访问令牌

使用 MSAL Angular 包装器在 Ionic 4 中处理来自 Azure AD 的回调

如何在 Azure AD B2C 中管理用户流之间的单个帐户/会话