教程:准备用于身份验证的应用程序

上一个教程中,你已在 Microsoft Entra 管理中心注册了一个 Web 应用程序。 本教程演示如何使用 IDE 创建 ASP.NET Core Web 应用。 你还将创建自签名证书并将其上传到 Microsoft Entra 管理中心,以保护应用程序。 最后,你要配置用于身份验证的应用程序。

本教程的内容:

  • 创建一个 ASP.NET Core Web 应用
  • 创建自签名证书
  • 配置应用程序的设置
  • 定义平台设置和 URL

先决条件

创建 ASP.NET Core 项目

使用以下选项卡在 IDE 中创建 ASP.NET Core 项目。

  1. 打开 Visual Studio,然后选择“创建新项目”。
  2. 搜索并选择“ASP.NET Core Web 应用”模板,然后选择“下一步”。
  3. 输入项目的名称,例如 NewWebAppLocal。
  4. 选择项目位置或者接受默认选项,然后选择“下一步”。
  5. 接受“框架”、“身份验证类型”和“配置 HTTPS”的默认值。 “身份验证类型”可以设置为“无”,本教程将介绍此过程
  6. 选择创建

创建并上传自签名证书

使用证书是保护客户端和服务器之间通信的一种建议方法。 在本教程中,将在项目目录中创建自签名证书。 在此处了解有关自签名证书的详细信息。

  1. 选择“工具”>“命令行”>“开发人员命令提示”。

  2. 输入以下命令以创建新的自签名证书:

    dotnet dev-certs https -ep ./certificate.crt --trust
    

上传证书到 MIcrosoft Entra 管理中心

若要使证书可供应用程序使用,必须将其上传到租户中。

  1. 从之前创建的应用的“概述”页开始,在“管理”下选择“证书和机密”,然后选择“证书(0)”选项卡

  2. 选择“上传证书”。

    屏幕截图显示将证书上传到 Microsoft Entra 租户中。

  3. 选择“文件夹”图标,然后浏览并选择之前创建的证书。

  4. 输入证书的说明,然后选择“添加”。

  5. 记录“指纹”值,该值将在下一步中使用。

    显示复制证书指纹的屏幕截图。

配置用于身份验证和 API 引用的应用程序

此前记录的数值将用于配置身份验证应用程序。 appsettings.json 为配置文件,用于存储运行时使用的应用程序设置。 由于应用程序还将调入 Web API,因此还必须包含对该 API 的引用。

  1. 在 IDE 中,打开 appsettings.json,并将文件内容替换为以下代码片段。 将引号中的文本替换为前面记录的值。

    {
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "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://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 属性的值略有不同。
  2. 保存对文件的更改。

  3. 在“属性”文件夹中,打开 launchSettings.json 文件。

  4. 在 launchSettings.json 内查找并记录 httpsapplicationURI,例如 https://localhost:{port}。 定义“重定向 URI”时,将使用此 URL。 请勿使用 http 值。

添加平台重定向 URI

  1. 在 Microsoft Entra 管理中心中的“管理”下,选择“应用注册”,然后选择之前创建的应用程序

  2. 在左侧菜单中的“管理”下,选择“身份验证” 。

  3. 在“平台配置”中,选择“添加平台”,然后选择“Web”。

    有关如何为应用程序选择平台的屏幕截图。

  4. 在“重定向 URI”下,以 https://localhost:{port}/signin-oidc 的形式输入 applicationURLCallbackPath/signin-oidc

  5. 在“前通道注销 URL”下,输入以下用于注销的 URL:https://localhost:{port}/signout-oidc

  6. 选择“配置” 。

后续步骤