教程:创建使用 Microsoft 标识平台进行身份验证的 Blazor Server 应用

在本教程中,你将通过使用 Microsoft 标识平台并在 Microsoft Entra ID 中注册应用来构建 Blazor Server 应用,用户可登录该应用并通过 Microsoft Graph 检索数据。

我们还提供了关于 Blazor WASM 的快速入门。

本教程的内容:

  • 创建一个新的 Blazor Server 应用,该应用配置为使用 Microsoft Entra ID 对单个组织中的用户进行身份验证(在注册该应用的 Microsoft Entra 租户中操作)
  • 使用 Microsoft.Identity.Web 处理身份验证和授权
  • 通过受保护的 Web API Microsoft Graph 检索数据

先决条件

使用 .NET CLI 创建应用

mkdir <new-project-folder>
cd <new-project-folder>
dotnet new blazorserver --auth SingleOrg --calls-graph

安装 Microsoft Identity App Sync .NET 工具

dotnet tool install --global msidentity-app-sync

该工具自动执行以下任务:

  • 在 Microsoft Entra ID 中注册应用程序
    • 为注册的应用程序创建机密
    • 根据 launchsettings.json 注册重定向 URI
  • 初始化项目中对用户机密的使用
  • 将应用程序机密存储在用户机密存储中
  • 使用 client-id 和 tenant-id 等信息更新 appsettings.json。

.NET 工具扩展了 dotnet CLI 命令的功能。 若要了解详细信息,请参阅 .NET 工具

有关用户机密存储的详细信息,请参阅在开发过程中安全存储应用机密

使用 Microsoft Identity App Sync 工具

运行以下命令,在租户中注册应用并更新应用程序的 .NET 配置。 提供属于 Azure 帐户的用户名/UPN(例如 username@domain.com),以及与 Azure 帐户关联的 Microsoft Entra ID 的租户 ID 或域名。

msidentity-app-sync --username <username/upn> --tenant-id <tenantID>

注意

  • 如果在开发人员工具中只使用一个帐户登录,则无需提供用户名。
  • 如果要在其中创建应用程序的租户是主租户,则无需提供租户 ID。

可选 - 创建开发 SSL 证书

为了避免在浏览正在运行的应用程序时出现 SSL 错误/警告,可在 macOS 和 Windows 上使用以下命令生成供 .NET 使用的自签名 SSL 证书。

dotnet dev-certs https --trust

运行应用

在终端中,运行以下命令:

dotnet run

使用命令行输出的 URL 浏览到正在运行的 Web 应用程序。

后续步骤

在以下多部分教程系列中,通过构建一个让用户登录的 ASP.NET Core Web 应用来了解详细信息: