Qualcuno può spiegare i nomi dei principi di servizio (SPN) di Windows senza semplificare eccessivamente?


28

Ho lottato con i nomi dei principi di servizio alcune volte e la spiegazione di Microsoft non è sufficiente. Sto configurando un'applicazione IIS per funzionare sul nostro dominio e sembra che alcuni dei miei problemi siano correlati alla mia necessità di configurare SPN specifici per http sull'account del servizio Windows che esegue il pool di applicazioni che ospita il mio sito.

Tutto ciò mi ha fatto capire che non riesco a comprendere appieno la relazione tra i tipi di servizi (MSSQL, http, host, termsrv, wsman, ecc.), Autenticazione Kerberos, account computer active directory (PCName $), account servizi Windows, SPN e l'account utente che sto utilizzando per provare ad accedere a un servizio.

Qualcuno può spiegare i nomi dei principi di servizio (SPN) di Windows senza semplificare eccessivamente la spiegazione?

Punti bonus per un'analogia creativa che risuonerebbe con un amministratore / sviluppatore di sistema moderatamente esperto.


4
Verifica se Bill Bryant, "Progettare un sistema di autenticazione: un dialogo in quattro scene" soddisfa la tua richiesta di analogia creativa.
anno

Risposte:


33

Un nome principale di servizio è un concetto di Kerberos. È un identificatore per un particolare servizio offerto da un determinato host all'interno di un dominio di autenticazione. Il modulo comune per SPN è service class/ fqdn@ REALM(ad es IMAP/mail.example.com@EXAMPLE.COM.). Esistono anche nomi principali utente che identificano gli utenti, sotto forma di user@ REALM(o user1/ user2@ REALM, che identifica una relazione di speak-for ). L' service classpuò liberamente essere pensato come il protocollo per il servizio. L'elenco delle classi di servizio integrate in Windows è elencato in questo articolo da Microsoft .

Ogni SPN deve essere registrato nel REALM's Key Distribution Centre (KDC) e ha emesso una chiave di servizio . L' setspn.exeutilità disponibile nella \Support\Toolscartella sul supporto di installazione di Windows o come download del Resource Kit modifica le assegnazioni di SPN al computer o ad altri account in Active Directory.

Quando un utente accede a un servizio che utilizza Kerberos per l'autenticazione (un servizio "Kerberized") presenta un ticket crittografato ottenuto da KDC (in un ambiente Windows un controller di dominio Active Directory). Il ticket è crittografato con la chiave di servizio . Decodificando il biglietto il servizio dimostra di possedere la chiave per il dato SPN. I servizi in esecuzione su host Windows utilizzano la chiave associata all'account del computer AD, ma per essere conformi al protocollo Kerberos gli SPN devono essere aggiunti ad Active Directory per ogni servizio kerberized in esecuzione sull'host, ad eccezione di quelli SPN incorporati sopra menzionati. In Active Directory gli SPN sono memorizzati servicePrincipalNamenell'attributo dell'oggetto computer dell'host.

Per ulteriori informazioni, consultare: Articolo Microsoft TechNet su SPN , FAQ Kerberos di Ken Hornstein


4
+1 - Mi hai battuto nello scrivere questo e hai fatto un ottimo lavoro sul tuo, quindi ho deciso di modificare la tua risposta per aggiungere un paio di dettagli piuttosto che scrivere il mio.
Evan Anderson,

@yarek gli ultimi due link sono interrotti dal 29 gennaio 2019
Andrew Watson

10

la risposta di yarek è stata fantastica, e l'ho votata a fondo, ma volevo anche darti un po 'più di informazioni specifiche su Windows sull'argomento, o piuttosto venire dal punto di vista di qualcuno che ha più familiarità con AD di un semplice Kerberos in generale, solo perché questo è un argomento che mi interessa molto.

Mi è sembrato che questo ragazzo abbia fatto un ottimo lavoro nel spiegarlo, e ti consiglio di leggere il suo articolo, ma ecco un paragrafo particolarmente conciso proprio sulla tua domanda:

"I nomi principali dei servizi definiscono quali servizi vengono eseguiti nel contesto di sicurezza degli account. Ad esempio, alcuni dei servizi che un computer potrebbe avere sono File server / CIFS (Common Internet File System), se si tratta di un controller di dominio avrà un LDAP SPN e Active Directory Replication SPN e FRS SPN I nomi principali del servizio possono essere definiti sugli account utente quando un servizio o un'applicazione è in esecuzione in tale contesto di sicurezza degli utenti. In genere questi tipi di account utente sono noti come "account di servizio". è molto importante comprendere che i nomi principali del servizio DEVONO essere univoci nell'intera foresta di Active Directory. "

L'intero articolo è qui: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.