配置Content-Security-Policy后Azure OIDC登出无法跳回应用如何解决
问题原因
Azure AD 登出流程中,会先将你指定的 post_logout_redirect_uri 对应的应用页面嵌入到 Azure 侧的登出中间页的 iframe 中,完成应用侧会话清理后,才会触发顶层页面跳转回你的应用。你当前的 frame-ancestors 配置仅允许自身域名和 https://login.microsoftonline.com 嵌入你的页面,但 Azure 登出流程还会用到其他官方域名作为父页面加载你的登出回调页,被 CSP 拦截后就会卡在 Azure 页面无法跳转。
修正后的响应头配置
将响应头调整为如下内容即可,原有安全限制完全保留:
content-security-policy: frame-ancestors 'self' https://login.microsoftonline.com https://login.microsoft.com https://login.live.com;
补充说明
https://login.microsoft.com是 Azure AD 逐步切换使用的统一登录域名,部分区域的登出请求会自动跳转至该域名下的页面https://login.live.com是微软个人账户的登录域名,即便你的应用仅允许企业账号登录,也建议添加该域名避免兼容性问题- 如果你确认你的应用仅在特定 Azure 云环境(如中国区世纪互联运营的 Azure)使用,可以对应替换为对应云环境的登录域名即可
内容的提问来源于stack exchange,提问作者santosh
相关产品推荐
相关产品推荐

