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


Быстрый старт: ASP.NET веб-приложение для входа в систему пользователей Microsoft Entra

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

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

Мы извиняемся за неудобства и ценим ваше терпение, пока мы работаем, чтобы получить это решено.

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

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

Чтобы пример кода в этом кратком руководстве работал, введите https://localhost:44368/ для URI перенаправления.

Уже настроено приложение настроено с помощью этого атрибута.

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

Запустите проект с помощью Visual Studio 2019.

Совет

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

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

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

  1. Извлеките файл .zip в локальную папку, близкую к корневой папке. Например, извлеките C:\Azure-Samples.

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

  2. Откройте решение в Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).

  3. В зависимости от версии Visual Studio может потребоваться щелкнуть правой кнопкой мыши проект >AppModelv2-WebApp-OpenIDConnect-DotNet, а затем выбрать восстановить пакеты NuGet.

  4. Откройте консоль диспетчера пакетов, выбрав Вид>Другие окна>Консоль диспетчера пакетов. Затем выполните Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r.

Заметка

Enter_the_Supported_Account_Info_Here

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

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

Принцип работы примера

схема взаимодействия между веб-браузером, веб-приложением и платформой удостоверений Майкрософт в примере приложения.

Пакеты NuGet для промежуточного ПО OWIN

Конвейер проверки подлинности можно настроить с помощью проверки подлинности на основе файлов cookie с помощью OpenID Connect в ASP.NET с пакетами ПО промежуточного слоя OWIN. Эти пакеты можно установить, выполнив следующие команды в консоли диспетчера пакетов в Visual Studio:

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb

Класс запуска OWIN

Промежуточное программное обеспечение OWIN использует класс запуска , который запускается при запуске хостингового процесса. В этом кратком руководстве файл startup.cs находится в корневой папке. В следующем коде показаны параметры, которые используются в этом кратком руководстве:

public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            // Sets the client ID, authority, and redirect URI as obtained from Web.config
            ClientId = clientId,
            Authority = authority,
            RedirectUri = redirectUri,
            // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
            PostLogoutRedirectUri = redirectUri,
            Scope = OpenIdConnectScope.OpenIdProfile,
            // ResponseType is set to request the code id_token, which contains basic information about the signed-in user
            ResponseType = OpenIdConnectResponseType.CodeIdToken,
            // ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
            // To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
            // To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidateIssuer = false // Simplification (see note below)
            },
            // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                AuthenticationFailed = OnAuthenticationFailed
            }
        }
    );
}
Где Описание
ClientId Идентификатор приложения из приложения, зарегистрированного на портале Azure.
Authority Конечная точка службы маркеров безопасности (STS) для проверки подлинности пользователя. Обычно это https://login.microsoftonline.com/{tenant}/v2.0 для общедоступного облака. В этом URL-адресе {tenant} — это имя клиента, идентификатор клиента или common для ссылки на общую конечную точку. (Общая конечная точка используется для мультитенантных приложений.)
RedirectUri URL-адрес, по которому пользователи отправляются после проверки подлинности на платформе удостоверений Майкрософт.
PostLogoutRedirectUri URL-адрес, на который перенаправляются пользователи после выхода из системы.
Scope Список запрашиваемых областей, разделенных пробелами.
ResponseType Запрос, чтобы ответ проверки подлинности содержал код авторизации и токен идентификатора.
TokenValidationParameters Список параметров для проверки токенов. В этом случае для ValidateIssuer задано значение false, чтобы указать, что он может принимать вход из любого личного, рабочего или учебного типа учетной записи.
Notifications Список делегатов, которые могут выполняться в сообщениях OpenIdConnect.

Заметка

Настройка ValidateIssuer = false — это упрощенный вариант для этого быстрого старта. В реальных приложениях проверьте издателя. Ознакомьтесь с примерами, чтобы понять, как это сделать.

Вызов проверки подлинности

Вы можете заставить пользователя войти в систему, запросив проверку аутентификации в вашем контроллере.

public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties{ RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }
}

Совет

Запрос запроса на проверку подлинности с помощью этого метода необязателен. Обычно вы используете его, если требуется, чтобы представление было доступно как для пользователей, прошедших проверку подлинности, так и от пользователей, не прошедших проверку подлинности. Кроме того, можно защитить контроллеры с помощью метода, описанного в следующем разделе.

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

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

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

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

Дальнейшие действия

Чтобы получить полное пошаговое руководство по созданию приложений и новых функций, включая полное объяснение этого быстрого старта, попробуйте руководство по ASP.NET.