Диагностика Kerberos в среде Sharepoint (часть 3)

Я бы желал начать этот раздел с разъяснения того, что собой представляет «Делегирование Kerberos (Kerberos Delegation)» и когда его необходимо настраивать. В предшествующей части я поведал о шагах конфигурации, но делегирование не всегда необходимо, так как все находится в зависимости от вашей ситуации, от дизайна приложений и требований безопасности.

Kerberos Delegation позволяет продвигать аутентифицированные учетные записи через несколько серверов, используя заимствование прав (impersonation). Неувязка обычно именуется ‘double-hop issue’, и вы столкнетесь с ней при использовании Excel Calculation Services (ECS). Когда мы настроим доверие делегированию и воспользуемся заимствованием прав для мандатов учетной записи юзера, мы тем обеспечим подходящий уровень доступа по всей системе. Еще одним примером является ситуация, когда юзер запрашивает данные с интернет приложения. Интернет приложение делает запрос в базу данных SQL на другом физическом сервере, и потому употребляет заимствование прав. Если употребляется делегирование и заимствование прав, сервер SQL возвращает только те данные, к которым у юзера есть доступ.

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 22: Два физических транзитных участка, ведущих к дилемме double-hop issue

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

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 23: Рабочий запрос на сервер SQL

Делегирование Kerberos уже настроено корректно в нашей демонстрационной среде, но давайте поглядим, что произойдет, если мы удалим доверие для делегированных прав учетной записи пула приложений (Application Pool account); SPContentPoolAcct. На рисунке 24 показана текущая конфигурация этой учетной записи.

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 24: Корректная настройка ограниченного делегирования

Сейчас я попробую удалить доверие правам службы MSSQLSvc, выделенной желтоватым на рисунке, и выполнить IISRESET /NOFORCE на сервере SharePoint WSS1. С отсутствием этих прав учетная запись SPContentPoolAcct больше не сумеет заимствовать права пользовательских мандатов и представлять их серверу SQL. Сейчас юзер получит стандартную ошибку Microsoft SharePoint, как показано на рисунке 25.

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 25: SharePoint страничка возвращает стандартное сообщение об ошибке

Итак, это статья по диагностированию, потому нам лучше приступить конкретно к нему. Сначала, мы не почти все сможем сделать с этой стандартной ошибкой. Будучи админом, я могу отключить ее в файле web.config, расположенном в системных файлах сервера Microsoft SharePoint Web FrontEnd (WFE).

В испытательной среде он размещен в: C:inetpubwwwrootwssVirtualDirectoriesintranet.domain.local80

Отключение пользовательских сообщений об ошибке в Microsoft SharePoint

Примечание: Это необходимо сделать на всех имеющихся у вас серверах Microsoft SharePoint WFE

Сделайте копию файла web.config, до того как редактировать его (просто чтоб убедиться, что мы не очень напортим)
Откройте его в собственном возлюбленном редакторе текста, к примеру блокноте
Найдите строчку и измените ее на
Найдите строчку CallStack=»true» и измените ее на CallStack=»false»
Перезапустите собственный сервер Internet Information Server (IIS) при помощи командной строчки: IISRESET /NORFORCE

Сейчас давайте снова поглядим на страничку:

Диагностика Kerberos в среде Sharepoint (часть 3)
Прирастить

Набросок 26: Страничка SharePoint возвращает подробный отчет об ошибке

Это дает нам незначительно больше инфы о дилемме, и страничка верно показывает на то, что это ошибка входа клиента SQL: System.Data.SqlClient.SqlException: Login failed for user ‘NT AUTHORITYANONYMOUS LOGON’

Попытка анонимного входа была предпринята кодом .NET и потому наша пользовательская учетная запись (DOMAINAdministrator вошел на рабочую станцию в попытке загрузить страничку) не использовалась в этом процессе. Для дополнительной инфы об этой дилемме мы можем посмотреть на журнальчик регистрации событий (Application event log) на сервере SharePoint (в данном случае у нас есть только один, но если у вас есть несколько серверов WFE в Network Load balanced Network (NLB), вам необходимо проверить каждый лог, чтоб отыскать сообщение об ошибке).

В Event Viewer на WSS1 мы отыскали предупреждение:

