教程:设置对用户进行身份验证的 ASP.NET Core Web 应用
适用于: 员工租户
外部租户(了解详细信息)
在本教程中,你将创建一个 ASP.NET Core Web 应用并将其配置为身份验证。 这是系列的第 1 部分,演示如何生成 ASP.NET Core Web 应用程序,并使用 Microsoft Entra 管理中心对其进行身份验证准备。 此应用程序可用于员工租户中的员工或使用外部租户的客户
在本教程中:
- 创建 ASP.NET Core Web 应用
- 创建自签名证书
- 配置应用程序的设置
- 定义平台设置和 URL
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。 此帐户必须具有管理应用程序的权限。 使用以下任意一个角色注册应用程序:
- 应用程序管理员
- 应用程序开发人员
- 云应用程序管理员
- 尽管可以使用支持 ASP.NET Core 应用程序的任何集成开发环境(IDE),但本教程使用 Visual Studio Code。 可在此处下载
。 - 最低要求是.NET 8.0 SDK。
- ASP.NET 核心开发人员证书。 使用 dotnet dev-certs 安装一个
创建 ASP.NET 核心项目
在本部分中,将在 Visual Studio Code 中创建 ASP.NET Core 项目。
打开 Visual Studio Code,选择
“文件” “打开文件夹...”。导航到要在其中创建项目的位置并选择该位置。 通过选择“终端”>“新终端”打开一个新的终端。
输入以下命令以创建一个模型视图控制器(MVC)ASP.NET Core 项目。
dotnet new mvc -n identity-client-web-app
安装标识包
此应用程序使用 Microsoft.Identity.Web,并且必须安装相关的 NuGet 包。
使用以下代码片段更改为新的 identity-client-web-app 文件夹并安装相关的 NuGet 包:
dotnet add package Microsoft.Identity.Web.UI
配置用于身份验证的应用程序
应用程序设置中记录的值用于配置应用程序进行身份验证。 appsettings.json 为配置文件,用于存储运行时使用的应用程序设置。
更新配置文件
在 IDE 中,打开 appsettings.json,并将文件内容替换为以下代码片段。 将引号中的文本替换为前面记录的值。
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "Enter_the_Tenant_Id_Here",
"ClientId": "Enter_the_Application_Id_Here",
"ClientCertificates": [
{
"SourceType": "StoreWithThumbprint",
"CertificateStorePath": "CurrentUser/My",
"CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
}
],
"CallbackPath": "/signin-oidc"
},
"DownstreamApi": {
"BaseUrl": "https://graph.microsoft.com/v1.0/",
"RelativePath": "me",
"Scopes": [
"user.read"
]
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
Instance
- 身份验证终结点。 在“国家云”查看可用的不同终结点。TenantId
- 应用程序注册所在租户的标识符。 将引号中的文本替换为注册应用程序的概述页面中先前记录的“目录(租户) ID”值。ClientId
- 应用程序的标识符,也称为客户端。 将引号中的文本替换为先前从注册应用程序的概述页中记录的“应用程序(客户端) ID”值。ClientCertificates
- 自签名证书用于应用程序中的身份验证。 将CertificateThumbprint
的文本替换为先前保存的证书拇指指纹。 不要对生产应用使用自签名证书。CallbackPath
- 帮助服务器将响应重定向到适当应用程序的标识符。DownstreamApi
- 定义用于访问 Microsoft Graph 的终结点的标识符。 应用程序 URI 与指定的范围结合成一个整体。 若要定义归组织所有的应用程序的配置,Scopes
属性的值略有不同。
更新重定向 URI
根据 先决条件,已将重定向 URI 设置为 https://localhost:5001/signin-oidc
。 这需要在应用程序启动设置中更新。 可以使用在本地应用程序设置期间创建的重定向 URI 或任何其他可用的端口号,前提是它与应用程序注册中的重定向 URI 匹配。
在“属性”文件夹中,打开 launchSettings.json 文件。
查找
https
对象,并使用正确的端口号更新applicationURI
的值,在本例中5001
。 该行应类似于以下代码片段:"applicationUrl": "https://localhost:5001;http://localhost:{port}",