Quelqu'un peut-il expliquer les noms de principe du service Windows (SPN) sans simplifier à l'excès?

28

J'ai lutté avec les noms des principes de service à quelques reprises maintenant et l' explication de Microsoft n'est tout simplement pas suffisante. Je configure une application IIS pour fonctionner sur notre domaine et il semble que certains de mes problèmes sont liés à mon besoin de configurer des SPN spécifiques http sur le compte de service Windows qui exécute le pool d'applications hébergeant mon site.

Tout cela m'a fait réaliser que je ne comprends tout simplement pas complètement la relation entre les types de services (MSSQL, http, hôte, termsrv, wsman, etc.), l'authentification Kerberos, les comptes d'ordinateurs Active Directory (PCName $), les comptes de services Windows, les SPN et le compte d'utilisateur que j'utilise pour essayer d'accéder à un service.

Quelqu'un peut-il expliquer les noms de principe du service Windows (SPN) sans simplifier à l'excès l'explication?

Points bonus pour une analogie créative qui résonnerait avec un administrateur / développeur système moyennement expérimenté.

Chris Magnuson
la source
4
Veuillez voir si Bill Bryant, «Conception d'un système d'authentification: un dialogue en quatre scènes» répond à votre demande d'analogie créative.
yrk

Réponses:

33

Un nom de principal de service est un concept de Kerberos. C'est un identifiant pour un service particulier offert par un hôte particulier au sein d'un domaine d'authentification. La forme courante des SPN est service class/ fqdn@ REALM(par exemple IMAP/[email protected]). Il y a aussi des noms UPN qui identifient les utilisateurs, sous forme de user@ REALM(ou user1/ user2@ REALM, qui identifie un parle-pour la relation). Le service classpeut être vaguement considéré comme le protocole du service. La liste des classes de service intégrées à Windows est répertoriée dans cet article de Microsoft .

Chaque SPN doit être enregistré dans le REALMs » Key Distribution Centre (KDC) et a émis une clé de service . L' setspn.exeutilitaire, disponible dans un \Support\Toolsdossier sur le support d'installation de Windows ou en téléchargement du Kit de ressources, manipule les affectations de SPN à l'ordinateur ou à d'autres comptes dans l'AD.

Lorsqu'un utilisateur accède à un service qui utilise Kerberos pour l'authentification (un service "Kerberized"), il présente un ticket chiffré obtenu à partir de KDC (dans un environnement Windows un contrôleur de domaine Active Directory). Le ticket est crypté avec la clé de service . En déchiffrant le ticket, le service prouve qu'il possède la clé pour le SPN donné. Les services exécutés sur les hôtes Windows utilisent la clé associée au compte d'ordinateur AD, mais pour être conformes au protocole Kerberos, les SPN doivent être ajoutés à Active Directory pour chaque service kerberized exécuté sur l'hôte - à l'exception des SPN intégrés mentionnés ci-dessus. Dans Active Directory, les SPN sont stockés dans l' servicePrincipalNameattribut de l'objet ordinateur de l'hôte.

Pour plus d'informations, voir: article Microsoft TechNet sur SPN , FAQ Kerberos de Ken Hornstein

yrk
la source
4
+1 - Vous m'avez battu pour écrire ceci et avez fait un excellent travail sur le vôtre, j'ai donc choisi de modifier votre réponse pour ajouter quelques détails plutôt que d'écrire la mienne.
Evan Anderson
@yarek les deux derniers liens sont rompus au 29 janvier 2019
Andrew Watson
10

La réponse de yarek était excellente, et je l'ai votée, mais je voulais également vous donner un peu plus d'informations spécifiques à Windows sur le sujet, ou plutôt du point de vue de quelqu'un qui est plus familier avec AD que Kerberos en général, juste car c'est un sujet qui m'intéresse beaucoup.

J'avais l'impression que ce type avait fait un excellent travail pour l'expliquer, et je vous recommande de lire son article, mais voici un paragraphe particulièrement concis à droite de votre question:

"Les noms principaux de service définissent les services exécutés dans le contexte de sécurité des comptes. Par exemple, certains des services qu'un ordinateur peut avoir sont le serveur de fichiers / CIFS (Common Internet File System), s'il s'agit d'un contrôleur de domaine, il va avoir un LDAP SPN et Active Directory Replication SPN et FRS SPN. Les noms principaux de service peuvent être définis sur les comptes d'utilisateur lorsqu'un service ou une application s'exécute dans ce contexte de sécurité des utilisateurs. En général, ces types de comptes d'utilisateur sont appelés «comptes de service». très important que vous compreniez que les noms principaux de service DOIVENT être uniques dans toute la forêt Active Directory. "

L'article complet est ici: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

Ryan Ries
la source