Azure CDN 阻止使用 Active Directory 进行存储帐户静态站点身份验证

Azure CDN preventing Storage Account Static Site Authentication with Active Directory

我目前使用 Azure CDN 设置了 Azure Blob 存储帐户来托管静态站点。此静态站点连接到应用服务后端,并使用基于前端的身份验证,使用 Active Directory 通过 MSAL.

烘焙到应用程序代码中

当它最初被部署并且 运行 单独离开静态站点的 URL 时,我能够成功地进行身份验证。身份验证弹出窗口会自行显示,我会提供凭据,然后 Active Directory 发回一个令牌,然后我与后端确认并成功重定向到 post-auth 登录页面。

问题 我现在遇到的是,当我继续使用 Azure CDN 提供的 URL(而不是存储站点的 URL ),用于身份验证的弹出窗口打开并允许我提供凭据,但弹出窗口不会在令牌接收时关闭和重定向,而是简单地挂在那里。值得注意的是,弹出窗口的 URL 被列为静态站点 URL 而不是 CDN URL。令牌返回并出现在 URL 的后面部分,因此一定是 URL 之间的不匹配导致了问题。

我已经尝试 更改静态站点的配置回复 URL 以匹配 CDN,但没有任何区别。我还将 CDN URLs(自定义的和端点 .azureedge.net 的)添加到 Reply URLs.

的 Active Directory 列表中

CDN 正在为自定义 URL 提供证书以供使用,因此我们需要该证书才能使自定义 URL 正常工作。同样要明确的是,身份验证在使用静态站点 URL 时有效,但在 CDN URL.

中无效

还有其他人 运行 遇到过这种性质的问题吗?如果有,你解决了吗?

对于可能遇到此问题的任何人,解决方案比我预期的要简单得多。前端的 MSAL 配置需要使用新的 CDN URL(我认为是这样),但需要清除 CDN 本身并从 Blob 存储中获取更改。