教程:创建使用 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 7 SDK
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Azure 帐户必须有权管理 Microsoft Entra ID 中的应用程序。 以下任何 Microsoft Entra 角色都包括所需的权限:
- 与 Azure 帐户关联的 Microsoft Entra ID 的租户 ID 或域
使用 .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 应用来了解详细信息: