Проверка подлинности пользователей с помощью проверки подлинности Windows (VB)

корпорацией Майкрософт

Узнайте, как использовать аутентификацию Windows в контексте приложения MVC. Вы узнаете, как включить аутентификацию Windows в файле веб-конфигурации приложения и как настроить аутентификацию с помощью IIS. Наконец, вы узнаете, как использовать атрибут «Authorize» для ограничения доступа к действиям контроллера для определенных пользователей или групп Windows.

Цель этого руководства состоит в том, чтобы объяснить, как вы можете воспользоваться функциями безопасности, встроенными в информационные службы Интернета, чтобы защитить пароли в ваших приложениях MVC. Вы узнаете, как разрешить вызов действия контроллера только определенным пользователям Windows или пользователям, всданным в определенные группы Windows.

Использование аутентификации Windows имеет смысл при создании внутреннего веб-сайта компании (сайт интрасети), и вы хотите, чтобы ваши пользователи могли использовать свои стандартные имена пользователей Windows и пароли при доступе к веб-сайту. Если вы создаете веб-сайт с внешним видом на внешний вид (интернет-сайт) рассмотрите возможность использования аутентификации Форм.

Включение аутентификации Windows

При создании нового приложения mVC ASP.NET проверка подлинности Windows по умолчанию не включена. Проверки подлинности форм — это тип проверки подлинности по умолчанию, включенный для приложений MVC. Необходимо включить аутентификацию Windows, изменив веб-конфигурацию приложения MVC (web.config). Найдите <раздел> проверки подлинности и измените его, чтобы использовать Windows вместо формы аутентификации следующим образом:

<authentication mode="Windows">

</authentication>

Когда вы включите аутентификацию Windows, ваш веб-сервер становится ответственным за аутентификацию пользователей. Как правило, существует два различных типа веб-серверов, которые используются при создании и развертывании ASP.NET mVC-приложений.

Во-первых, при разработке приложения MVC используется веб-сервер ASP.NET разработки, включенный в Visual Studio. По умолчанию веб-сервер ASP.NET разработки выполняет все страницы в контексте текущей учетной записи Windows (независимо от учетной записи, которую вы использовали для входа в Windows).

Веб-сервер ASP.NET разработки также поддерживает аутентификацию NTLM. Вы можете включить проверку подлинности NTLM, нажав правой кнопкой назовем название вашего проекта в окне Solution Explorer и выбрав свойства. Затем выберите веб-вкладку и проверьте флажок NTLM (см. рисунок 1).

Рисунок 1 - Включение аутентификации NTLM для веб-сервера ASP.NET разработки

clip_image002

Для производственного веб-приложения, с другой стороны, вы используете IIS в качестве веб-сервера. IIS поддерживает несколько типов аутентификации, включая:

  • Базовая аутентификация - определяется как часть протокола HTTP 1.0. Отправляет имена пользователей и пароли в ясном тексте (Base64 закодирован) через Интернет. - Digest Аутентификация - Отправляет хэш пароля, а не сам пароль, через Интернет. - Интегрированная проверка подлинности Windows (NTLM) - лучший тип аутентификации для использования в внутрисетевых средах с использованием окон. - Проверка подлинности сертификата - Обеспечивает аутентификацию с помощью сертификата на стороне клиента. Сертификат отображается на учетную запись пользователя Windows.

Note

Более подробный обзор этих различных типов аутентификации см. https://msdn.microsoft.com/library/aa292114(VS.71).aspx

Для включения определенного типа аутентификации можно использовать менеджер информационных служб Интернета. Имейте в виду, что все типы аутентификации не доступны в случае каждой операционной системы. Кроме того, если вы используете IIS 7.0 с Windows Vista, вам необходимо включить различные типы проверки подлинности Windows, прежде чем они появятся в менеджере информационных служб Интернета. Панель открытого управления, программы, программы и функции, включите или выключите функции Windowsи расширьте узлы информационных служб Интернета (см. рисунок 2).

Рисунок 2 - Включение функций Windows IIS

clip_image004

Используя информационные службы Интернета, можно включить или отключить различные типы аутентификации. Например, на рисунке 3 показано отключение анонимной аутентификации и включение интегрированной проверки подлинности Windows (NTLM) при использовании IIS 7.0.

Рисунок 3 - Включение интегрированной аутентификации Windows

clip_image006

Авторизация пользователей и групп Windows

После включения аутентификации Windows <можно> использовать атрибут Authorize для управления доступом к контроллерам или действиям контроллера. Этот атрибут может быть применен ко всему контроллеру MVC или определенному действию контроллера.

Например, контроллер Home в листинге 1 предоставляет три действия под названием Index (), CompanySecrets() и StephenSecrets(). Любой человек может вызвать действие Индекса () Однако только члены локальной группы менеджеров Windows могут ссылаться на действия CompanySecrets() Наконец, только пользователь домена Windows по имени Стивен (в домене Редмонд) может вызвать действие StephenSecrets ()

Список 1 - Контролеры

<HandleError()> _
Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index()
        Return View()
    End Function

    <Authorize(Roles:="Managers")> _
    Function CompanySecrets()
        Return View()
    End Function


    <Authorize(Users:="redmond\swalther")> _
    Function StephenSecrets()
        Return View()
    End Function

End Class

Note

Из-за управления учетными записями пользователей Windows (UAC), при работе с Windows Vista или Windows Server 2008, местная группа администраторов будет вести себя иначе, чем другие группы. Атрибут <Authorize> не распознает правильно гостевую группу администраторов, если вы не измените настройки UAC компьютера.

То, что происходит при попытке вызвать действие контроллера, не будучи правильными разрешениями, зависит от типа включенной аутентификации. По умолчанию при использовании ASP.NET сервера разработки вы просто получаете пустую страницу. Страница подается с 401 Не авторизованным статусом ответа HTTP.

Если, с другой стороны, вы используете IIS с отключенной аутентификацией Anonymous и включенной базовой аутентификацией, то вы продолжаете получать запрос на диалог входа каждый раз, когда вы запрашиваете защищенную страницу (см. рисунок 4).

Рисунок 4 - Базовый диалог о входе в систему аутентификации

clip_image008

Сводка

В этом уроке объясняется, как можно использовать аутентификацию Windows в контексте ASP.NET приложения MVC. Вы узнали, как включить аутентификацию Windows в файле веб-конфигурации приложения и как настроить аутентификацию с помощью IIS. Наконец, вы узнали, как использовать атрибут <Authorize> для ограничения доступа к действиям контроллера для определенных пользователей или групп Windows.