Устранение неполадок расширенной защиты (службы Reporting Services)

В этом разделе описывается устранение неполадок, встречающихся при использовании расширенной защиты в службах SQL Server 2008 R2 Службы Reporting Services. Приведенные здесь сведения также могут быть полезны при устранении неполадок проверки подлинности общего характера, поскольку основная причина этих неполадок может заключаться к конфигурации расширенной защиты. Сведения о последних изменениях, внесенных в расширенную защиту, см. в статье Новые сведения о расширенной защите.

Common issues and support scenarios

Error messages

Error states

Обычные проблемы и сценарии поддержки

Как проверить текущие настройки расширенной защиты

library!DefaultDomain!698!12/29/2009-10:14:49:: i INFO: Initializing RSWindowsExtendedProtectionLevel to 'Off' as specified in Configuration file.

library!DefaultDomain!698!12/29/2009-10:14:49:: i INFO: Initializing RSWindowsExtendedProtectionScenario to 'Proxy' as specified in Configuration file.

Как узнать, что сбой проверки подлинности вызван расширенной защитой

Журнал трассировки служб сервера отчетов содержит записи, которые выглядят примерно следующим образом:

http!rshost!ec0!12/29/2009-11:01:37:: i INFO: Ошибка проверки подлинности, состояние ошибки: 46

Номер состояния ошибки и другие сведения приведены в списке error states в конце этого раздела.

Как удостовериться в том, что проверки расширенной защиты выполняются

Включите подробный уровень ведения журнала, изменив файл конфигурации reportingservicesservice.exe.config. В разделе <RStrace> задайте:

<add name=”Components” value=”all:4” /> 
  • Перезапустите службу.

  • Если подробный уровень ведения журнала включен, при проверке подлинности в журнал заносятся строки, которые указывают, что выполняется проверка привязки каналов, привязки служб или того и другого, подобные следующим:

http!rshost!ec0!12/29/2009-11:01:37:: v VERBOSE: Выполнение проверки привязки канала как учетной записи-посредника.

http!rshost!7b0!12/29/2009-11:26:23:: v VERBOSE: Выполнение проверки привязки службы.

Дополнительные сведения см. в разделе Файл конфигурации ReportingServicesService.

Каталог сервера отчетов

На момент выхода SQL Server 2008 R2 в клиент Microsoft SQL не была добавлена поддержка расширенной защиты. Клиент SQL используется для подключения к источникам данных SQL Server и базе данных каталога служб Службы Reporting Services. Это ограничение в клиенте SQL влияет на службах Службы Reporting Services следующим образом:

  • На SQL Server, на котором расположен каталог базы данных служб Службы Reporting Services, нельзя включить расширенную защиту, поскольку сервер отчетов не сможет подключиться к каталогу базы данных и будет возвращать ошибки проверки подлинности.

  • Ни на одном из серверов SQL Server, которые используются в качестве источников данных для отчетов служб Службы Reporting Services, нельзя включать расширенную защиту, поскольку в случае ее включения попытки сервера отчетов подключиться к источнику данных для отчета завершатся неудачей и будут возвращены ошибки проверки подлинности. Возможным решением является переключение источников данных служб Службы Reporting Services на использование собственных поставщиков, а не клиента SQL. Например, настройте источники данных для драйвера ODBC, после чего следует использовать собственный клиент SQL, поскольку он поддерживает расширенную защиту.

Что происходит, если расширенная защита включена, а протокол SSL не настроен

Поведение зависит от настройки RSWindowsExtendedProtectionScenario в файле конфигурации rsreportserver.config.

Если параметру RSWindowsExtendedProtectionScenario задано значение Direct, а SSL отсутствует

Если параметр RSWindowsExtendedProtectionScenario имеет значение Direct и отсутствует резервирование URL SSL для сервера отчетов и диспетчера отчетов, обычно пользователи, открывающие сервер отчетов или диспетчер отчетов, видят пустое окно.

Происходит это потому, что если SSL отсутствует, а свойству RSWindowsExtendedProtectionScenario присвоено значение Direct, сервер отчетов отключает типы проверки подлинности <RSWindowsNTLM />, <RSWindowsNegotiate /> и <RSWindowsKerberos />. Поэтому включенных типов проверки подлинности не остается, и сервер отчетов не будет отвечать на запросы. В результате этого окна будут пустыми.

