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


Авторизация безопасности <>

Общие сведения

Элемент <authorization> позволяет настроить учетные записи пользователей, которые могут получать доступ к сайту или приложению. Используйте авторизацию в сочетании с проверкой подлинности для защиты доступа к содержимому на сервере. Проверка подлинности подтверждает удостоверение пользователя, а авторизация определяет, к каким ресурсам пользователи могут или не могут получить доступ.

СЛУЖБЫ IIS определяют два типа правил авторизации: Разрешить правила и Запретить правила.

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

Совместимость

Версия Примечания
IIS 10.0 Элемент <authorization> не был изменен в IIS 10.0.
IIS 8,5 Элемент <authorization> не был изменен в IIS 8.5.
IIS 8,0 Элемент <authorization> не был изменен в IIS 8.0.
IIS 7,5 Элемент <authorization> не был изменен в IIS 7.5.
IIS 7.0 Элемент <authorization> появился в IIS 7.0.
IIS 6,0 Коллекция <authorization> заменяет свойства метабазы AzEnable, AzStoreName, AzScopeName и AzImpersonationLevel IIS 6.0.

Настройка

Для поддержки и настройки авторизации для сайтов и приложений на веб-сервере необходимо установить модуль авторизации по URL-адресу. Для этого выполните следующие действия.

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера. — В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты. — В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее. — На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, безопасность, а затем выберите Авторизация URL-адресов. Щелкните Далее.
    Изображение области . — На странице Выбор компонентов нажмите кнопку Далее. — На странице Подтверждение выбора установки нажмите кнопку Установить. — На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления. — В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows. — Разверните службы IIS, веб-службы, безопасность, а затем выберите Авторизация ПО URL-адресу.
    Изображение с развернутой областью - Нажмите кнопку ОК.
  2. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера. — В области иерархии диспетчер сервера разверните узел Роли и щелкните Веб-сервер (IIS). — На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей. — На странице Выбор служб ролеймастера добавления служб ролей выберите Авторизация ПО URL-адресу и нажмите кнопку Далее.
    Снимок экрана: панель — На странице Подтверждение выбора установки нажмите кнопку Установить. — На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления. — В панель управления выберите Программы и компоненты, а затем — Включение или отключение компонентов Windows. — Разверните узел Службы IIS, выберите Авторизация URL-адресов и нажмите кнопку ОК.
    Изображение развернутой области служб IIS и выбранной авторизации U R L.

Инструкции

Добавление правила авторизации

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения разверните имя сервера, узел Сайты, а затем перейдите к сайту или приложению, для которого требуется настроить авторизацию.

  3. На панели Главная дважды щелкните Правила авторизации.
    Изображение домашней панели с выделенным элементом

  4. Чтобы добавить новое правило авторизации, в области Действия щелкните Добавить разрешающее правило... или Добавить запретное правило...

  5. Примените параметры авторизации, необходимые для сайта или приложения, и нажмите кнопку ОК. Например:

    • Пример 1. Добавление правила разрешить для всех пользователей для определенных HTTP-команд:
      Изображение диалогового окна Добавление правила разрешения для всех пользователей для определенных команд H T T P, в котором показаны глаголы, введенные в поле Применить это правило к определенным командам.

    • Пример 2. Добавление правила запрета для определенного пользователя для всех HTTP-команд:
      Изображение диалогового окна добавления правила запрета авторизации для определенного пользователя для всех команд H T T P.

      Примечание

      Чтобы изменить или удалить существующее правило, выберите его в области Правила авторизации , а затем нажмите кнопку Изменить или Удалить в области Действия . Если нажать кнопку Изменить, появится диалоговое окно, позволяющее изменить правило. Это диалоговое окно похоже на диалоговые окна Добавление правила разрешения авторизации и Добавление правила запрета авторизации .

Конфигурация

Элемент можно настроить <authorization> на уровне сервера в файле ApplicationHost.config либо на уровне сайта или приложения в соответствующем Web.config файле.

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

Атрибуты

Атрибут Описание
bypassLoginPages Дополнительный логический атрибут.

Указывает, следует ли пропускать проверка авторизации для страницы, указанной в качестве страницы входа для проверки подлинности с помощью форм. Это позволит пользователям без проверки подлинности получить доступ к странице входа для входа в систему.

Значение по умолчанию — true.

Дочерние элементы

Элемент Описание
add Необязательный элемент.

Добавляет правило авторизации в коллекцию правил авторизации.
remove Необязательный элемент.

Удаляет ссылку на правило авторизации в коллекцию правил авторизации.
clear Необязательный элемент.

Удаляет все ссылки на правила авторизации из коллекции правил авторизации.

Образец конфигурации

В следующем примере конфигурации при добавлении в файл Web.config удаляются параметры авторизации IIS по умолчанию, что позволяет всем пользователям получать доступ к содержимому веб-сайта или приложения. Затем настраивается правило авторизации, которое разрешает доступ к содержимому только пользователям с правами администратора.

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

Пример кода

В следующих примерах добавляется правило разрешения авторизации, которое разрешает пользователям в группе администраторов доступ к веб-сайту Contoso.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Примечание

При необходимости можно задать для параметра фиксации значение apphost при использовании AppCmd.exe для настройки этих параметров. Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.config вместо файла Web.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()