Sous réserve de complétude des tests en cours, les pages de cet espace montrent qu'il est effectivement possible de complètement déléguer l'authentification des utilisateurs à un serveur Kerberos.
Cette page discute de la migration d'une architecture où l'authentification des utilisateurs est confiée à un annuaire LDAP à une architecture où l'annuaire LDAP n'aurait en charge que son métier propre (le service d'annuaire) et où l'authentification des utilisateurs serait assurée par Kerberos.
Pourquoi ne pas basculer directement de LDAP à Kerberos ?
Parce que c'est impossible.
Cette phase de migration, dans laquelle l'authentification serait assurée à la fois par l'annuaire LDAP et le serveur Kerberos est obligatoirement à envisager pour les raisons suivantes :
- L'ajout d'un utilisateur (de son principal) dans le KDC nécessite la connaissance de son mot de passe ; puisque le mot des utilisateurs dans l'annuaire LDAP est chiffré de manière non réversible, il est impossible de créer automatiquement à un instant donné les comptes des utilisateurs dans le royaume Kerberos à partir des informations contenues dans l'annuaire LDAP.
- Certaines applications (Legacy) peuvent nécessiter une authentification LDAP. Note : cela ne concerne pas les application CASifiées.
Quand et comment migrer les utilisateurs ?
Il faut donc disposer d'un moyen de créer les utilisateurs dans le royaume Kerberos a la volée, à un moment où on dispose de leur mot de passe.
Les moments candidats sont les suivants :
- Lors de l'authentification sur un poste client. Cette solution, envisageable grâce au module PAM pam_krb5_migrate, est rejetée car elle nécessiterait un accès privilégié de création des comptes sur les postes clients, estimé comme un trop gros risque en matière de sécurité.
- Lors de l'authentification à un service, consulté par les utilisateurs de manière suffisamment régulière pour que la migration soit la plus rapide possible. Le seul service candidat suivant cette contrainte est le serveur de mail. Cette solution se heurte néanmoins au fait que dans de nombreux établissements, la consultation des mails se fait (au moins pour les étudiants) à travers un webmail CASifié, qui ne reçoit pas les mots de passe des utilisateurs (c'est dans ce cas le module pam_cas qui valide l'authentification des utilisateurs grâce à des ST ou PT émis par le serveur CAS).
- Lors de l'authentification sur le serveur CAS. C'est cette solution qui est retenue.
Comment faire ?
Il faut rajouter au serveur CAS le code nécessaire pour, à chaque fois qu'un utilisateur se connecte avec une authentification différente de Kerberos :
- vérifier si l'utilisateur existe dans le royaume Kerberos
- s'il n'existe pas, le créer avec le mot de passe avec lequel il s'est authentifié auprès d'une autre source (en l'occurrence l'annuaire LDAP).
Il ne reste plus qu'à écrire le code nécessaire...