教程:准备用于身份验证的应用程序
在上一个教程中,你已在 Microsoft Entra 管理中心注册了一个 Web 应用程序。 本教程演示如何使用 IDE 创建 ASP.NET Core Web 应用。 你还将创建自签名证书并将其上传到 Microsoft Entra 管理中心,以保护应用程序。 最后,你要配置用于身份验证的应用程序。
本教程的内容:
- 创建一个 ASP.NET Core Web 应用
- 创建自签名证书
- 配置应用程序的设置
- 定义平台设置和 URL
先决条件
- 完成教程:将应用程序注册到 Microsoft 标识平台中的先决条件和步骤。
- 可以在此处下载本教程中使用的 IDE。
- Visual Studio 2022
- Visual Studio Code
- Visual Studio 2022 for Mac
- 最低要求 .NET 6.0 SDK。
创建 ASP.NET Core 项目
使用以下选项卡在 IDE 中创建 ASP.NET Core 项目。
- 打开 Visual Studio,然后选择“创建新项目”。
- 搜索并选择“ASP.NET Core Web 应用”模板,然后选择“下一步”。
- 输入项目的名称,例如 NewWebAppLocal。
- 选择项目位置或者接受默认选项,然后选择“下一步”。
- 接受“框架”、“身份验证类型”和“配置 HTTPS”的默认值。 “身份验证类型”可以设置为“无”,本教程将介绍此过程。
- 选择创建。
创建并上传自签名证书
使用证书是保护客户端和服务器之间通信的一种建议方法。 在本教程中,将在项目目录中创建自签名证书。 在此处了解有关自签名证书的详细信息。
选择“工具”>“命令行”>“开发人员命令提示”。
输入以下命令以创建新的自签名证书:
dotnet dev-certs https -ep ./certificate.crt --trust
上传证书到 MIcrosoft Entra 管理中心
若要使证书可供应用程序使用,必须将其上传到租户中。
从之前创建的应用的“概述”页开始,在“管理”下选择“证书和机密”,然后选择“证书(0)”选项卡。
选择“上传证书”。
选择“文件夹”图标,然后浏览并选择之前创建的证书。
输入证书的说明,然后选择“添加”。
记录“指纹”值,该值将在下一步中使用。
配置用于身份验证和 API 引用的应用程序
此前记录的数值将用于配置身份验证应用程序。 appsettings.json 为配置文件,用于存储运行时使用的应用程序设置。 由于应用程序还将调入 Web API,因此还必须包含对该 API 的引用。
在 IDE 中,打开 appsettings.json,并将文件内容替换为以下代码片段。 将引号中的文本替换为前面记录的值。
{ "AzureAd": { "Instance": "https://login.partner.microsoftonline.cn/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "ClientCertificates": [ { "SourceType": "StoreWithThumbprint", "CertificateStorePath": "CurrentUser/My", "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center" } ], "CallbackPath": "/signin-oidc" }, "DownstreamApi": { "BaseUrl": "https://microsoftgraph.chinacloudapi.cn/v1.0/", "RelativePath": "me", "Scopes": [ "https://microsoftgraph.chinacloudapi.cn/user.read" ] }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
Instance
- 身份验证终结点。 在国家云查看可用的不同终结点。TenantId
- 注册应用程序的租户标识符。 将引号中的文本替换为注册应用程序的概述页中先前记录的“目录 (租户) ID”值。ClientId
- 应用程序的标识符,也称为客户端。 将引号中的文本替换为先前从注册应用程序的概述页中记录的“应用程序(客户端) ID”值。ClientCertificates
- 自签名证书用于在应用程序中进行身份验证。 将CertificateThumbprint
的文本替换为之前记录的证书的指纹。CallbackPath
- 帮助服务器将响应重定向到适当应用程序的标识符。DownstreamApi
- 定义用于访问 Microsoft Graph 的终结点的标识符。 应用程序 URI 与指定的范围结合使用。 若要定义归组织所有的应用程序的配置,Scopes
属性的值略有不同。
保存对文件的更改。
在“属性”文件夹中,打开 launchSettings.json 文件。
在 launchSettings.json 内查找并记录
https
值applicationURI
,例如https://localhost:{port}
。 定义“重定向 URI”时,将使用此 URL。 请勿使用http
值。
添加平台重定向 URI
在 Microsoft Entra 管理中心中的“管理”下,选择“应用注册”,然后选择之前创建的应用程序。
在左侧菜单中的“管理”下,选择“身份验证” 。
在“平台配置”中,选择“添加平台”,然后选择“Web”。
在“重定向 URI”下,以
https://localhost:{port}/signin-oidc
的形式输入applicationURL
和CallbackPath
、/signin-oidc
。在“前通道注销 URL”下,输入以下用于注销的 URL:
https://localhost:{port}/signout-oidc
。选择“配置” 。