Warning, ASP.NET 2.0.50727.0, Event ID: 1039, Category:Web EventEvent code: 3005 Event message: An unhandled exception has occurred ‘ ‘ User: DOMAINAdministrator Is authenticated: True Authentication Type: Negotiate Thread account name: DOMAINspcontentpoolacct Thread information: Thread ID: 4 Thread account name: DOMAINspcontentpoolacct Is impersonating: False ‘ ‘

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 27: Предупреждение с журнальчика регистрации событий на сервере WSS1 SharePoint WFE

Информация в логе гласит нам о том, что .NET сгенерировал интернет предупреждение. Юзер, активировавший его, был аутентифицированным юзером DOMAINAdministrator, а учетная запись процесса – это DOMAINspcontentpoolacct (наш юзер пула интернет приложений). Тут мы также лицезреем, что пользователь-процесс не заимствует права учетной записи реального юзера. Итак, заимствование прав не использовалось для кода .NET и в этом заключается неувязка (Is impersonating: False).

Проверка конфигурации делегирования Kerberos, включающая:

Service Principal Names (SPN) в Active Directory – Тип службы (Service type (MSSQLSvc)) – Имя сервера (SQL и SQL.DOMAIN.LOCAL) – Порт, если употребляется (1433) – Учетная запись, на которой оно записанно (DOMAINSQLSvcAcct, так как она настроена на выполнение службы SQL Server)
Конфигурация делегирования для учетной записи пула приложений (DOMAINSPContentPoolAcct, потому можно передавать мандаты службе SPN, порту и учетной записи)
.NET код (аутентификация должна быть настроена на доверие и внедрение заимствования прав)

Примечание:направьте внимание, что я пропустил конфигурацию делегирования на DOMAINSPContentPoolAcct. Просто добавьте информацию и перезапустите службу IIS на сервере SharePoint WFE.

Kerberos для Shared Service Provider (SSP)

До того как обновление Infrastructure Update (июль 2008) для Microsoft Office Servers было выпущено, аутентификация Kerberos не стопроцентно поддерживалась для Shared Service Provider. Это вызывало определенные препядствия с несколькими SSPs и функцией поиска. Потому я рекомендую вам установить это обновление на свои системы, если вы еще этого не сделали. Компания Microsoft позднее опубликовала некие кумулятивные обновления, которые включают это обновление инфраструктуры, потому вы сможете обратиться к сайту Microsoft Team Blog за самыми свежайшими рекомендуемыми обновлениями. Ссылка на этот веб-сайт приведена в конце статьи.

В этом обновлении компания Microsoft добавила особый формат Service Principal Name (SPN): MSSP//.

Для подробной инфы о настройке SSP при помощи этого формата SSP посетите интернет веб-сайт TechNet, ссылка на который приведена в конце статьи. Я только приведу лаконичный обзор шагов по настройке Kerberos, которые были указаны в статье на TechNet о Shared Services Provider.

Shared Services Provider (SSP)

Регистрация Shared Service Provider SPNs в Active Directory
Изменение SSP на внедрение аутентификации Kerberos при помощи утилиты командной строчки STSADM
Изменение в системном реестре на всех серверах MOSS 2007 для использования нового формата SPN в SSP
Проверка работы аутентификации Kerberos для доступа к интернет службам root и virtual-directory shared web services

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 28: Service Principal Name регистрация для SSP

Разные трудности и заметки

Учетные записи юзеров и служб SharePoint

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

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

Некие клиенты/серверы не могут установить корректное защищенное соединение с доменом, а Kerberos построена на таком типе неопасной инфраструктуры. Если это случается, вам необходимо обновить и поновой сделать эти отношения. В статье Microsoft Knowledgebase KB216393 (глядеть раздел дополнительных ссылок в конце статьи) предоставлены аннотации по данной процедуре.

Если ваш сервер/клиент был клонирован, вам необходимо сгенерировать новый ID безопасности (SID), и рекомендуемым методом сделать это является внедрение утилиты Microsoft sysprep. Еще одним методом сделать это является внедрение ранее известной утилиты Sysinternals, которая сейчас именуется Microsoft NewSID.

Препядствия с размерами MTU