В файле журнала трассировки будут содержаться сообщения об ошибках наподобие следующих:

configmanager!DefaultDomain!938!12/29/2009-11:39:39:: e ERROR: SSL требуется для связи с сервером отчетов, если для параметра ExtendedProtectionScenario присвоено значение Direct

configmanager!DefaultDomain!938!12/29/2009-11:39:39:: e ERROR: SSL требуется для диспетчера отчетов, если параметру ExtendedProtectionScenario присвоено значение Direct

Если свойству RSWindowsExtendedProtectionScenario задано значение Proxy и SSL отсутствует

Если параметр RSWindowsExtendedProtectionScenario имеет значение «Proxy» и в среде не установлен SSL, то обычно пользователи, открывающие сервер отчетов или диспетчер отчетов, видят страницу с запросом ввода учетных данных, которые после их ввода так и не проходят проверку подлинности. Если SSL настроен на сервере отчетов, то для решения проблемы необходимо добавить «s» в URL-адресе сервера отчетов или диспетчера отчетов, указанного в браузере. Например, применение https://<uri> решает проблему появления диалогового окна проверки подлинности, если она возникла потому, что свойство RSWindowsExtendedProtectionSscenario имеет значение proxy.

В журнале трассировки сервера отчетов будут содержаться сообщения наподобие следующих:

http!rshost!ec0!12/29/2009-11:01:37:: i INFO: Выполнение проверки привязки канала как учетной записи-посредника

http!rshost!76c!12/29/2009-10:26:12:: i INFO: Ошибка проверки подлинности, состояние ошибки: 45

http!rshost!ec0!12/29/2009-11:01:37:: i INFO: Выполнение проверки привязки канала как учетной записи-посредника

http!rshost!ec0!12/29/2009-11:01:37:: i INFO: Ошибка проверки подлинности, состояние ошибки: 46

После включения расширенной защиты соединение удается установить в Internet Explorer, но не удается установить его с помощью Report Builder, Management Studio или любого клиента .NET

Это возможно только в операционных системах до Windows 7 и Windows 2008 R2. Выпуски предыдущих версий Windows изначально выходили без функции расширенной защиты, поэтому на компьютер с более старой версией операционной системы, возможно, не установлены все обновления, которые обеспечивают поддержку этой функции, включая обновление расширенной защиты для .NET Framework.

Если параметр RSWindowsExtendedProtectionLevel имеет значение Allow или Require, клиентское приложение, работающее под операционной системой, которая поддерживает расширенную защиту, должно предоставить привязку канала и иногда сервера. В данном примере:

  • Internet Explorer был обновлен с добавлением поддержки расширенной защиты, как часть обновления Windows для добавления этой функции.

  • Однако платформа .NET Framework обновлена не была. Платформа .NET Framework требуется для таких клиентов .NET, как Report Builder и Management Studio.

Чтобы удостовериться, что проблема состоит именно в этом, отключите расширенную защиту и проверьте, может ли клиентское приложение .NET установить соединение. Чтобы отключить расширенную защиту:

  1. Задайте для свойства RSWindowsExtendedProtectionLevel значение Off в файле RSReportServer.config.

  2. Перезапустите службы сервера отчетов.

Для решения этой проблемы необходимо загрузить все обновления.NET Framework.

Почему при включенной расширенной защите проверка подлинности локальных соединений проходит успешно, а удаленных завершается ошибкой

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

Поэтому при использовании соединения по HTTP и указанных ниже параметров конфигурации имеет место следующее:

  • RSWindowsExtendedProtectionLevel присвоено значение Require

    AND

  • RSWindowsExtendedProtectionScenario присвоено значение Proxy

Локальные соединения будут успешно устанавливаться, а удаленные — завершаться ошибкой.

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

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

Ошибка «401 — Нет доступа» при использовании заголовка узла

Такое развитие событий характерно для масштабного развертывания служб Службы Reporting Services и происходит, если диспетчер отчетов и сервер отчетов находятся на одном компьютере и оба используют заголовки узлов с проверкой подлинности Windows. Например, при попытке открыть диспетчер отчетов по адресу http://<thename>/reports вместо ожидаемого списка отчетов и папок откроется сообщение об ошибке «HTTP 401 (нет доступа)».

