TP 2 Client Ldap et CAS

Transcription

TP 2 Client Ldap et CAS
Protocoles applicatifs sur Internet
Master TIW
TP 2
Client Ldap et CAS
Fabien Rico 2 novembre 2015
Objectifs
— Découverte de ldap et CAS
— Découverte des outils d’authentification web
Ce TP se déroule sur 2 séance de 3 heures. Il est suivi d’un autre TP utilisant la même machine. Il est
donc conseiller de sauver l’image sous la forme d’un snapshot en cas de problème.
I
Ldap
Nous avons mis en place un serveur Active Directory, ldap et dns qui servira durant le TP. Ce serveur se
trouve à l’adresse 192.168.73.238.
Pour la version chiffrée, l’autorité de certificat utilisée dans cette série de TP se trouve à l’adresse :
http://192.168.73.201/cacert.pem.
I.1
Client ldap
Installer le client ldap et utilisez-le pour interroger le serveur. Utiliser le client en mode texte ldapsearch.
Utiliser en parallèle un outil de capture de paquets pour regarder les échanges de données.
Q.I.1) - Quel commande faut-il taper pour obtenir les informations sur l’arbre stocké par le serveur ?
Q.I.2) - Pour voir la liste des utilisateurs il faut s’authentifier auprès du serveur en utilisant un compte ayant
les droits de lecture (dont le dn est : cn=lecteur,cn=Users,dc=pai,dc=univ−lyon1,dc=fr et le mot de
passe passedulecteur). Qu’elle est la commande ?
Q.I.3) - Observer l’échange généré entre le client et le serveur. Quelles sont les requêtes ldap utilisées ? Qui
coupe la communication ?
Q.I.4) - Repérer le paquet bindRequest à quoi sert cet échange de données, que voit-on ?
Q.I.5) - Faites une requête en utilisant TLS.
5(a) - Quelle commande faut-il taper pour utiliser TLS ?
5(b) - Pourquoi cela ne fonctionne-t-il pas ? Que devez-vous faire pour résoudre le problème ?
5(c) - Lorsque cela marche, refaire une capture de la même requête. Quelle nouvelle commande ldap est
utilisée ? Que se passe-il ensuite ?
I.2
Client apache/php
L’intérêt principal d’un annuaire ldap est qu’il peut être accédé par plusieurs types de clients. Par exemple,
le langage php permet très facilement de contacter un serveur ldap pour tester les logins et mots de passes.
Un certains nombre de serveurs comme le serveur apache permettent aussi de s’authentifier auprès de ldap.
Faculté des sciences - Dépt. informatique
1
Univ. Claude Bernard Lyon I
Protocoles applicatifs sur Internet
Master TIW
Q.I.6) - Créez un nouvelle image docker sur votre VM en ajoutant les paquets : apache2, php−pear, php−auth,
php5−common, php−curl, ldap−utils et php5−ldap. Pour cela vous modifierez le dockerfile vu la dernière
fois. Grâce à ce fichier, vous adapterez aussi la configuration du client ldap pour utiliser le certificat
du TP
Q.I.7) - Créez un docker à partir de cette image et nommez le apache-php et lancez le en partageant le
répertoire /var/www/html du docker avec le répertoire /docker/apachephp/www de la machine hôte
ainsi que le fichier de certificat que utilisé par le client ldap. Vous connecterez de plus le port 82 de la
machine hote avec le port 80 du docker et conffigurerz nginx pour renvoyer les /php vers ce docker.
Ce docker va permettre aux utilisateurs système de lire et modifier les valeurs stockées dans l’anuaire
ldap. Vous pouvez utiliser le fichier http://192.168.73.201/pass.php.txt pour vous aider à commencer.
Placez le fichier dans le répertoire /docker/php/www/ ce qui le rendra accessible au serveur web à l’adresse
http:// adresse de votre instance /php/pass.php.
Pour chaque question, créez un nouveau fichier php que vous nous rendrez en même temps que le rapport.
Q.I.8) - Modifiez-le de manière à afficher le nom, prenom, adresse et numéros de l’utilisateur dont le login est
entré via le formulaire.
Q.I.9) - Modifiez-le de manière à vérifier le mot de passe de cet utilisateur.
Q.I.10) - Modifiez-le de manière à permettre aux utilisateurs de changer leur numéro de téléphone et leur
adresse.
Q.I.11) - Nous allons modifier le script pour permettre aux utilisateurs de changer leur mot de passe. Pour
cela il va falloir utiliser un compte de service avec des droits de gestion des utilisateurs le compte
cn=ecrivain ,... dont le mot de passe est passedelecrivain . Vous devez modifier le script pour :
— Qu’il vérifie le login, mot de passe de l’utilisateur.
— Qu’il utilise l’identité du compte de service pour faire les modifications.
— Qu’il permette de modifier le mot de passe :
— C’est le champs unicodePwd ;
— Il doit être encadré de guillemets ” ;
— Il doit être encodé en UTF16LE ;
— il doit obéir aux règles de sécurité des mots de passes définie par la stratégie de groupe
(désactivée pour ce TP).
Q.I.12) - Que faut-il faire pour que les mots de passe ne circulent pas en clair
II
Client CAS
Vous allez devoir installer le client php cas comme cela est expliqué à l’adresse suivante :
https://wiki.jasig.org/display/CASC/phpCAS. Utilisez l’installation avec pear.
Le but est de ≪ cassifier ≫ l’utilitaire de modification de mot de passe de la section I.2. Le serveur assurant
l’authentification doit être celui de l’université http://cas.univ-lyon1.fr/cas/
Q.II.1) - Le serveur CAS de l’université demande que vous utilisiez votre mot de passe de l’université. Si un
camarade vous demande d’essayer le site qu’il a fait sur sa machine virtuelle durant ce TP, allez-vous
accepté et pourquoi ?
Q.II.2) - Avec votre rapport fournissez le fichier pass??.php correspondant à l’authentification CAS.
III
III.1
Pour vous aider !
Comment installer un nouveau package ?
Vous disposez de plusieurs utilitaires :
Faculté des sciences - Dépt. informatique
2
Univ. Claude Bernard Lyon I
Protocoles applicatifs sur Internet
Master TIW
— dpkg l’utilitaire de base de gestion de paquets. Il permet de gérer les paquets installés, de les supprimer
ou de faire des recherches sur leurs fonctionnalités.
— dpkg −−purge <nom du package> pour la suppression.
— dpkg−reconfigure <nom du package> pour reconfiguer un package.
— dpkg −L <nom du package> pour avoir la liste des fichiers du package.
— apt−?? utilitaire de recherche, installation,. . .sur internet. C’est cet utilitaire qui vous permettra :
— d’installer un paquet grâce à : apt−get install <nom du package>
— de rechercher un paquet : apt−cache search <nom de ce qu’on cherche>
— synaptic utilitaire graphique qui fait la même chose.
Faculté des sciences - Dépt. informatique
3
Univ. Claude Bernard Lyon I