Haut de page

Configuration de Kerberos dans MacOS X Server


Authentification unique avec services Kerberos v5 (KDC) sur MacOS X Server v10.3

Le fait de faire passer un serveur en Open Directory Master (*) va activer automatiquement les services Kerberos. Le serveur sera un KDC (Key Distribution Center). On verra KDC is: Running sur le panneau Overview d'Open Directory.

Malheureusement, il arrive que cela ne se passe comme cela et on peut avoir KDC is: Stopped alors que toutes les conditions semblent réunies. En fait KDC est très sensible au serveur de noms et au serveur d'horloge. Il est impératif, pour que kerberos fonctionne que toutes les machines soient synchronisées sur la même horloge. Au niveau du serveur de noms, il semble que le nom dns de la machine et son reverse dns doivent correspondre. Si le nom de la machine est un alias, cela ne marche pas. Il faut changer le nom de la machine et la passer en Standalone Server puis de nouveau en Master. Attention, pour l'avoir expérimenté, cela détuit tout le système d'authentification. C'est assez normal car les mots de passe doivent être enregistrés en Kerberos en parallèle de l'ApplePasswordServer (deux AuthenticationAutority) ce qui n'a pas été le cas si Kerberos n'était pas en fonction lors de la création de la base d'utilisateurs.


À propos de kerberos

Kerberos est une méthode d'authentification qui ne fait qu'une chose : Assurer la validité du couple nom d'utilisateur / mot de passe. Sa particularité est de permettre de vérifier le mot de passe sans que celui-ci ne circule sur le réseau ni être gardé dans un cache sur le poste de travail. Kerberos permet la mise en œuvre du Single Sign On (SSO). Cela permet à l'utilisateur de s'identifier une fois pour utiliser tous les services compatibles Kerberos sans avoir à donner le mot de passe.

Comment ça marche ?

Voici un exemple de transaction Kerberos

  1. L'utilisateur jlmounier se connecte sur une machine. Cette machine est configurée pour se connecter à une serveur d'authentification (KDC) ici admin.lip6.fr. La machine envoit jlmounier@ADMIN.LIP6.FR (ADMIN.LIP6.FR n'est pas une adresse dns, c'est le Royaume Kerberos).
  2. Le KDC vérifie que jlmounier est bien un utilisateur référencé. Si c'est le cas, KDC extrait le mot de passe de sa base de donnée et envoit au client un TGT (Ticket Granting Ticket) et une clef de session cryptée avec le mot de passe de l'utilisateur. Cette clef fa être utilisée pour crypter tous les échanges suivants.
  3. Si l'utilisateur tape le bon mot de passe, il va pouvoir décrypter la clef de session. L'utilsateur va donc récupérer le TGT qui va lui servir pour tous les autres services à la place de son mot de passe. Le TGT est crypté de façon que seul le KDC puisse le déchifrer et le mot de passe n'a pas à être conservé sur le poste client.
  4. L'utilisateur veut accéder à un service. Pour cela il adresse au KDC : le TGT, un authentifieur (un simple horodateur) cryptée avec la clef de session, le nom du service demandé.
  5. Le KDC reçoit la demande et utilise la clef de session pour valider l'utilisateur. Le KDC va créer une clef de session

A terminer...


Accès au serveur de fichier

Lors de l'accès au serveur de fichier par un utilisateur authentifié, au premier accès une fenêtre de dialogue invite à indiquer son Nom, Mot de passe et le Royaume utilisé pour l'authentification.

Coté serveur nous retrouvons dans le fichier /var/log/system.log les ligne suivantes :

May 20 13:03:18 admin krb5kdc[358]: AS_REQ (6 etypes {18 16 23 1 3 2}) 132.227.64.xxx: NEEDED_PREAUTH: jlmounier@ADMIN.LIP6.FR for krbtgt/ADMIN.LIP6.FR@ADMIN.LIP6.FR, Additional pre-authentication required
May 20 13:03:18 admin krb5kdc[358]: AS_REQ (6 etypes {18 16 23 1 3 2}) 132.227.64.xxx: ISSUE: authtime 1116586998, etypes {rep=16 tkt=16 ses=16}, jlmounier@ADMIN.LIP6.FR for krbtgt/ADMIN.LIP6.FR@ADMIN.LIP6.FR
May 20 13:03:23 admin krb5kdc[358]: TGS_REQ (5 etypes {16 23 1 3 2}) 132.227.64.xxx: ISSUE: authtime 1116586998, etypes {rep=16 tkt=16 ses=16}, jlmounier@ADMIN.LIP6.FR for afpserver/admin.lip6.fr@ADMIN.LIP6.FR

Lorsque vous êtes authentifié via Kerberos, vous avez accès au Single Sign-On, c'est à dire que tous les services

nce, with a single user name and password pair, for access to a broad range of Kerberized network services. For services that have not been Kerberized, the integrated SASL service automatically negotiates the strongest-possible authentication protocol.

Voir aussi

(*) Les photos d'écran de la partie configuration de MacOS X server sont en anglais car il est plus facile de trouver de la documentation en anglais sur ce sujet.

2005



FutureShare

 | 

Glossaire

 |