Быстрый старт: ASP.NET веб-приложение для входа в систему пользователей Microsoft Entra
Добро пожаловать! Это, вероятно, не страница, которую вы ожидали. Пока мы работаем над исправлением, эта ссылка должна привести вас к нужной статье.
краткое руководство по . Добавление входа с помощью Корпорации Майкрософт в веб-приложение ASP.NET
Мы извиняемся за неудобства и ценим ваше терпение, пока мы работаем, чтобы получить это решено.
В этом кратком руководстве вы скачайте и запустите пример кода, демонстрирующий ASP.NET веб-приложение, которое может выполнять вход пользователей с помощью учетных записей Microsoft Entra.
Шаг 1. Настройка приложения на портале Azure
Чтобы пример кода в этом кратком руководстве работал, введите https://localhost:44368/ для URI перенаправления.
приложение настроено с помощью этого атрибута.
Шаг 2. Скачивание проекта
Запустите проект с помощью Visual Studio 2019.
Совет
Чтобы избежать ошибок, вызванных ограничениями длины пути в Windows, рекомендуется извлечь архив или клонировать репозиторий в каталог рядом с корнем диска.
Шаг 3. Приложение настроено и готово к выполнению
Мы настроили проект со значениями свойств вашего приложения.
Извлеките файл .zip в локальную папку, близкую к корневой папке. Например, извлеките C:\Azure-Samples.
Мы рекомендуем извлечь архив в каталог вблизи корневого диска, чтобы избежать ошибок, вызванных ограничениями длины пути в Windows.
Откройте решение в Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
В зависимости от версии Visual Studio может потребоваться щелкнуть правой кнопкой мыши проект >AppModelv2-WebApp-OpenIDConnect-DotNet, а затем выбрать восстановить пакеты NuGet.
Откройте консоль диспетчера пакетов, выбрав Вид>Другие окна>Консоль диспетчера пакетов. Затем выполните
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.