Non aux brevets logiciels

SpipLab

authentification

PagePrincipale :: DerniersChangements :: Vous êtes 38.103.63.61 (Connexion)

L’authentification

Spip utilise un système de plugins pour gérer l’authentification. Chose rare, c’est avec des classes que c’est implémenté. 2 classes sont fournies.
-  Auth_ldap dans inc_auth_ldap.php3
-  Auth_spip dans inc_auth_spip.php3

Pour des raisons de simplicité, dans tous les cas, les informations de l’utilisateur sont stockées en base SQL pour une utilisation future.

L’accés au LDAP se fait en lecture seule, et Spip essaye différentes combinaisons pour trouver les réglages du LDAP, et l’authentification est ensuite confiée au LDAP.

Pour la version Spip, l’authentification se fait avec un challenge MD5 avec ajout de sel. Le mot de passe peut être envoyé hashé par un javascript ou en clair.

Implémentation

/ecrire/inc_auth.php3

La fonction auth() fait tout le travail, et c’est un record spipesque à elle seule, 21 arguments en globals ! C’est ici que l’on vérifie les rubriques que l’utilisateur a le droit de gérer.

/ecrire/inc_session.php3

verifier_php_auth()

/spip_cookie.php3

L’appel des plugins d’authentification se fait ici, ainsi que la mise en place des cookies. Pour neutraliser la fonction rester authentifié quelques jours, il faut forcer la variable $session_remember à ’non’ et modifier dans inc-login.php3 l’affichage de la question dans le HTML (une recherche sur _T(’login_rester_identifie’) permet de trouver ça facilement).

/spip_login.php3

Juste un pointeur pour afficher la page en 2 étapes, login, puis password. Ces deux étapes permettent de passer des arguments au javascript pour envoyer des données en md5 avec le sel.

/inc-login.php3

Tout le code utilisé par /spip_login.php3.