Authentification Kerberos, hôte de service et accès à KDC

10

J'ai une application Web (nom d'hôte: service.domain.com) et je souhaite utiliser l'authentification Kerberos pour identifier les utilisateurs connectés à un domaine Windows. Microsoft AD (Windows Server 2008 R2) fournit le service Kerberos.

Le service est une application Web Java utilisant la bibliothèque d'extensions Spring Security Kerberos pour implémenter le protocole SPNEGO / Kerberos. J'ai créé un fichier de clés dans AD qui contient un secret partagé qui devrait être suffisant pour authentifier les tickets Kerberos envoyés par les navigateurs clients à l'aide de l'application Web.

Ma question est la suivante: l'hôte de service (service.domain.com) doit-il avoir un accès pare-feu (TCP / UDP 88) à KDC (kdc.domain.com) ou le fichier de clés est-il suffisant pour que l'hôte de service puisse déchiffrer le Des tickets Kerberos et une authentification?

StrangeLoop
la source
Le service n'a pas besoin d'accéder au KDC dans votre configuration. Les clients le font absolument.
jouell

Réponses:

11

Le service n'a jamais besoin de parler au KDC . Il a besoin d'un keytab généré par le KDC , mais que vous pouvez copier comme vous le souhaitez. Ils n'ont jamais à se parler.

Une version trop simplifiée de ce que je crois se passe plus ou moins comme ceci:

Mise en place du service

  • KDC génère un service keytab (qui ressemble à une clé secrète / mot de passe si vous le souhaitez)
  • ce keytab est fourni au service d'une certaine manière ( scpou porté sur une clé USB si vous le souhaitez)

Client se connectant au service

  • le client demande un ticket de service au KDC
  • KDC génère un ticket de service , qui contient des informations qui ne peuvent être décryptées que par le fichier de clés de service (c'est le fichier qui se trouve sur votre serveur)
  • le client envoie son ticket de service au service
  • le service utilise son keytab pour vérifier le ticket (aucune communication réseau nécessaire)
chutz
la source
Merci, c'est comme ça que je l'ai aussi compris dans l'article Kerberos Wikipedia. Cette question semble avoir une réponse contradictoire: Kerberos Authentication for Webservers
StrangeLoop
Eh bien, je ne sais pas ce qui s'est passé dans cette autre réponse, mais j'ai un serveur SSH très distant faisant une authentification basée sur Kerberos, et il n'a certainement pas accès au KDC qui se trouve sur mon LAN privé à la maison. Pourrait-il y avoir quelque chose d'étrange avec les serveurs Web? Peut-être, mais j'en doute fortement.
chutz