Как настроить обычную проверку подлинности в службах Reporting Services

По умолчанию службы Reporting Services принимают запросы, в которых задана проверка подлинности NTLM или Negotiated. Если конфигурация развертывания включает клиентские приложения или браузеры, использующие обычную проверку подлинности, то необходимо добавить обычную проверку подлинности в список поддерживаемых типов. Кроме того, если планируется использование построителя отчетов, то необходимо разрешить анонимный доступ к его файлам.

Настройка обычной проверки подлинности сервера отчетов производится путем изменения XML-элементов и значений в файле RSReportServer.config. Чтобы заменить значения по умолчанию, можно скопировать и вставить примеры из этого раздела.

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

Шифрование канала (например, по протоколу SSL) необходимо для тех случаев, когда надо снизить риск перехвата учетных данных во время пересылки по сети на контроллер домена. Сама процедура обычной проверки подлинности подразумевает передачу имени пользователя открытым текстом, а пароля – в кодировке Base 64. Шифрование канала позволяет сделать пакет нечитаемым. Дополнительные сведения см. в разделе Настройка сервера отчетов для соединений по протоколу SSL.

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

ПримечаниеПримечание

Следующие параметры настраиваются для сервера отчетов, работающего в собственном режиме. Если развертывание сервера отчетов производилось в режиме интеграции с SharePoint, то необходимо пользоваться настройками проверки подлинности по умолчанию, в которых задана встроенная безопасность Windows. Сервер отчетов использует внутренние функции модуля проверки подлинности Windows по умолчанию для поддержки серверов отчетов в режиме интеграции с SharePoint.

Настройка сервера отчетов для использования обычной проверки подлинности

  1. Откройте файл RSReportServer.config в текстовом редакторе.

  2. Найдите параметр <Authentication>.

  3. Выберите и скопируйте наиболее подходящую из следующих XML-структур. Первая XML-структура содержит заполнители для всех элементов, описанных в следующем разделе.

    <Authentication>
          <AuthenticationTypes>
                 <RSWindowsBasic>
                       <LogonMethod>3</LogonMethod>
                       <Realm></Realm>
                       <DefaultDomain></DefaultDomain>
                 </RSWindowsBasic>
          </AuthenticationTypes>
          <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

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

          <AuthenticationTypes>
                 <RSWindowsBasic/>
          </AuthenticationTypes>
    
  4. Вставьте его вместо существующих элементов в элементе <Authentication>.

    При использовании нескольких типов проверки подлинности добавьте только элемент RSWindowsBasic, но не удаляйте элементы для RSWindowsNegotiate, RSWindowsNTLM или RSWindowsKerberos.

    Если планируется поддержка браузера Safari, то настраивать сервер отчетов на использование нескольких типов проверки подлинности нельзя. Необходимо задать только RSWindowsBasic, удалив все остальные элементы.

    Следует заметить, что Custom нельзя использовать с другими типами проверки подлинности.

  5. Замените пустые значения для элементов <Realm> и <DefaultDomain> значениями для своей среды.

  6. Сохраните файл.

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

  8. Перезапустите сервер отчетов, чтобы очистить все открытые сеансы.

Справочник по RSWindowsBasic

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

Элемент

Обязателен

Допустимые значения

LogonMethod

Да

Если значение не указано, то будет использовано значение 3.

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

3 = вход с открытым текстом, при котором учетные данные сохраняются в пакете проверки подлинности, который отправляется в каждом HTTP-запросе. Это позволяет серверу олицетворять пользователя при соединении с другими серверами в сети. (по умолчанию)

ПримечаниеПримечание
Значения 0 (для интерактивного входа) и 1 (для входа пакетного типа) в службах SQL Server 2008 Службы Reporting Services не поддерживаются.

Realm

Необязателен

Задает секцию ресурса, включающую функции авторизации и проверки подлинности, используемые для управления доступом к защищенным ресурсам организации.

DefaultDomain

Необязателен

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

Разрешение анонимного доступа к файлам приложения построителя отчетов

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

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

  • Проверьте, что сервер отчетов настроен на использование обычной проверки подлинности.

  • Создайте в папке ReportBuilder папку bin и скопируйте в нее четыре сборки.

  • Добавьте в файл RSReportServer.config элемент IsReportBuilderAnonymousAccessEnabled и задайте ему значение True. После сохранения файла сервер отчетов создает для построителя отчетов новую конечную точку. Конечная точка предназначена для внутреннего использования, обеспечивает доступ к программным файлам и не имеет программного интерфейса, который мог бы быть использован в коде. Наличие отдельной конечной точки позволяет построителю отчетов работать в своем собственном домене приложений в процессе службы сервера отчетов.

  • Кроме того, можно задать учетную запись с минимальными правами доступа для обработки запросов в контексте безопасности, отличном от сервера отчетов. Эта учетная запись становится анонимной учетной записью для доступа к файлам построителя отчетов на сервере отчетов. Учетная запись устанавливает идентификатор потока в рабочем процессе ASP.NET. Запросы, выполняющиеся в этом потоке, передаются на сервер отчетов без проверки подлинности. Эта учетная запись является эквивалентом учетной записи IUSR_<компьютер> в службах IIS и применяется для задания контекста безопасности рабочего процесса ASP.NET, если разрешены анонимный доступ и олицетворение. Чтобы определить эту учетную запись, добавьте ее в файл Web.config построителя отчетов.

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

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

Настройка доступа к построителю отчетов на сервере отчетов, настроенном на использование обычной проверки подлинности

  1. Убедитесь, что сервер отчетов настроен на использование обычной проверки подлинности, проверив настройки проверки подлинности в файле RSReportServer.config.

  2. Создайте в папке ReportBuilder папку BIN. По умолчанию эта папка находится в каталоге \Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder.

  3. Скопируйте из папки ReportServer\Bin в папку ReportBuilder\BIN следующие сборки:

    Microsoft.ReportingServices.Diagnostics.dll

    Microsoft.ReportingServices.Interfaces.dll

    ReportingServicesAppDomainManager.dll

    RSHttpRuntime.dll

  4. Можно также создать файл Web.config для обработки запросов построителя отчетов с анонимной учетной записью.

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.web>
    <authentication mode="Windows" />  
    <identity impersonate="true " userName="username" password="password"/>
    </system.web>
    </configuration>
    

    Если включен файл Web.config, то в качестве режима проверки подлинности должно быть задано Windows.

    Атрибут Identity impersonate может иметь значение True или False.

    • Если не нужно считывание токена безопасности для приложений ASP.NET, задайте для него значение False. Запрос будет выполняться в контексте безопасности службы сервера отчетов.

    • Если необходимо считывание токена безопасности для приложений ASP.NET на уровне узла, задайте для него значение True. При указании значения True необходимо также определить анонимную учетную запись, задав элементы userName и password. Указанные учетные данные определяют контекст безопасности, в котором формируются запросы.

  5. Сохраните файл Web.config в папке ReportBuilder\bin.

  6. Откройте файл RSReportServer.config, в разделе Services найдите элемент IsReportManagerEnabled и добавьте после него следующий элемент:

    <IsReportBuilderAnonymousAccessEnabled>True</IsReportBuilderAnonymousAccessEnabled>
    
  7. Сохраните и закройте файл RSReportServer.config.

  8. Перезапустите сервер отчетов.