Ссылка <thename> является не физическим именем компьютера, а рассматривается как заголовок узла. Это альтернативное имя компьютера, на котором установлены службы Службы Reporting Services. Заголовки узлов также используются в качестве одного из источников допустимых SPN, когда службы Службы Reporting Services вычисляет действующий список SPN для расширенной защиты.

Во избежание ошибки «401 — Нет доступа» необходимо добавить NetBIOS и полное доменное имя для <thename> в список BackConnectionHostNames, хранящийся в реестре Windows. После внесения изменений в реестр перезагрузите компьютер.

Дополнительные сведения о внесении изменений в реестр см. в разделе «Метод 2. Указание имен узлов» в статье 896861 базы знаний Майкрософт, You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or a later version.

Сообщения об ошибках

В файле журнала трассировки служб сервера отчетов может содержаться следующий список сообщений.

Сообщение об ошибке

Тип

Причина

Шаги устранения неполадок

Параметр ExtendedProtectionScenario отсутствует или является недопустимым

Ошибка

  • В файле rsreportserver.config отсутствует RSWindowsExtendedProtectionScenario.

  • В файле конфигурации обновите значения по умолчанию.

  • Значение по умолчанию для параметра RSWindowsExtendedProtectionLevel равно Off.

  • Значение по умолчанию для параметра RSWindowsExtendedProtectionScenario равно Proxy.

SSL требуется для связи с сервером отчетов, если для параметра ExtendedProtectionScenario присвоено значение Direct

Ошибка

  • Параметру RSWindowsExtendedProtectionScenario присвоено значение Direct.

  • При использовании параметра Direct требуется соединение по SSL.

  • Получите сертификат SSL и задайте URL SSL для сервера отчетов и диспетчера отчетов. То же самое необходимо сделать и для центра администрирования SharePoint при использовании служб Службы Reporting Services в режиме интеграции с SharePoint.

  • Присвойте параметру RSWindowsExtendedProtectionLevel значение Off, чтобы можно было получить и настроить сертификат SSL.

  • Присвойте параметру RSWindowsExtendedProtectionScenario значение Any, если сертификат SSL настраиваться не будет, и при этом требуется хоть какая-то защита.

Трафик HTTP на пути к серверу отчетов не сможет пройти проверку подлинности NTLM, Kerberos и Negotiate

Предупреждение

  • Параметру RSWindowsExtendedProtectionScenario присвоено значение Direct.

  • При значении Direct требуется SSL.

  • Резервирование URl HTTP настроено. Проверку подлинности по этому резервированию URL-адреса пройти не удастся.

  • Для связи с сервером отчетов используйте HTTPS.

  • Удалите резервирование URL HTTP с помощью диспетчера конфигурации служб Службы Reporting Services.

SSL требуется для диспетчера отчетов, если параметру ExtendedProtectionScenario присвоено значение Direct

Ошибка

  • Параметру RSWindowsExtendedProtectionScenario присвоено значение Direct.

  • При значении Direct требуется SSL.

  • В диспетчере отчетов не настроен URL SSL.

  • Получите сертификат SSL и задайте URL SSL для сервера отчетов и диспетчера отчетов. То же самое необходимо сделать и для центра администрирования SharePoint при использовании служб Службы Reporting Services в режиме интеграции с SharePoint.

  • Присвойте параметру RSWindowsExtendedProtectionLevel значение Off, чтобы можно было получить и настроить сертификат SSL.

  • Присвойте параметру RSWindowsExtendedProtectionScenario значение Any, если сертификат SSL настраиваться не будет, и при этом требуется хоть какая-то защита.

Прямые соединения с сервером отчетов не смогут пройти проверку подлинности NTLM, Kerberos и Negotiate

