Краткое руководство. Добавление входа с помощью Корпорации Майкрософт в веб-приложение ASP.NET Core

Добро пожаловать! Возможно, это не та страница, которую вы ожидали. Пока мы работаем над исправлением, воспользуйтесь этой ссылкой, чтобы перейти к нужной статье:

Краткое руководство. Добавление входа с помощью Корпорации Майкрософт в веб-приложение ASP.NET Core

Приносим извинения за неудобства и благодарим за терпение! Мы работаем над устранением этой проблемы.

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

Шаг 1. Настройка приложения на портале Azure

Чтобы пример кода, приведенный в этом кратком руководстве, работал, сделайте следующее:

  • В поле URI перенаправления введите https://localhost:44321/ и https://localhost:44321/signin-oidc.
  • Для параметра Front-channel logout URL (URL-адрес выхода Front-channel) введите значение https://localhost:44321/signout-oidc.

Конечная точка авторизации будет выдавать маркеры идентификации запросов.

Already configured Приложение настроено с помощью этих атрибутов.

Шаг 2. Скачивание проекта ASP.NET Core

Запустите проект.

Совет

Чтобы избежать ошибок, вызванных ограничениями длины пути в Windows, рекомендуется извлечь архив или клонировать репозиторий в каталог рядом с корневой папкой диска.

Шаг 3. Приложение настроено и готово к выполнению

Мы уже настроили для проекта нужные значения свойств приложения, и его можно запускать.

Примечание.

Enter_the_Supported_Account_Info_Here

Дополнительные сведения

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

Как работает этот пример

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

Класс Startup

ПО промежуточного слоя Microsoft.AspNetCore.Authentication использует класс Startup, который выполняется при запуске хост-процесса.

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
        .AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

    services.AddControllersWithViews(options =>
    {
        var policy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(policy));
    });
   services.AddRazorPages()
        .AddMicrosoftIdentityUI();
}

С помощью метода AddAuthentication() службу можно настроить так, чтобы она добавляла проверку подлинности на основе файлов cookie. Эта проверка подлинности используется в сценариях браузера, а также для установки запроса OpenID Connect.

Строка, содержащая .AddMicrosoftIdentityWebApp, добавляет в ваше приложение функцию проверки подлинности платформы удостоверений Майкрософт. Затем приложение настраивается для входа пользователей на основе следующей информации в разделе AzureAD файла конфигурации appsettings.json:

Ключ appsettings.json Description
ClientId Идентификатор приложения (клиента), зарегистрированного на портале Azure.
Instance Конечная точка службы токенов безопасности для проверки подлинности пользователей. Обычно это значение https://login.microsoftonline.com/, указывающее на общедоступное облако Azure.
TenantId Имя клиента, идентификатор клиента (уникальный идентификатор) или common для входа пользователей под рабочими, учебными или личными учетными записями Майкрософт.

Метод Configure() содержит два важных метода: app.UseAuthentication() и app.UseAuthorization(), которые обеспечивают упомянутые функциональные возможности. Кроме того, в методе Configure() необходимо зарегистрировать маршруты Microsoft Identity Web по крайней мере с одним вызовом endpoints.MapControllerRoute() или вызовом endpoints.MapControllers().

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});

Атрибут для защиты контроллера или методов

Контроллер или его методы можно защитить с помощью атрибута [Authorize]. Этот атрибут разрешает доступ к контроллеру или методам только тем пользователям, которые прошли проверку подлинности. Если пользователь еще не прошел проверку подлинности, при доступе к контроллеру может быть запущен запрос на проверку подлинности.

Справка и поддержка

Если вам нужна помощь, если вы хотите сообщить о проблеме или узнать о доступных вариантах поддержки, воспользуйтесь статьей Возможности получения поддержки и справки для разработчиков.

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

В репозитории GitHub, содержащем это руководство ASP.NET Core, есть также инструкции и дополнительные примеры кода, демонстрирующие выполнение следующих действий.

  • Добавление проверки подлинности в новое веб-приложение ASP.NET Core.
  • Вызов Microsoft Graph, других API Майкрософт или собственных веб-API.
  • Добавление авторизации.
  • Вход пользователей в национальные облака или вход с помощью удостоверений социальных сетей.