Сетевые пакеты, передаваемые по проводам, имеют определенную длину. Если учетная запись является членом огромного количества групп, это может быть приметно. Еще одним методом исправления трудности MTU является принуждение Kerberos на внедрение TCP. Информацию об этом можно отыскать в статье базы познаний Microsoft KB244474 (глядеть раздел ссылок в конце статьи).

Несколько интернет приложений с разными методами аутентификации

Отключите согласование на интернет приложениях, если они не нуждаются в использовании аутентификации Kerberos. Если у вас есть несколько интернет приложений на одном сервере, и вы используете Kerberos на неких интернет приложениях и NTLM, у вас могут появляться трудности. В особенности если приложения употребляют одно имя сервера и различные номера портов, а внедрение разных учетных записей пулов приложений обычно принуждает прибегать к нескольким часам диагностирования систем. Хотя я встречался с такими типами конфигураций в малых установках.

Я бы желал дать несколько советов по интернет приложениям

Используйте уникальные заглавия хоста (host-headers) К примеру, intranet.domain.local заместо servername сервера SharePoint
Используйте уникальные IP адреса для заголовков хоста – потом это упрощает компенсацию нагрузки
Используйте разные учетные записи пулов приложений для разных интернет приложений – В целях безопасности необходимо сделать свою. Если вы используете учетную запись NETWORK SERVICE, учетная запись компьютера будет учетной записью, применяемой интернет приложением для определения SPN.
Используйте Network Load Balancing (NLB) для собственного сервера WFE – благодаря этому вы получите отказоустойчивость и поболее неплохую производительность
Включайте согласование при использовании Kerberos. Отключайте его во время использования NTLM – Проверьте свое интернет приложение, используя утилиту командной строчки adsutil.vbs

Проверьте, настроено ли Kerberos для ваших интернет приложений

Запустите интерпретатора команд.

cd c:inetpubadminscripts cscript adsutil.vbs get w3svc//root/NTAuthenticationProviders (вы отыщите I.D собственного интернет веб-сайта через IIS Management в identifier) Для Kerberos итог будет: NTAuthenticationProviders : (STRING) «Negotiate,NTLM»Для NTLM итог будет: NTAuthenticationProviders : (STRING) ‘NTLM»

Настройте IIS интернет веб-сайт на другой метод (в этом примере Kerberos), используя последующую команду:

cd c:inetpubadminscripts cscript adsutil.vbs set w3svc//root/NTAuthenticationProviders ‘Negotiate,NTLM’

Это необходимо на каждом сервере SharePoint, граничащем с web.

SQL Server 2005 сценарий для проверки способа аутентификации юзеров

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

SELECT DB_NAME(dbid) AS DatabaseName, loginame AS LoginName, sys.dm_exec_connections.auth_scheme as AuthMethod FROM sys.sysprocesses JOIN sys.dm_exec_connections ON sys.sysprocesses.spid=sys.dm_exec_connections.session_id WHERE dbid > 0 GROUP BY dbid, loginame, spid,sys.dm_exec_connections.auth_scheme

Результаты этой команды в моей испытательной среде (включая вышеприведенный пример CompanyDatabase) показаны на рисунке 29 ниже.

Диагностика Kerberos в среде Sharepoint (часть 3)

Набросок 29: Результаты использования сценария в SQL Management Studio

Заключение

В этой части мы обсудили делегирование Kerberos, заимствование прав и конфигурацию Shared Service Provider (SSP). Я поделился с вами своими «полевыми заметками» и сценарием проверки применяемого метода аутентификации ‘ его можно использовать с SharePoint и другими конфигурациями.

Конфигурация Kerberos и в особенности диагностика разных заморочек может доставлять много морок. Моей целью было предоставление дополнительной инфы и приемов для выявления обстоятельств этих заморочек и их решения. Надеюсь, вам получится совладать с этой задачей, и вы напишите мне отзывы.

Ссылки

MSDN: Microsoft SharePoint Team Blog
Microsoft Technet: Configuring Kerberos authentication (Microsoft Office Servers)
Microsoft Knowledgebase: How to force Kerberos to use TCP instead of UDP in Windows
Microsoft Knowledgebase: Resetting computer accounts in Windows
Joel Olsons’ Blog: Protocols, ports and firewall rules

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.