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 问题