Cerbère amadoué
Par fsoyer le mercredi, mars 25 2009, 10:31 - Lien permanent
Encore un titre à la n'importe-quoi.
D'accord : explications.
Cerbère, ce doux toutou qui, des siècles avant le magnétoscope VHS, avait inventé le multi-tête (wouhaa, je suis en forme aujourd'hui !), a donné son nom (grec) à un protocole d'authentification qui, comme lui, "garde les portes".
Ce ne sont pas celles d'Hadès (même si certains utilisateurs vouent l'informatique aux enfers), mais celles de n'importe quel système informatique désirant ne pas voir entrer n'importe qui, en tout cas pas les inconnus.
Certains l'auront compris, nous parlons de Kerberos (un autre descriptif ici). Inventé par le très prolifique MIT et sortis d'un projet dûment nommé Athena, il devient vite une référence.
Un exemple d'utilisation ? Un seul devrait suffire en l'occurence : Microsoft a monté l'authentification fournie par son Active Directory sur ce protocole. Excusez du peu - quoiqu'on pense de Microsoft - !
Et justement, c'est là que ça nous intéresse. Le logiciel E-photo (dont vous devez avoir entendu parler si vous avez un peu parcouru ce blog), toujours lui, nous pousse à répondre à des problématiques clients aussi variés qu'intéressantes. La dernière en date est d'authentifier les utilisateurs du logiciel sur un domaine Active Directory, si possible sans re-saisie du mot de passe, en un mot : SSO !
Du coup, à la question "authentification d'un serveur LAMP sur Active Directory", la réponse a été d'abord double, puis évidente.
Double ? En fait, la première réaction a été de s'intéresser à un module Apache nommé mod_auth_ntlm, utilisant le protocole NTLM, celui dont on a forcément entendu parlé si on a un jour eu à gérer un domaine Windows avant Windows 2000.
Or, si NTLM existe toujours sur les serveurs Windows 2000 et 2003 pour compatibilité (encore que sur Windows 2003, il passe en version 2 est se trouve incompatible avec les clients qui utilisent la version 1...), c'est plutôt Kerberos qui est utilisé, si le client est capable de parler cette langue-là.
Donc, direction mod_auth_kerb, le module Apache qui sait causer Kerberos dans le texte !
Et il faut dire que ça nous ouvre des portes (un comble pour Cerbère !) car il se trouve que les navigateur récents (IE6, 7, Firefox 3 entre autres) dans leur version Windows, savent récupérer les informations de connexion de l'utilisateur sur le poste (ce que Kerberos appelle un "ticket"), et les envoyer au serveur web dans les requêtes HTTP. Le serveur Web, lui, valide simplement ce ticket auprès du contrôleur de domaine Active Directory. Si la réponse est "OK", il valide l'accès au site.
L'utilisateur n'a plus besoin de s'authentifier plusieurs fois, s'il dispose d'un navigateur compatible, tout est transparent.
On a donc effectivement du SSO. Sympa, non ?
Un tuto d'installation de Kerberos sur serveur CentOs sera bientôt mis en ligne sur le wiki de Systea IG (laissez-nous juste le temps de l'écrire ;)...).
En attendant, un lien vers le blog ephoto d'Einden Studio.