首页 > 解决方案 > 在 Azure 存储帐户中托管的 Blazor Webassembly Azure AD 身份验证

问题描述

根据“使用 Azure Active Directory 保护 ASP.NET Core Blazor WebAssembly 独立应用程序”中描述的说明https://docs.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/standalone-with-azure -active-directory?view=aspnetcore-3.1我创建了最简单的 blazor webassembly 应用程序。在https://portal.azure.com,我在 AAD 中注册了新应用程序,并基于生成的 GUID 使用以下命令生成了本地应用程序:

dotnet new blazorwasm -au SingleOrg --client-id "{CLIENT ID}" --tenant-id "{TENANT ID}" -o {APP NAME}

如果我在本地启动应用程序,一切正常。如果我将已发布的应用程序复制到存储帐户 $web 并尝试登录,我会收到:

AADSTS50011:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配:“...”。

在应用程序注册期间,我将应用程序定义为“Web”并将重定向 URL: https://localhost:5001/authentication/login-callback 我尝试了 URL 更改主机名、删除端口和更改路径的不同组合。我不知道如何在 AD 中成功配置应用程序。

标签: azureauthenticationazure-storageblazor-webassembly

解决方案


根据上面的答案和评论,我采取了两个步骤来解决这个问题:

  1. Azure AD 必须在App 注册中有一个条目 | 认证 | 单页申请 | 重定向 URI读取{WebsiteUrl}/authentication/login-callback. {WebsiteUrl}来自存储账户 | 静态网站 | 主要终点

  2. 确保存储帐户 | 静态网站 | 索引文档名称 错误文档路径 指向index.html.


推荐阅读