Q114.
|
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 |
Q115.
|
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 .
|
Q116.
|
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.
|
Q117.
|
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 ) )
|
Q118.
|
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.
|