SPN registration for an Analysis Services instance
Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Имя субъекта-службы (SPN) однозначно идентифицирует экземпляр службы в домене Active Directory, когда Kerberos используется для взаимной проверки подлинности удостоверений клиента и службы. Имя участника-службы сопоставляется с учетной записью входа, от имени которой выполняется экземпляр службы.
Для клиентских приложений при подключении к службам Analysis Services через протокол проверки подлинности Kerberos клиентские библиотеки Analysis services формируют имя участника-службы, используя имя узла из строки подключения и других известных переменных, например класс службы, зафиксированных в любой конкретной версии служб Analysis Services.
Чтобы прошла взаимная проверки подлинности, имена участников-служб, построенные клиентом, должны соответствовать объекту имени участника-службы в контроллере домена Active Directory. Это означает, что может потребоваться регистрация нескольких имен участников-служб для единственного экземпляра служб Analysis Services, чтобы описать все способы, с помощью которых пользователь может задать имя узла в строке подключения. Например, возможно, потребуется два имени участника-службы для работы с полным доменным именем сервера (FQDN), а также для короткого имени компьютера. Правильная регистрация имени участника-службы Analysis Services необходима для выполнения успешного подключения. Если SPN отсутствует, имеет неправильный формат или повторяется, установить соединение не удастся.
Регистрация имени участника-службы выполняется вручную администратором служб Analysis Services. В отличие от компонента SQL Server Database Engine, службы Analysis Services при запуске не регистрируют автоматически имя участника-службы. Выполнять регистрацию вручную обязательно, если службы Analysis Services запускаются от имени стандартной виртуальной учетной записи, учетной записи пользователя домена или встроенной учетной записи, в том числе идентификатора безопасности службы.
Регистрация имени участника-службы не требуется, если служба запускается от имени предопределенной учетной записи управляемой службы, созданной администратором домена. Обратите внимание, что в зависимости от функционального уровня домена для регистрации имени участника-службы может потребоваться разрешение администратора домена.
Совет
Microsoft Диспетчер конфигурации Kerberos для SQL Server — это диагностическое средство, которое помогает устранять неполадки Kerberos, связанные с проблемами подключения при использовании SQL Server. Дополнительные сведения см. в разделе Диспетчер конфигурации Microsoft Kerberos для SQL Server.
Этот раздел состоит из следующих подразделов.
Когда требуется регистрация имени участника-службы
Формат имени участника-службы для Analysis Services
Регистрация имени участника-службы для виртуальной учетной записи.
Регистрация имени участника-службы для учетной записи домена.
Регистрация имени участника-службы для встроенной учетной записи
Регистрация имени участника-службы для именованного экземпляра
Регистрация имени участника-службы для кластера SSAS
Регистрация имени участника-службы для экземпляров службы SSAS, слушающих фиксированные порты
Когда требуется регистрация имени участника-службы
Любое клиентское подключение, указывающее "SSPI=Kerberos" в строка подключения, будет вводить требования к регистрации имени субъекта-службы для экземпляра служб Analysis Services.
Регистрация имени участника-службы требуется в следующих ситуациях. Более подробные сведения см. в разделе Configure Analysis Services for Kerberos constrained delegation.
Делегирование удостоверения обязательно для передачи удостоверения пользователя от клиентского приложения или службы-посредника в службы Analysis Services. Делегирование удостоверения обычно используется в тех случаях, когда для определенных объектов определены фильтры или разрешения для отдельных пользователей.
Распространенный сценарий, при котором применяется делегация удостоверения, — настройка служб-посредников, например служб Excel Services или Reporting Services, с ограниченным делегированием, когда необходимо олицетворение пользователя при получении данных из служб Analysis Services. Для поддержки данной возможности необходимо указать имя участника-службы Analysis Services в качестве целевой службы при настройке служб Excel или Reporting Services для ограниченного делегирования.
Службы Analysis Services делегируют удостоверение пользователя при получении данных из реляционной базы данных SQL Server для табличных баз данных в режиме DirectQuery. Это единственный случай, когда службы Analysis Services будут делегировать удостоверение пользователя в другую службу.
Формат имени участника-службы для Analysis Services
Для регистрации имени участника-службы используйте команду setspn . На современных операционных системах программа setspn устанавливается как системная. Дополнительные сведения см. в разделе SetSPN.
В следующей таблице описываются все части имени участника-службы для служб Analysis Services.
Элемент | Описание |
---|---|
Класс службы | MSOLAPSvc.3 определяет службу как экземпляр служб Analysis Services. «.3» — это версия протокола XMLA-over-TCP/IP, используемого в передачах служб Analysis Services. Это не связано с выпуском продукта. Таким образом, MSOLAPSvc.3 является правильным классом служб для SQL Server 2005, 2008, 2008 R2, 2012 и любого будущего выпуска служб Analysis Services до тех пор, пока сам протокол не будет изменен. |
Имя узла | Идентифицирует компьютер, на котором выполняется служба. Это может быть полное доменное имя или имя NetBIOS. Регистрация имени участника-службы необходима в обоих случаях. При регистрации имени участника-службы для имени NetBIOS сервера обязательно используйте команду SetupSPN -S для проверки повторяющихся регистраций. NetBIOS-имена не обязательно будут уникальными в лесу, а наличие повторяющихся регистраций имени субъекта-службы приведет к сбою подключения.Для сбалансированных по нагрузке кластеров служб Analysis Services имя узла должно быть виртуальным именем, назначенным кластеру. Никогда не создавайте имя участника-службы (SPN) с помощью IP-адреса. Протокол Kerberos использует возможности домена по разрешению DNS. Задание IP-адреса приводит к неиспользованию этих возможностей. |
Номер порта | Хотя номер порта и является частью синтаксиса имени участника-службы, не указывайте номер порта при регистрации имени участника-службы Analysis Services. Символ двоеточия ( : ), который, как правило, в стандартном синтаксисе имени участника-службы используется для указания номера порта, в службах Analysis Services применяется для указания имени экземпляра. Для экземпляров служб Analysis Services применяется порт по умолчанию (порт TCP 2383) или порт, назначенный службой обозревателя SQL Server (порт TCP 2382). |
Имя экземпляра | Analysis Services — службы, которые можно установить несколько раз на одном и том же компьютере. Каждый экземпляр определяется посредством его имени. Перед именем экземпляра добавляется символ двоеточия ( : ). Например, если есть главный компьютер с именем SRV01 и именованный экземпляр SSAS-Tabular, то имя участника-службы выглядит как SRV01:SSAS-Tabular. Обратите внимание, что синтаксис для указания именованного экземпляра служб Analysis Services отличается от того, что используется другими экземплярами SQL Server. Другие службы используют обратную косую черту (\) для добавления имени экземпляра в имя участника-службы. |
Service-account | Это стартовая учетная запись службы Windows MSSQLServerOLAPService . Это может быть учетная запись пользователя домена Windows, виртуальная учетная запись, управляемая учетная запись службы (MSA) или встроенная учетная запись, например идентификатор безопасности службы, NetworkService или LocalSystem. Учетная запись пользователя домена может иметь формат «домен\пользователь» или «пользователь@домен». |
Регистрация имени участника-службы для виртуальной учетной записи.
Виртуальные учетные записи для служб SQL Server являются типом записи по умолчанию. Виртуальная учетная запись — NT Service\MSOLAPService для экземпляра по умолчанию и NT Service\MSOLAP$<instance-name> для именованного экземпляра.
Как следует из имен, эти учетные записи не присутствуют в Active Directory. Виртуальная учетная запись существует только на локальном компьютере. При подключении ко внешним службам, приложениям и устройствам подключение осуществляется от имени учетной записи локальной машины. Поэтому регистрация имени участника-службы для служб Analysis Services, выполняющихся от имени виртуальной учетной записи, фактически является регистрацией SPN для учетной записи машины.
Пример синтаксиса для экземпляра по умолчанию, запущенного как NT Service\MSOLAPService.
Этот пример демонстрирует синтаксис setspn для стандартного экземпляра служб Analysis Services, запущенного под стандартной виртуальной учетной записью. В данном примере имя хост-компьютера — AW-SRV01. Как было сказано ранее, регистрация имени участника-службы должна содержать учетную запись машины вместо виртуальной учетной записи NT Service\MSOLAPService.
Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01
Примечание
Помните, что нужно добавить две регистрации имени участника-службы: одно для имени NetBIOS, а другое для полного доменного имени хост-компьютера (узла). Разные клиентские приложения используют разные соглашения об именовании узлов при подключении к службам Analysis Services. Наличие двух регистраций имени участника-службы гарантирует учет обеих версий имени узла.
Пример синтаксиса именованного экземпляра, работающего под именем NT Service\MSOLAP$<имя_экземпляра>
Этот пример демонстрирует синтаксис setspn для именованного экземпляра служб Analysis Services, запущенного под стандартной виртуальной учетной записью. В этом примере имя узла — AW-SRV02, а имя экземпляра — AW-FINANCE. Опять же, это учетная запись компьютера, указанная для имени субъекта-службы, а не виртуальная учетная запись NT Service\MSOLAP$<имя>_экземпляра.
Setspn -s MSOLAPSvc.3/AW-SRV02.AdventureWorks.com:AW-FINANCE AW-SRV02
Регистрация имени участника-службы для учетной записи домена.
Использование учетной записи домена для запуска экземпляра служб Analysis Services — это распространенная практика.
Для экземпляров служб Analysis Services, которые выполняются в сетевом или локальном кластере с балансировкой нагрузки, требуется учетная запись домена, при этом каждый экземпляр будет выполняться от имени той же учетной записи домена.
Пример синтаксиса для экземпляра по умолчанию, запущенного от имени пользователя домена.
Этот пример демонстрирует синтаксис setspn для стандартного экземпляра служб Analysis Services, запущенного от имени учетной записи пользователя домена SSAS-Serviceв домене AdventureWorks.
Setspn -s msolapsvc.3/AW-SRV01.Adventureworks.com AdventureWorks\SSAS-Service
Совет
Проверьте, было ли создано имя участника-службы для сервера Analysis Services, запустив командлет Setspn -L <domain account>
или Setspn -L <machinename>
в зависимости от способа регистрации имени участника-службы. В списке должен отобразиться MSOLAPSVC.3/<hostname> .
Регистрация имени участника-службы для встроенной учетной записи
Хотя подобный метод не рекомендуется, предыдущие установки служб Analysis Service иногда настраиваются для запуска от имени встроенной учетной записи, такой как Network Service, Local Service или Local System.
Пример синтаксиса для экземпляра по умолчанию, запущенного от имени встроенной учетной записи
Регистрация имени участника-службы для службы, выполняющейся от имени встроенной учетной записи или служебного идентификатора безопасности, выполняется с тем же синтаксисом имени участника-службы, который используется для виртуальной учетной записи. Вместо имени учетной записи используйте учетную запись компьютера:
Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com AW-SRV01
Регистрация имени участника-службы для именованного экземпляра
По умолчанию именованные экземпляры служб Analysis Services используют динамические назначения портов, обнаруженные службой SQL Server Browser. Чтобы включить подключения Kerberos, необходимо только создать имена субъектов-служб NetBIOS и FQDN для именованного экземпляра.
Пример синтаксиса для именованного экземпляра, работающего от имени пользователя домена
В следующем примере показан синтаксис именованного экземпляра setspn
AW-FINANCE
служб Analysis Services, работающего под учетной записью пользователя домена SSAS-Service в домене AdventureWorks. В данном примере имя хост-компьютера — AW-SRV01.
FQDN SPN: Setspn -s MSOLAPSvc.3/AW-SRV01.AdventureWorks.com:AW-FINANCE AdventureWorks\SSAS-Service
NetBIOS SPN: Setspn -s MSOLAPSvc.3/AW-SRV01:AW-FINANCE AdventureWorks\SSAS-Service
Примечание
Если вы настроили именованный экземпляр для прослушивания фиксированного порта, выполните следующие действия, чтобы использовать подключения Kerberos из клиентского приложения.
- Запустить службу браузера SQL Server .
- Если вы используете номер порта в строка подключения, удалите номер порта, добавьте имя экземпляра и разрешите приложению получить номер порта через службу браузера SQL Server.
Совет
Проверьте, создано ли имя субъекта-службы для именованного экземпляра Setspn -L <domain account>
SQL, выполнив команду или Setspn -L <machinename>
в зависимости от того, как было зарегистрировано имя субъекта-службы.
Microsoft Диспетчер конфигурации Kerberos для SQL Server — это диагностическое средство, которое помогает устранять неполадки Kerberos, связанные с проблемами подключения при использовании SQL Server. Это средство помогает выявлять потенциальные проблемы в именах субъектов-служб и делегированиях, а также предоставляет автоматизированные процедуры для устранения выявленных проблем. Дополнительные сведения см. в разделе Диспетчер конфигурации Microsoft Kerberos для SQL Server.
Регистрация имени участника-службы для кластера SSAS
Для кластеров отработки отказа служб Analysis Services имя узла должно быть виртуальным именем, назначенным кластеру. Это сетевое имя SQL Server, указанное во время установки SQL Server при установке служб Analysis Services на основе существующих WSFC. Это имя можно найти в Active Directory. Его также можно найти на вкладкеРесурсыролей | диспетчера | отказоустойчивости кластеров. Имя сервера на вкладке Ресурсы должно использоваться в качестве виртуального имени в команде имени субъекта-службы.
Синтаксис имени участника-службы для кластера служб Analysis Services
Setspn -s msolapsvc.3/<virtualname.FQDN > <domain user account>
Помните, что узлы в кластере служб Analysis Services должны использовать порт (TCP 2383) по умолчанию и выполняться под той же учетной записью пользователя домена, чтобы каждый узел имел один и тот же идентификатор безопасности. Дополнительные сведения см. в разделе Кластеризация служб Analysis Services SQL Server .
Регистрация имени участника-службы для экземпляров службы SSAS, настроенных на доступ по протоколу HTTP
В зависимости от требований к решению можно настроить службы Analysis Services для доступа по протоколу HTTP. Если решение содержит IIS как компонент среднего уровня и требуется проверять подлинность с помощью Kerberos, для сервера IIS может потребоваться ручная регистрация имени участника-службы. Дополнительные сведения см. в разделе Настройка параметров на компьютере под управлением IIS статьи Настройка SQL Server 2008 Analysis Services и SQL Server 2005 Analysis Services для использования проверки подлинности Kerberos.
С точки зрения регистрации имени участника-службы для экземпляра служб Analysis Services нет разницы между экземплярами, настроенными на использование протокола TCP или HTTP. Подключение к службам Analysis Services из IIS с помощью расширения MSMDPUMP ISAPI всегда производится через TCP-протокол.
Это значит, что можно использовать инструкции по регистрации имени участника-службы из предыдущих разделов, касающихся стандартного или именованного экземпляра. При указании имени узла используйте имя, которое было задано в файле msmdpump.ini при настройке службы для доступа по протоколу HTTP.
Дополнительные сведения о доступе по протоколу HTTP см. в статье Настройка HTTP-доступа к службам Analysis Services в службах IIS 8.0.
Регистрация имени участника-службы для экземпляров службы SSAS, слушающих фиксированные порты
Вы не можете указать номер порта для регистрации имени субъекта-службы Analysis Services. Регистрация имени субъекта-службы Analysis Services может использовать только имя экземпляра. Если вы установили службы Analysis Services в качестве экземпляра по умолчанию и настроили его для прослушивания через порт, отличный от порта по умолчанию, вы не сможете подключиться к нему с помощью Kerberos. Необходимо настроить его для прослушивания порта по умолчанию (TCP 2383) для включения подключений Kerberos к данному экземпляру. Экземпляр служб Analysis Services по умолчанию, прослушивающий порт, отличный от порта по умолчанию, может принимать только подключения NTLM. Для именованных экземпляров необходимо запустить службу SQL Server Browser и использовать имена экземпляров в строках подключения вместо номеров портов.
Экземпляр служб Analysis Services может прослушивать только один порт. Использование нескольких портов не поддерживается. Дополнительные сведения о настройке порта см. в разделе Configure the Windows Firewall to Allow Analysis Services Access.
См. также:
Проверка подлинности для бизнес-аналитики Майкрософт и делегирование удостоверений
Взаимная проверка подлинности с помощью Kerberos
Синтаксис имен субъектов-служб (SPN) SetSPN (Setspn.exe)
setspn
Пошаговое руководство по использованию учетных записей служб
Настройка учетных записей службы Windows и разрешений
Использование имен субъектов-служб при настройке веб-приложений, размещенных в службах IIS
Новые возможности учетных записей служб
Настройка проверки подлинности Kerberos для продуктов SharePoint 2010 (технический документ)