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


Анонимная проверка подлинности <AnonymousAuthentication>

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

Элемент <anonymousAuthentication> управляет тем, как службы IIS 7 обрабатывают запросы от анонимных пользователей. Вы можете изменить <anonymousAuthentication> элемент, чтобы отключить анонимную проверку подлинности, или настроить службы IIS для использования пользовательской учетной записи пользователя для обработки анонимных запросов.

Анонимная проверка подлинности предоставляет пользователям доступ к общедоступным областям веб-сайта или ftp-сайта без запроса имени пользователя или пароля. По умолчанию для предоставления анонимного доступа используется учетная запись IUSR, которая появилась в IIS 7.0 и заменяет IUSR_computername учетную запись IIS 6.0. Приложение — это группирование файлов, которое предоставляет содержимое или предоставляет службы по протоколам, таким как HTTP. При создании приложения в IIS путь к нему становится частью URL-адреса сайта.

По умолчанию IIS 7 использует анонимную проверку подлинности. Необходимо отключить анонимную проверку подлинности для любого веб-сайта, веб-приложения или веб-службы, для которых требуется включить другие методы проверки подлинности, такие как обычная или проверка подлинности Windows.

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

Версия Примечания
IIS 10.0 Элемент <anonymousAuthentication> не был изменен в IIS 10.0.
IIS 8,5 Элемент <anonymousAuthentication> не был изменен в IIS 8.5.
IIS 8,0 Элемент <anonymousAuthentication> не был изменен в IIS 8.0.
IIS 7,5 Элемент <anonymousAuthentication> не был изменен в IIS 7.5.
IIS 7.0 Элемент <anonymousAuthentication> появился в IIS 7.0.
IIS 6,0 Элемент <anonymousAuthentication> заменяет свойства метабазы IIS 6.0 AuthFlags, AnonymousUserName и AnonymousUserPassword .

Настройка

Элемент <anonymousAuthentication> включен в установку iis 7 по умолчанию.

Инструкции

Отключение анонимной проверки подлинности

  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. В области Проверка подлинности выберите Анонимная проверка подлинности, а затем нажмите кнопку Отключить на панели Действия .
    Снимок экрана: панель

Изменение учетных данных анонимной проверки подлинности из учетной записи IUSR

  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. В диалоговом окне Изменение учетных данных анонимной проверки подлинности выполните одно из следующих действий.

    • Выберите Удостоверение пула приложений , чтобы использовать набор удостоверений для пула приложений, а затем нажмите кнопку ОК.
      Снимок экрана: параметр Анонимное удостоверение пользователя для параметра Удостоверение пула приложений.

    • Нажмите кнопку Задать..., а затем в диалоговом окне Установка учетных данных введите имя пользователя для учетной записи в поле Имя пользователя , введите пароль учетной записи в поля Пароль и Подтверждение пароля , нажмите кнопку ОК, а затем еще раз нажмите кнопку ОК .
      Снимок экрана: пустое диалоговое окно

      Примечание

      Если вы используете эту процедуру, предоставьте новой учетной записи только минимальные привилегии на компьютере сервера IIS.

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

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

Атрибуты

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

Указывает, включена ли анонимная проверка подлинности.

Значение по умолчанию — true.
logonMethod Необязательный атрибут перечисления.

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

Числовое значение равно 1.
ClearText Этот тип входа сохраняет имя и пароль в пакете проверки подлинности, что позволяет серверу устанавливать подключения к другим сетевым серверам при олицетворении клиента.

Числовое значение равно 3.
Interactive Этот тип входа предназначен для пользователей, которые будут использовать компьютер в интерактивном режиме.

Числовое значение равно 0.
Network Этот тип входа предназначен для высокопроизводительных серверов для проверки подлинности паролей в виде открытого текста. Учетные данные не кэшируются для этого типа входа.

Числовое значение равно 2.
password Необязательный атрибут String.

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

Примечание: Чтобы избежать сохранения незашифрованных строк паролей в файлах конфигурации, всегда используйте AppCmd.exe или диспетчер IIS для ввода паролей. При использовании этих средств управления строки паролей будут зашифрованы автоматически перед записью в XML-файлы конфигурации. Это обеспечивает лучшую защиту паролей, чем хранение незашифрованных паролей.
username Необязательный атрибут String.

Указывает имя пользователя для анонимной проверки подлинности. Если оставить это значение пустым (то есть username="), Анонимная проверка подлинности использует удостоверение пула приложений для проверки подлинности анонимных пользователей.

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

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

Отсутствует.

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

В следующем примере конфигурации настраивается анонимная проверка подлинности для веб-сайта IIS 7 или веб-приложения для использования локальной учетной записи на веб-сервере. (IIS 7 автоматически использует шифрование AES для шифрования пароля.)

<security> <authentication>
   <anonymousAuthentication
      userName="User1"
      password="[enc:AesProvider:57686f6120447564652c2049495320526f636b73:enc]" />
   </authentication>
</security>

Пример кода

В следующих примерах включается анонимная проверка подлинности и изменяется имя пользователя и пароль по умолчанию, используемые для анонимной проверки подлинности, на учетную запись с именем IUSR и пароль P@ssw0rd.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /userName:"IUSR" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /password:"P@ssw0rd" /commit:apphost

Примечание

При использовании AppCmd.exe для настройки этих параметров для параметра apphostфиксации необходимо задать значение . Это зафиксирует параметры конфигурации в соответствующем разделе расположения в файле ApplicationHost.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.GetApplicationHostConfiguration();
         ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = true;
         anonymousAuthenticationSection["userName"] = @"IUSR";
         anonymousAuthenticationSection["password"] = @"P@ssw0rd";
         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.GetApplicationHostConfiguration
      Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = True
      anonymousAuthenticationSection("userName") = "IUSR"
      anonymousAuthenticationSection("password") = "P@ssw0rd"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = true;
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR";
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd";

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = True
anonymousAuthenticationSection.Properties.Item("userName").Value = "IUSR"
anonymousAuthenticationSection.Properties.Item("password").Value = "P@ssw0rd"

adminManager.CommitChanges()