Как зарегистрировать имя участника-службы для сервера отчетов

При развертывании служб Reporting Services в сети, где протокол Kerberos используется для взаимной проверки подлинности, а сервер отчетов настроен для запуска от учетной записи пользователя домена, необходимо создать для службы сервера отчетов имя участника-службы (SPN). Кроме того, при настройке пользователя домена в качестве учетной записи службы следует настроить сервер отчетов для использования проверки подлинности NTLM.

Сведения об именах участников-служб

Имя участника-службы представляет собой уникальный идентификатор службы в сети, использующей проверку подлинности по протоколу Kerberos. Оно состоит из класса службы, имени узла и номера порта. В сети с проверкой подлинности по протоколу Kerberos имя участника-службы для сервера должно быть зарегистрировано либо со встроенной учетной записью компьютера (например, «Сетевая служба» или «Локальная система»), либо с учетной записью пользователя. Регистрация имен участников-служб для встроенных учетных записей производится автоматически. Если же служба запускается от учетной записи пользователя домена, необходимо вручную зарегистрировать имя участника-службы для применяемого типа учетной записи.

Создание имени участника-службы производится при помощи программы командной строки SetSPN. Дополнительные сведения см. в разделе Setspn технического центра Microsoft Windows Server.

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

Синтаксис

Синтаксис команд, применяющийся в программе SetSPN для создания имени участника-службы для сервера отчетов, выглядит следующим образом.

Setspn -a http/<computername>.<domainname>:<port> <domain-user-account>

Программа SetSPN входит в пакет средств поддержки для Windows Server 2003 с пакетом обновления 1 (SP1), который загружается отдельно. Аргумент -a позволяет зарегистрировать имя службы с указанной учетной записью.

HTTP — класс службы. Веб-служба сервера отчетов запускается в службе HTTP.SYS. Создание имени участника-службы для службы HTTP имеет один побочный эффект: всем веб-приложениям на том же компьютере (включая размещенные в службах IIS) будут предоставляться билеты на основе учетной записи пользователя домена. Если эти службы запускаются от имени других учетных записей, то запросы на проверку подлинности будут завершаться ошибкой. Чтобы избежать этой проблемы, необходимо настроить все HTTP-приложения для запуска от одной и той же учетной записи либо назначить для каждого из приложений заголовок, а для каждого из узлов создать отдельное имя участника-службы. При настройке заголовков узлов изменения в DNS придется вносить вне зависимости от настройки служб Reporting Services.

Значения <computername>, <domainname> и <port> составляют уникальный сетевой адрес компьютера, на котором расположен сервер отчетов. Это может быть как локальное имя узла, так и полное доменное имя. Если имеется всего один домен и используется порт 80, аргументы <domainname> и <port> в командной строке можно не указывать. Аргумент <domain-user-account> представляет учетную запись пользователя, под которой выполняется служба сервера отчетов и под которой зарегистрировано имя службы.

Регистрация имени участника-службы для учетной записи пользователя домена

Регистрация имени участника-службы для службы сервера отчетов, которая запускается от имени пользователя домена

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

  2. Загрузите с центра загрузки и установите средства поддержки для Windows Server 2003 с пакетом обновления 1 (SP1).

  3. Войдите на контроллер домена как администратор домена.

  4. Откройте окно «Командная строка».

  5. Скопируйте следующую команду, заменив заполнители значениями для конкретной сети:

    Setspn -a http/<computer-name>.<domain-name>:<port> <domain-user-account>
    
  6. Выполните команду.

  7. Откройте файл RsReportServer.config и найдите раздел <AuthenticationTypes>. Добавьте <RSWindowsNegotiate/> в качестве первой записи этого раздела для включения NTLM.