|
Q30.
|
Quel est le paquet à installer pour mettre en place le service web White Pages ?
Rechercher sur le site LDAP Tool Box project, le lien de téléchargement direct du paquet Debian pour le service White Pages.
|
|
À partir du lien Download en bas de la page principale, on trouve un lien direct vers le paquet.
Après le téléchargement, l'installation nécessite quelques ajustements compte tenu des dépendances des paquets entre les différentes versions du langage PHP et du framework Smarty.
wget https://ltb-project.org/archives/white-pages_0.4-2_all.deb
sudo dpkg -i white-pages_0.4-2_all.deb
sudo apt -y -f install
sudo apt install smarty3 |
|
Q31.
|
Comment activer l'accès au service web ?
Consulter les fichiers de documentation et de configuration fournis avec le paquet apache2. Repérer les instructions d'activation et de désactivation d'un site. Retrouver les éléments spécifiques à la configuration du service White Pages.
|
|
Cette question comprend plusieurs étapes.
-
Le paquet apache2 comprend une liste d'outils dédiés aux manipulations sur les sites et leur configuration.
dpkg -L apache2 | grep "bin.*a2"
/usr/sbin/a2enmod
/usr/sbin/a2query
/usr/sbin/a2disconf
/usr/sbin/a2dismod
/usr/sbin/a2dissite
/usr/sbin/a2enconf
/usr/sbin/a2ensite
-
On utilise a2dissite pour désactiver le site par défaut et a2ensite pour activer les pages blanches.
sudo a2dissite 000-default
sudo a2ensite white-pages
sudo apachectl configtest
sudo systemctl reload apache2
La consultation de la page web donne le résultat suivant.
-
Les paramètres du nouveau site sont donnés dans le fichier /etc/apache2/sites-available/white-pages.conf.
|
|
Q32.
|
Comment paramétrer l'accès à l'annuaire LDAP à partir du service web ?
Identifier les fichiers de configuration fournis avec le paquet white-pages.
|
|
C'est le fichier /usr/share/white-pages/conf/config.inc.php qui contient les éléments d'accès à l'annuaire LDAP. Voici un extrait de ce fichier avec les lignes utiles complétées avec le contexte de ce support de travaux pratiques.
# grep ^\$ldap /usr/share/white-pages/conf/config.inc.php
$ldap_url = "ldap://localhost";
$ldap_starttls = false;
$ldap_binddn = "cn=admin,dc=lab,dc=stri";
$ldap_bindpw = "xxxxxx";
$ldap_base = "dc=lab,dc=stri";
$ldap_user_base = "ou=people,".$ldap_base;
$ldap_user_filter = "(objectclass=inetorgperson)";
$ldap_size_limit = 100;
Une fois le fichier modifié, il faut recharger la configuration du service web.
sudo systemctl reload apache2
La consultation de la rubrique donne le résultat ci-dessous. L'intérêt de cette manipulation est de montrer que l'on peut compléter les attributs d'un utilisateur de l'annuaire avec une photo. Cette opération est l'objet des questions suivantes.
|
|
Q33.
|
Quel est l'attribut de la classe inetorgperson qui correspond à une photo d'identité ?
Rechercher les options de la commande ldapsearch qui permettent d'extraire la liste des attributs de la classe inetorgperson.
|
|
On obtient l'information en deux temps.
-
On identifie le contexte de la classe recherchée en premier. Voici un exemple de requête côté serveur.
sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// \
-b "cn=config" | grep -i inetorgperson
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn={3}inetorgperson,cn=schema,cn=config
cn: {3}inetorgperson
olcObjectClasses: {0}( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2
-
Une fois le contexte connu avec précision, on peut extraire la liste des attributs relatifs à la classe inetorgperson.
Dans la liste ci-dessous, on repère l'attribut jpegphoto qui correspond à notre besoin.
sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// \
-b "cn={3}inetorgperson,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn={3}inetorgperson,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: {3}inetorgperson
olcAttributeTypes: {0}( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC279
8: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR cas
eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: {1}( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC '
RFC2798: identifies a department within an organization' EQUALITY caseIgnoreM
atch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: {2}( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'RFC
2798: preferred name to be used when displaying entries' EQUALITY caseIgnoreM
atch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SI
NGLE-VALUE )
olcAttributeTypes: {3}( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC 'RF
C2798: numerically identifies an employee within an organization' EQUALITY ca
seIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.12
1.1.15 SINGLE-VALUE )
olcAttributeTypes: {4}( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RFC2
798: type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR caseIgn
oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RFC2
798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 )
olcAttributeTypes: {6}( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DESC
'RFC2798: preferred written or spoken language for a person' EQUALITY caseIg
noreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.
15 SINGLE-VALUE )
olcAttributeTypes: {7}( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' D
ESC 'RFC2798: PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4.1.14
66.115.121.1.5 )
olcAttributeTypes: {8}( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RFC2
798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.1466.1
15.121.1.5 )
olcObjectClasses: {0}( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2
798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL MAY
( audio $ businessCategory $ carLicense $ departmentNumber $ displayName $ em
ployeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ ini
tials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo
$ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIdentifier $ pre
ferredLanguage $ userSMIMECertificate $ userPKCS12 ) )
|
|
Q34.
|
Quelle est la syntaxe du fichier LDIF qui permet de modifier l'attribut jpegphoto d'un utilisateur de l'annuaire ?
Rechercher un exemple de modification d'attribut avec la commande ldapmodify.
Rechercher aussi un fichier JPEG qui fasse office de photo d'identité.
|
|
Tout d'abord, on dépose le fichier jpeg à utiliser dans le dossier /var/tmp à titre d'exemple.
ls -l /var/tmp/leia.jpg
-rw-r--r-- 1 etu etu 83837 19 août 03:15 /var/tmp/leia.jpg
La syntaxe du fichier LDIF est relativement simple une fois que l'on a bien identifié le contexte.
cat > leia-photo.ldif << EOF
dn: uid=leia,ou=people,dc=lab,dc=stri
changetype: modify
add: jpegphoto
jpegphoto:<file:///var/tmp/leia.jpg
EOF
Enfin, on applique la modification dans l'annuaire LDAP.
sudo ldapmodify -x -H ldap:/// -D "cn=admin,dc=lab,dc=stri" -W -f leia-photo.ldif
Le résultat est visible sur la copie d'écran de navigateur web ci-dessus.
|