Czy ktoś może wyjaśnić nazwy zasad usługi Windows (SPN) bez nadmiernego uproszczenia?

28

Kilka razy zmagałem się z nazwami zasad usługi, a wyjaśnienie Microsoft jest po prostu niewystarczające. Konfiguruję aplikację IIS do pracy w naszej domenie i wygląda na to, że niektóre z moich problemów są związane z potrzebą skonfigurowania nazw SPN określonych dla protokołu HTTP na koncie usługi systemu Windows, na którym działa pula aplikacji obsługująca moją witrynę.

Wszystko to sprawiło, że zdałem sobie sprawę, że po prostu nie rozumiem w pełni zależności między typami usług (MSSQL, http, host, termsrv, wsman itp.), Uwierzytelniania Kerberos, kont komputerów w usłudze Active Directory (PCName $), kont usług Windows, SPN oraz konto użytkownika, którego używam do uzyskania dostępu do usługi.

Czy ktoś może wyjaśnić nazwy zasad usługi Windows (SPN) bez nadmiernego uproszczenia wyjaśnień?

Punkty bonusowe za twórczą analogię, która rezonuje z umiarkowanie doświadczonym administratorem / programistą systemu.

Chris Magnuson
źródło
4
Sprawdź, czy Bill Bryant, „Projektowanie systemu uwierzytelniania: dialog w czterech scenach” spełnia twoje życzenie twórczej analogii.
yrk

Odpowiedzi:

33

Głównej nazwy usługi jest pojęciem z Kerberos. Jest to identyfikator konkretnej usługi oferowanej przez konkretnego hosta w domenie uwierzytelniania. Typową formą SPN jest service class/ fqdn@ REALM(np IMAP/[email protected].). Istnieją również główne nazwy użytkowników , które identyfikują użytkowników, w formie user@ REALM(lub user1/ user2@ REALM, który identyfikuje mówi-dla relacji). service classMożna luźno traktowane jako protokołu za usługę. Lista klas usług wbudowanych w system Windows jest wymieniona w tym artykule od firmy Microsoft .

Każdy SPN musi być zarejestrowana w REALM„s Key Distribution Center (KDC) i wydał klucza serwisowego . setspn.exeNarzędzie, które jest dostępne w \Support\Toolsfolderze na nośniku instalacyjnym systemu Windows lub do pobrania Resource Kit, manipuluje cesje SPN do komputera lub innych kont w AD.

Gdy użytkownik uzyskuje dostęp do usługi korzystającej z protokołu Kerberos do uwierzytelniania (usługa „Kerberized”), przedstawia zaszyfrowany bilet uzyskany z KDC (w środowisku Windows kontroler domeny Active Directory). Bilet jest szyfrowany kluczem serwisowym . Odszyfrowując bilet, usługa udowadnia, że ​​posiada klucz dla danej nazwy SPN. Usługi działające na hostach Windows używają klucza powiązanego z kontem komputera AD, ale aby zachować zgodność z protokołem Kerberos, nazwy SPN muszą zostać dodane do usługi Active Directory dla każdej usługi skerberizowanej działającej na hoście - z wyjątkiem tych wbudowanych nazw SPN wymienionych powyżej. W usłudze Active Directory nazwy SPN są przechowywane w servicePrincipalNameatrybucie obiektu komputerowego hosta.

Aby uzyskać więcej informacji, zobacz: artykuł Microsoft TechNet na temat nazwy SPN , często zadawane pytania dotyczące Kerberos Kena Hornsteina

szarpać
źródło
4
+1 - Pobiłeś mnie, pisząc to i wykonałeś świetną robotę, więc zdecydowałem się edytować twoją odpowiedź, aby dodać kilka szczegółów, zamiast pisać własne.
Evan Anderson
@yarek dwa ostatnie linki są zepsute na 29 stycznia 2019 r.
Andrew Watson
10

Odpowiedź Yarka była świetna i głosowałem za nią, ale chciałem również przekazać ci trochę więcej informacji na ten temat w Windowsie, a raczej pochodzić z perspektywy kogoś, kto jest bardziej zaznajomiony z AD niż tylko Kerberos w ogóle, po prostu ponieważ jest to temat, który mnie bardzo interesuje.

Czułem, że ten facet wykonał świetną robotę, tłumacząc to, i polecam przeczytać jego artykuł, ale tutaj jest szczególnie zwięzły akapit dotyczący twojego pytania:

„Główne nazwy usług określają, które usługi działają w kontekście bezpieczeństwa kont. Na przykład niektóre usługi, które może mieć komputer, to serwer plików / CIFS (Common Internet File System), jeśli jest to kontroler domeny, będzie miał LDAP SPN i replikacja Active Directory SPN i FRS SPN. Główne nazwy usług można zdefiniować na kontach użytkowników, gdy usługa lub aplikacja działa w kontekście bezpieczeństwa użytkowników. Zazwyczaj te typy kont użytkowników są znane jako „konta usług”. bardzo ważne, aby zrozumieć, że nazwy głównych usług MUSZĄ być unikalne w całym lesie usługi Active Directory ”.

Cały artykuł jest tutaj: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

Ryan Ries
źródło