Предупреждение

  • Параметр RSWindowsExtendedProtectionScenario имеет значение Proxy, в диспетчере отчетов не задан URL SSL.

  • При таких настройках пользователь ДОЛЖЕН устанавливать соединение с ПРОКСИ по каналу SSL. Соединение может быть разорвано устройством прокси. При установлении прямого соединения с сервером SSRS без канала SSL проверку подлинности пройти не удастся.

  • Убедитесь в том, что клиенты используют только HTTPS.

  • Убедитесь в том, что настроен прокси, на котором настроено завершение SSL.

  • Убедитесь в том, что все компьютеры, локальные и удаленные, настроены на использование прокси для подключения к серверу отчетов и диспетчеру отчетов. Для этого может потребоваться обновление DNS, обновление прокси браузера или применение пользовательских записей файла HOSTS для локального компьютера.

  • Настройте URL SSL на сервере служб Службы Reporting Services для сервера отчетов и диспетчера отчетов или в центре администрирования SharePoint при использовании Службы Reporting Services в режиме интеграции с SharePoint. Для всех локальных соединений необходимо использовать URL SSL. При этом предполагается, что ни один прокси не настроен с завершением.

  • Явно задайте, что диспетчер отчетов будет использовать URL прокси с SSL.

Трафик HTTP на пути к диспетчеру отчетов может не пройти проверку подлинности NTLM, Kerberos и Negotiate

Предупреждение

  • Параметру ExtendedProtectionScenario присвоено значение Proxy, а для диспетчера отчетов задан URL SSL.

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

  • Для локальных соединений c диспетчером отчетов необходимо использовать SSL.

  • Убедитесь в том, что клиенты используют только HTTPS (канал SSL).

  • Убедитесь в том, что настроен прокси, на котором настроено завершение SSL.

  • Убедитесь в том, что все компьютеры, локальные и удаленные, настроены на использование прокси для подключения к серверу отчетов и диспетчеру отчетов. Для этого может потребоваться обновление DNS, обновление прокси браузера или применение пользовательских записей файла HOSTS для локального компьютера.

  • Настройте URL SSL на сервере служб Службы Reporting Services для сервера отчетов и диспетчера отчетов. Для всех локальных соединений необходимо использовать URL SSL. При этом предполагается, что ни один прокси не настроен с завершением.

  • Явно задайте, что диспетчер отчетов будет использовать URL прокси с SSL.

Состояние ошибки

В этом разделе приведены имена и описание кодов ошибок, связанных с расширенной защитой, которые заносятся в журнал трассировки служб сервера отчетов. Дополнительные сведения см. в разделе Журнал трассировки службы сервера отчетов.

Код

Имя состояния ошибки

Описание

44

SNIAUTH_ERRST_SSPIHANDSHAKE_CHANNELBINDINGS_NOTSUPPORTED

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

45

SNIAUTH_ERRST_SSPIHANDSHAKE_CHANNELBINDINGS_EMPTYORWRONG

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

46

SNIAUTH_ERRST_SSPIHANDSHAKE_CHANNELBINDINGS_NULLOREMPTYORWRONG

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

48

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_UNSUPPORTED

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

49

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_QUERYCONTEXTATTRIBUTES

Функция QueryContextAttributes не смогла получить привязки служб. Причину ошибки указывает код ошибки Windows.

51

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_NULL

Уровень расширенной защиты клиента задан равным значению «Разрешено» или «Требуется», но клиент не предоставил имя участника-службы (SPN). Для подключения клиент должен поддерживать расширенную защиту. Возможно, необходимо установить пакет обновления операционной системы, поддерживающий привязку служб и каналов.

52

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_EMPTY

Уровень расширенной защиты клиента задан равным значению «Разрешено» или «Требуется», но клиент не предоставил SPN. Для подключения клиент должен поддерживать расширенную защиту.

53

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_SERVICECLASSMISMATCH

Недействительный элемент класса службы в полученном SPN.

54

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_IPADDRESSMISMATCH

Недействительный элемент IP-адреса в полученном SPN.

55

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_HOSTNAMEMISMATCH

Недействительный элемент узла в полученном SPN.

56

SNIAUTH_ERRST_SSPIHANDSHAKE_OOM

Не удалось выделить память при проверке полученного SPN.

57

SNIAUTH_ERRST_SSPIHANDSHAKE_SERVICEBINDINGS_WSASTRINGTOADDRESSFAILEDFORIPV6

Функция WSAStringToAddress не смогла преобразовать элемент IP-адреса принятого SPN в структуру адреса. Причину ошибки указывает код ошибки Windows.