Может ли кто-нибудь объяснить имена принципов обслуживания Windows (SPN) без упрощения?

28

Я несколько раз боролся с названиями сервисных принципов, и объяснений Microsoft просто недостаточно. Я настраиваю приложение IIS для работы в нашем домене, и похоже, что некоторые из моих проблем связаны с моей необходимостью настройки конкретных имен SPN для http в учетной записи службы Windows , на которой запущен пул приложений, на котором размещен мой сайт.

Все это заставило меня понять, что я просто не в полной мере понимаю взаимосвязь между типами сервисов (MSSQL, http, host, termrv, wsman и т. Д.), Аутентификацией Kerberos, учетными записями компьютеров в активном каталоге (PCName $), учетными записями служб Windows, именами SPN. и учетную запись пользователя, которую я использую для доступа к услуге.

Может ли кто-нибудь объяснить имена принципов обслуживания Windows (SPN), не упрощая объяснения?

Бонусные баллы за творческую аналогию, которая найдет отклик у умеренно опытного системного администратора / разработчика.

Крис Магнусон
источник
4
Пожалуйста, посмотрите, удовлетворит ли Билл Брайант «Разработка системы аутентификации: диалог в четырех сценах» ваш запрос на творческую аналогию.
yrk

Ответы:

33

Имя участника службы является концепцией от Kerberos. Это идентификатор конкретной услуги, предлагаемой конкретным хостом в домене аутентификации. Распространенной формой для SPN является service class/ fqdn@ REALM(например IMAP/mail.example.com@EXAMPLE.COM). Существуют также основные имена пользователей, которые идентифицируют пользователей в форме user@ REALM(или user1/ user2@ REALM, который идентифицирует скрытое отношение). Это service classможно считать протоколом службы. Список классов обслуживания, встроенных в Windows , приведен в этой статье от Microsoft .

Каждый SPN должен быть зарегистрирован в REALM«s Key Distribution Center (KDC) и выпустил сервисный ключ . setspn.exeУтилита , которая доступна в \Support\Toolsпапке на Windows , установить носитель или как загрузить Resource Kit, манипулирует присвоения имен SPN на компьютер или другие учетные записи в AD.

Когда пользователь обращается к службе, которая использует Kerberos для проверки подлинности (служба «Kerberized»), он представляет зашифрованный билет, полученный от KDC (в среде Windows контроллер домена Active Directory). Билет зашифрован с помощью сервисного ключа . Расшифровывая билет, сервис подтверждает, что он обладает ключом для данного SPN. Службы, работающие на хостах Windows, используют ключ, связанный с учетной записью компьютера AD, но для обеспечения совместимости с SPN протокола Kerberos необходимо добавить в Active Directory для каждой службы Kerberized, работающей на хосте, кроме тех встроенных имен SPN, которые упомянуты выше. В Active Directory имена SPN хранятся в servicePrincipalNameатрибуте объекта компьютера хоста.

Для получения дополнительной информации см. Статью Microsoft TechNet по SPN , часто задаваемые вопросы Кена Хорнштейна по Kerberos

yrk
источник
4
+1 - Вы опередили меня в написании этого и отлично поработали над своим, поэтому я решил отредактировать ваш ответ, чтобы добавить пару деталей, а не написать свою.
Эван Андерсон
@yarek последние две ссылки не работают по состоянию на 29 января 2019 года
Эндрю Уотсон
10

Ответ Ярека был великолепен, и я проголосовал за него, но я также хотел дать вам немного больше информации по данной теме для Windows, или, скорее, с точки зрения кого-то, кто более знаком с AD, чем просто Kerberos в целом, просто потому что это тема, которая меня очень интересует.

Я чувствовал, что этот парень проделал отличную работу, объясняя это, и я рекомендую вам прочитать его статью, но вот особенно сжатый абзац прямо к вашему вопросу:

«Имена участников службы определяют, какие службы выполняются в контексте безопасности учетных записей. Например, некоторые из служб, которые может иметь компьютер, - это Файловый сервер / CIFS (Общая файловая система Интернета), если он является контроллером домена, он будет иметь LDAP. SPN, SPN репликации Active Directory и SPN FRS. Имена участников службы могут быть определены в учетных записях пользователей, когда служба или приложение работают в контексте безопасности этих пользователей. Обычно эти типы учетных записей пользователей известны как «учетные записи служб». очень важно понимать, что имена участников службы ДОЛЖНЫ быть уникальными во всем лесу Active Directory. "

Вся статья здесь: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

Райан Райс
источник