Поделиться через


Руководство. Настройка веб-приложения ASP.NET Core, которое проверяет подлинность пользователей

применяется к: зеленый круг с символом белой флажки. арендаторы рабочей силы зеленый круг с символом белой галочки. внешние клиенты (подробнее)

В этом руководстве описано, как создать веб-приложение ASP.NET Core и настроить его для проверки подлинности. Это часть 1 серии, демонстрирующая, как создать веб-приложение ASP.NET Core и подготовить его к проверке подлинности с помощью Центра администрирования Microsoft Entra. Это приложение можно использовать для сотрудников в арендаторе рабочей платформы или для клиентов, использующих внешнего арендатора.

В этом руководстве:

  • Создание веб-приложения ASP.NET Core
  • Создание самозаверяющего сертификата
  • Настройка параметров для приложения
  • Определение параметров платформы и URL-адресов

Необходимые условия

  • Учетная запись Azure с активной подпиской. Создать учетную запись бесплатно. Эта учетная запись должна иметь разрешения на управление приложениями. Используйте любую из следующих ролей, необходимых для регистрации приложения:
    • Администратор приложений
    • Разработчик приложений
    • Администратор облачных приложений
  • Хотя можно использовать любую интегрированную среду разработки (IDE), поддерживающую ASP.NET core, в этом руководстве используется Visual Studio Code. Его можно скачать здесь.
  • Минимальное требование .NET 8.0 SDK .
  • Арендатор рабочей силы. Вы можете использовать каталог по умолчанию или настроить нового арендатора .
  • Приложение, зарегистрированное в Центре администрирования Microsoft Entra. Используйте следующую настройку для целей этой серии учебников:
    • имя: identity-client-web-app
    • Поддерживаемые типы учетных записей: только учетные записи в этом каталоге организации
    • URI перенаправления: https://localhost:5001/signin-oidc
    • URL-адрес выхода переднего канала: https://localhost:5001/signout-oidc
  • В целях разработки создать самозаверяющий сертификат. См. , добавьте учетные данные для загрузки сертификата и записи отпечатка сертификата . Не используйте самозаверяющий сертификат для рабочих приложений. Используйте доверенный центр сертификации.

Создание проекта ASP.NET Core

В этом разделе описано, как создать проект ASP.NET Core в Visual Studio Code.

  1. Откройте Visual Studio Code, выберите Файл > Открыть папку.... Перейдите к нужной папке и выберите её для создания проекта.

  2. Откройте новый терминал, выбрав терминал > новый терминал.

  3. Введите следующую команду, чтобы сделать проект контроллера представления модели (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используется для хранения параметров приложения, используемых во время выполнения.

Обновление файла конфигурации

В интегрированной среде разработки откройте 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 — идентификатор клиента, в котором зарегистрировано приложение. Замените текст в кавычках идентификатором каталога (клиента), записанным ранее на странице обзора зарегистрированного приложения.
  • ClientId — идентификатор приложения, который также называется клиентом. Замените текст в кавычках значением идентификатора приложения (клиента) , который был записан ранее на странице обзора зарегистрированного приложения.
  • ClientCertificates . Самозаверяющий сертификат используется для проверки подлинности в приложении. Замените текст CertificateThumbprint отпечатком сертификата, записанного ранее. Не используйте самозаверяющий сертификат для рабочих приложений.
  • CallbackPath — это идентификатор, который помогает серверу перенаправлять ответ на соответствующее приложение.
  • DownstreamApi — это идентификатор, определяющий конечную точку для доступа к Microsoft Graph. URI приложения объединяется с указанной областью. Чтобы определить конфигурацию приложения, принадлежащих организации, значение атрибута Scopes немного отличается.

Обновление URI перенаправления

В предварительных требованийURI перенаправления имеет значение https://localhost:5001/signin-oidc. Это необходимо обновить в параметрах запуска приложения. Вы можете использовать URI перенаправления, созданный во время настройки локального приложения, или любой другой доступный номер порта, если он соответствует URI перенаправления в регистрации приложения.

  1. В папке свойств откройте файл launchSettings.json.

  2. Найдите объект https и обновите значение applicationURI с правильным номером порта, в данном случае 5001. Строка должна выглядеть примерно так, как показано в следующем фрагменте кода:

    "applicationUrl": "https://localhost:5001;http://localhost:{port}",
    

Следующий шаг