Sean Deuby

En 1999, j'ai écrit un livre sur Windows 2000 Server en général, et sur Active Directory en particulier. J'essaie de ne pas comparer ce que j'ai écrit sur AD à l'époque avec ce que je sais aujourd'hui, mais je reste attaché à un passage qui expliquait le fonctionnement du protocole de sécurité Kerberos - en utilisant l'analogie d'une fête d'entreprise dans une salle de bal d'hôtel. Même si OAuth2 et OpenID Connect sont les chouchous actuels du monde de la sécurité, la plupart des entreprises sur site dépendent encore de Kerberos chaque seconde de chaque jour.

Je pense qu'une analogie qui implique une fête est plus propice à l'apprentissage d'un sujet aride comme Kerberos. J'ai donc modernisé un peu mon exemple et je l'ai peaufiné pour le partager avec vous ici. Kerberos gère à la fois l'authentification et l'autorisation dans Active Directory. Techniquement parlant, Kerberos est un protocole d'authentification, mais Microsoft insère des données d'autorisation (SID) dans le champ PAC du ticket Kerberos pour que les services (ressources intégrées à AD telles que les partages de fichiers ou les applications telles qu'Exchange ou SharePoint) puissent les utiliser.

Kerberos à la fête de l'entreprise

Imaginez que vous vous rendiez à une grande fête d'entreprise où de l'alcool est servi, et qu'il s'agisse d'un open bar1. Elle a été annoncée comme une fête sur le thème de la science-fiction (il s'agit d'une entreprise technologique), et chaque bar de la salle de bal où se déroule la fête est décoré sur un thème de science-fiction particulier (Planète interdite, Le jour où la terre s'est arrêtée, La guerre des étoiles, etc.)

Figure 1 : L'organisation du parti

Vous vous dirigez vers l'entrée de la salle de bal, et il y a une de ces tables à jupes de velours devant, avec une grande bannière sur laquelle est écrit "Key Drink Center". Pour entrer dans la fête, vous devez montrer votre permis de conduire (la demande de service d'authentification contenant votre mot de passe) aux personnes qui travaillent à la table (le centre de distribution des clés, ou KDC).

Vous remettez votre permis de conduire(à l'heure actuelle, crypté avec le hachage du mot de passe que vous avez saisi) à une personne qui tient une liste d'invitations ; elle vous regarde, regarde votre permis de conduire et regarde la liste d'invitations de la fête. Si votre nom correspond à un nom figurant sur la liste d'invitations(l'utilisateur existe dans le répertoire) et que vous ressemblez à la personne figurant sur la photo du permis de conduire(le hachage du mot de passe que vous avez saisi correspond au hachage du mot de passe du nom d'utilisateur figurant sur le DC), vous pouvez entrer dans la fête(vous êtes authentifié).

Maintenant que vous êtes autorisé à entrer dans la fête, la personne assise à côté de la personne chargée de vérifier la liste tamponne votre main (le Ticket Granting Ticket, ou TGT). Ce ticket est valable pendant dix heures - ce sera une sacrée fête ! A suivre...

La personne suivante à la table vous demande si vous souhaitez vous rendre dans un bar particulier(un service). Vous avez entendu dire que le bar Hitchhiker's Guide to The Galaxy proposera un Pan Galactic Gargle Blaster, vous demandez donc ce bar(nom principal du service, ou SPN). Comme ils voient votre tampon, ils vous donnent un ticket(le ticket de service) à remettre au barman du bar HHGG. Ce ticket est également valable pendant dix heures. Si votre permis de conduire indique que vous avez plus de 21 ans, le cachet est également apposé au dos du ticket.

Muni de votre ticket de bar, vous entrez dans la fête.

Vous vous dirigez directement vers le bar HHGG pour vous faire servir et vous présentez le ticket au barman à trois têtes. Il voit que c'est pour son bar(authentification du service), le retourne et voit qu'il y a un tampon qui indique que vous avez plus de 21 ans(le champ PAC du ticket de service contient un SID qui correspond à un ACE pour le service) et que vous êtes donc autorisé à obtenir une boisson alcoolisée. Il acquiesce et vous le rend (n'oubliez pas qu'il est valable pour un accès illimité pendant les dix prochaines heures). Il prépare une boisson de type "Pan-Galactic Gargle Blaster" et vous la sert.

À partir de ce moment-là, si vous avez besoin d'une autre boisson (et la prudence est de mise si vous commandez un PGGB), il vous suffit de présenter au barman du HHGG votre ticket de service, et il vous préparera une autre boisson. Si vous voulez que Gort vous prépare un verre (il est assez maladroit et ne cesse de casser des verres), vous devez retourner à la table d'entrée et obtenir un ticket de service Day The Earth Stood Still (Le jour où la terre s'est arrêtée).

Ce système de boissons festives est un peu gourmand en frais généraux, mais il permet de s'assurer de la qualité des boissons :

  • Seules les personnes figurant sur la liste des invités peuvent participer
  • Aucun trouble-fête ne peut se faufiler, car l'identité doit être vérifiée.
  • Les fêtards choisissent un bar spécifique
  • Seules les personnes âgées de plus de 21 ans sont autorisées à consommer des boissons alcoolisées.
  • La fête se terminera définitivement après 10 heures

Bien sûr, cette analogie ne peut pas être poussée plus loin, alors ne regardez pas de trop près ; consultez l'article détaillé de Brian Desmond sur le processus d'authentification et d'autorisation Kerberos d'Active Directory pour obtenir les détails les plus précis. Mais je pense qu'il explique assez bien l'authentification AD avec les échanges de tickets Kerberos, l'autorisation et les valeurs de durée de vie. Et je sais que tous les professionnels de l'informatique qui ont participé à une conférence ont l'habitude d'assister à une fête dans la salle de bal d'une conférence !

1Mon genre de fête.