Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
17 septembre 2014

htmlpdflatexmanmd




slapo-nssow

slapo-nssow

Requêtes NSS et PAM via un socket unix

   Il utilise le même protocole IPC que nss-pam-ldapd de Arthur de Jong. Utiliser un protocole IPC séparé pour les demandes NSS et PAM élimine les dépendance libldap dont souffrent les solutions pam_ldap/nss_ldap. Cet overlay s'exécute dans slapd, profitant d'un cache sophistiqué, sans les faiblesses de nscd. Une base LDAP distante peut être accédée en utilisant back-ldap avec un proxy-cache. Un autre bénéfice est que toutes les stratégies de sécurité sont administrées centralement via LDAP.

Configuration

nssov-ssd ‹service› ‹url› Configure un Service Search Descriptor (SSD) pour chaque service NSS qui sera utilisée.
ldap:///[‹basedn›][??[‹scope›][?‹filter›]] Le suffixe de la base, scope et filtre de recherche.
nssov-map ‹service› ‹orig› ‹new› Si la base locale est un proxy, certains mappages du schéma peuvent être nécessaire. Cette directive permet une substitution d'attribut simple.
nssov-pam ‹option› [...] Détermine le nombre de mode PAN. Les options valides sont:

        userhost Vérifie l'attribut host dans l'entrée pour l'autorisation
        userservice Vérifie l'attribut authorizedService dans l'entrée pour l'autorisation
        usergroup Vérifie que l'utilisateur est membre d'un groupe spécifique pour l'autorisation.
        hostservice Vérifie l'attribut authorizedService dans l'entrée pour l'autorisation
        authz2dn Utilise authz-regexp pour mapper l'uid à un DN ldap.
        uid2dn Utilise le SSD passwd NSS pour mapper un uid à un DN ldap.

nssov-pam-defhost ‹hostname› Spécifie un hostname par défaut pour vérifier si une entrée ipHost pour le nom d'hôte courant ne peut pas être trouvé
nssov-pam-group-ad ‹attribute› Spécifie de DN d'un groupe LDAP pour vérifier l'autorisation. L'utilisateur LDAP doit être membre de ce group pour être autorisé à s'authentifier. Il n'y a pas de valeurs par défaut.
nssov-pam-group-ad ‹attribute› Spécifie l'attribut à utiliser pour la vérification au groupe.
nssov-pam-min-uid ‹integer› Spécifie un uid minimum autorisé au login
nssov-pam-max-uid ‹integer› Spécifie un uid maximum autorisé au login
nssov-pam-template-ad ‹attribute› Spécifie un attribut à vérifier dans l'entrée utilisateur pour un template de nom de login.
nssov-pam-template ‹name› Spécifie un nom d'utilisateur pas défaut si aucun attribut template n'est trouvé dans l'entrée utilisateur.
nssov-pam-session ‹service› Spécifie un nom de service PAM dont les sessions seront enregistrés.
nssov-pam-password-prohibit-message ‹message› Désactive le service de changement de mot de passe et retourne le message spécifié aux utilisateurs
nssov-pam-pwdmgr-dn ‹dn› Spécifie le dn du responsable des mots de passe
nssov-pam-pwdmgr-pwd ‹pwd› Spécifie le mot de passe du responsable des mots de passe

loginStatus

   Attribut opérationnel de l'entrée utilisateur. Les valeurs de l'attribut sont sous la forme ‹generalizedTime› ‹host› ‹service› ‹tty› (‹ruser@rhost›). À la déconnexion, la valeur correspondante est supprimée. Cela permet de vérifier si des utilisateur sont loggés sur tous les hôtes du réseau via un ldapsearch. Le rootdn de la base est utilisée pour effectuer les mises à jours de cet attribut, donc un rootdn doit toujours être configuré pour que cette fonctionnalité fonctionne.

  Les fonctions PAM supportent LDAP password Policy également. Si l'overlay password policy est utilisé, les informations de stratégie peuvent être retournés au client PAM en résultat de l'authentification, gestion du compte, et demande de changement de mot de passe.

Exemple:
dn: olcOverlay={0}nssov,ocDatabase={1}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcNssOvConfig
olcOverlay: {0}nssov
olcNssSsd: passwd ldap:///ou=users,dc=example,dc=com??one
olcNssMap: passwd uid accountName
olcNssPam: hostservice uid2dn
olcNssPamDefHost: defaulthost
olcNssPamMinUid: 500
olcNssPamMaxUid: 32000
olcNssPamSession: login
olcNssPamSession: sshd

^
17 septembre 2014

htmlpdflatexmanmd




slapo-nops

slapo-nops

Suppression d'opérations null

   Overlay de suppression d'opération null. Certains clients implémentent les modifications comme opération de remplacement où tous les attributs sont remplacés, la plupart du temps par les même valeurs. Cela augmente la charge. Cet overlay détecte les opérations de ce type et les filtres. Cet overlay n'a pas de configuration.

^
17 septembre 2014

htmlpdflatexmanmd




slapo-noopsrch

slapo-noopsrch

Implémente le contrôle noop

   Ce module implémente le contrôle no-op.

^
14 septembre 2014

htmlpdflatexmanmd




slapo-lastmod

slapo-lastmod

Maintient une entrée de modifications

   Cet overlay crée une entrée de service au suffixe de la base de données, qui maintient le DN, le type de modification, le modifiersName et le modifyTimestamp de la dernière opération d'écriture dans la base. Toutes les opérations ciblant le DN de l'entrée est rejetée, excepté read.

Configuration

lastmod-rdnvalue ‹RDN value› Spécifie le RDN utilisé pour l'entrée de service
lastmod-enabled {yes|no} Active ou non l'overlay


objectClass:
( 1.3.6.1.4.1.4203.666.3.13 " NAME 'lastmod' DESC 'OpenLDAP per-database last modification monitoring' STRUCTURAL SUP top MUST ( cn $ lastmodDN $ lastmodType ) MAY ( description $ seeAlso ) )
attributes:
( 1.3.6.1.4.1.4203.666.1.30 NAME 'lastmodEnabled' DESC 'Lastmod overlay state' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 EQUALITY booleanMatch SINGLE-VALUE )
( 1.3.6.1.4.1.4203.666.1.28 NAME 'lastmodDN' DESC 'DN of last modification' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 NO-USER-MODIFICATION USAGE directoryOperation )
( 1.3.6.1.4.1.4203.666.1.29 NAME 'lastmodType' DESC 'Type of last modification' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 EQUALITY caseIgnoreMatch SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )

^
14 septembre 2014

htmlpdflatexmanmd




slapo-lastbind

slapo-lastbind

Enregistrer l'heure du dernier bind

   Permet d'enregistrer l'heure du dernier bind réussi des entrées dans l'annuaire, dans l'attribut authTimestamp. L'overlay peut être configuré pour mettre à jour ce timestamp seulement si sa valeur est supérieur à la valeur donnée. Cela réduit le nombre d'écritures.

Configuration

lastbind-precision ‹seconds› La valeur est le nombre de secondes après laquelle mettre à jours l'attribut dans une entrée.
^
14 septembre 2014

htmlpdflatexmanmd




slapo-kinit

slapo-kinit

Demander un TGT

   Ce module permet à slapd de demander un TGT et de le conserver tant que le serveur fonctionne. Ce module accèpte 2 arguments, le principal pour lequel demander le TGT (défaut: ldap/‹hostname›@‹DEFAULTREALM›) et chemin du fichier keytab.

^
14 septembre 2014

htmlpdflatexmanmd




slapo-dupent

slapo-dupent

LDAP Control for a Duplicate Entry Representation of Search Results

   Ce module implémente le draft LDAP Control for a Duplicate Entry Representation of Search Results

^
14 septembre 2014

htmlpdflatexmanmd




slapo-dsaschema

slapo-dsaschema

Charger un schéma DSA depuis un fichier

   Ce module permet de charger un schéma DSA depuis des fichiers de configuration, incluant des attributs opérationnels.

^
14 septembre 2014

htmlpdflatexmanmd




slapo-denyop

slapo-denyop

Refuser des opérations

   Cet overlay fournis une manière rapide de refuser des opérations. Il est moins consomateur que les ACL parce que son évaluation se produit avant tout backend.

^
12 septembre 2014

htmlpdflatexmanmd




slapo-comp_match

slapo-comp_match

Component Matching on X.509 certificates

Contient un module de correspondance. Exemple de filtre de recherche:
"(userCertificate:componentFilterMatch:=item:{ component\"toBeSigned.serialNumber\", rule integerMatch, value 2 })"
Configurer les index, vous pouvez générer des indices sur chaque composant d'un attribut dont les valeurs sont soit GSER soit BER. par exemple:
index userCertificate eq
index userCertificate.toBeSigned.issuer.rdnSequence eq
index userCertificate.toBeSigned.serialNumber eq
index userCertificate.toBeSigned.version eq

^
12 septembre 2014

htmlpdflatexmanmd




slapo-cloak

slapo-cloak

Cacher des attributs non demandés

   Permet au serveur de cacher des attributs spécifiques sauf s'ils sont explicitement demandés par le client. Cela améliore les performances quand un client demande tous les attributs. Désactivé quand manageDSAit est utilisé.

Configuration

attribute est le nom de l'attribut qui sera caché, class restreint le masquage aux entrées de la classe spécifiée
cloak-attr ‹attribute› [‹class›]
^
12 septembre 2014

htmlpdflatexmanmd




slapo-autogroup

slapo-autogroup

Automatise l'appartenance aux groupes

   Permet d'automatiser les mises à jours de l'appartenance des groupes qui matche un filtre contenu dans la définition du groupe. À chaque fois qu'un objet est ajouté, supprimé ou modifié, il est testé avec les filtres et les appartenance de groupe sont mis à jours en conséquence. Si la partie attribut de l'URI est présente, l'entrée groupe est remplie avec les valeurs de cet attribut dans les entrées résultant de la recherche.

Configuration

Le schéma dyngroup doit être modifié, en ajoutant l'attribut member:
objectClass ( NetscapeLDAPobjectClass:33 NAME 'groupOfURLs' SUP top STRUCTURAL MUST cn MAY ( memberURL $ businessCategory $ description $ o $ ou $ owner $ seeAlso $ member) )
autogroup-attrset ‹group-oc› ‹URL-ad› ‹member-ad›
cette directive peut être spécifiée plusieurs fois. group-oc est le nom de la classe d'objet qui représente le groupe. URL-ad est le nom de attributeDescription qui contient l'URI qui est convertis en filtres. Doit être un sous-type de labeledURI. member-ad est le nom de l'attribut qui spécifie l'attribut de membre. La modification de cet attribut est désactivé.
autogroup-memberof-ad ‹memberof-ad›
Définis l'attribut memberOf utilisé par l'overlay memberOf pour stocker les noms des groupes dont l'entrée est membre. Doit être de type DN.

   Cet ovelay nécessite l'overlay memberof
^
12 septembre 2014

htmlpdflatexmanmd




slapo-allowed

slapo-allowed

Ajoute des valeurs aux entrées retournées par les opérations de recherche

   Ajoute aux entrées retournées par les opérations de recherche la valeur des attributs allowedAttributes, allowedAttributesEffective, allowedChildClasses et allowedChildClassesEffective.

  Aucune autre utilisation n'est faite de ces attributs: Ils ne peuvent pas être comparés, utilisé dans des filtres de recherche, ou utilisé dans les ACL.

Exemples

dn: olcOverlay={0}allowed,olcDatabase={1}bdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: {0}allowed
^
12 septembre 2014

htmlpdflatexmanmd




slapo-allop

slapo-allop

Module All Operational Attributes

   L'overlay All Operational Attributes est conçus pour retourner tous les attributs opérationnels pour les clients qui n'utilisent pas le '+' de la rfc3673 dans la liste des attributs demandés.

Exemple:
overlay allop
allop-URI "ldap:///??sub"

^
12 septembre 2014

htmlpdflatexmanmd




slapo-addpartial

slapo-addpartial

Module de contrôle d'opération Add

   addpartial intercepte les requêtes add, détermine si l'entrée existe, et détermine quels attributs, s'ils existent, ont changés, et modifie ces attributs. Si l'entrée n'existe pas, procède normalement. Si l'entrée existe mais qu'aucun changement n'a été détecté, le client reçoit LDAP_SUCCESS.

   Quand un changement est trouvé, toutes les valeurs de l'attribut sont remplacés (si un attribut n'existe pas dans la nouvelle entrée, mais existe dans l'entrée dans la base, une replace sera fait avec une liste vide de valeurs).

   Une fois qu'une modification est effectuée, l'overlay syncprov va traiter le changement si addpartial est le dernier overlay dans la liste pour être sûr qu'il sera le premier overlay à être traité.

   Le but de cet overlay est de faciliter les enregistrements répliqués depuis une source qui n'est pas une instance LDAP. L'overlay est également utile quand il est plus facile de créer des entrées complètes au lieu de comparer une entrée avec une entrée à retrouver depuis un base LDAP existant pour trouver les changements.

^
12 septembre 2014

htmlpdflatexmanmd




slapo-acl

slapo-acl

Module de contrôle d'accès

acl-posixgroup

   posixgroup est un exemple qui implémente un contrôle d'accès basé sur l'appartenance des posixGroup. Pour utiliser acl-posixgroup, charger le module puis créer une règle du type:

access to ‹what› by dynacl/posixGroup[.{exact,expand}]=‹dnpat› {‹level›|‹priv(s)}

acl-gssacl

   Exemple d'implémentation de contrôle d'accès basé sur les attributs d'extension de nommage GSS:

access to ‹what› by dynacl/gss/‹attribute›.[.{base,regex,expand}]=‹valpat› {‹level›|‹priv(s)›}
^
27 octobre 2013

htmlpdflatexmanmd




slapd-sql

slapd-sql

Backend sql

   Backend SQL pour slapd. Il permet de présenter les informations stockées dans un RDBMS sous forme d’entrée LDAP.

options - Configuration de source de données

dbname ‹datasource name› Le nom de la source ODBC à utiliser
dbhost ‹hostname›
dbpasswd ‹password›
dbuser ‹username› Informations de connections à la source ODBC

options - Configuration de scope

subtree_cond ‹SQL expression› template where-clause pour former une condition de recherche de subtree (dn="(.+,) ?‹dn›$"). (ex: "‹upper_func›(ldap_entries.dn) LIKE CONCAT(’%’, ?)")
children_cond ‹SQL expression› template where-clause pour former une condition de recherche enfant (dn=".+,‹dn›$"). (ex: "‹upper_func›(ldap_entries.dn) LIKE CONCAT(’%,’, ?)")
use_subtree_shortcut YES Ne pas utiliser de condition de subtree quand la base de recherche est le suffix de la base.

options - Configuration de déclarations

oc_query ‹SQL expression› requête utilisée pour collecter le mapping des objectClass depuis la table ldap_oc_mappings. (défaut : "SELECT id, name, keytbl, keycol, create_proc, delete_proc, expect_return FROM ldap_oc_mappings")
at_query ‹SQL expression› requête utilisée pour collecter le mapping des attributeType depuis la table ldap_attr_mappings
id_query ‹SQL expression› requête utilisée pour mapper un DN à une entrée dans la table ldap_entries (défaut : "SELECT name, sel_expr, from_tbls, join_where, add_proc, delete_proc, param_order, expect_return FROM ldap_attr_mappings WHERE oc_map_id= ?") )
insentry_stmt ‹SQL expression› requête utilisée pour insérer une nouvelle entrée dans la table ldap_entries (défaut : "INSERT INTO ldap_entries (dn, oc_map_id, parent, keyval) VALUES (?, ?, ?, ?)" )
delentry_stmt ‹SQL expression› requête utilisée pour supprimer une entrée existante depuis la table ldap_entries (défaut : "DELETE FROM ldap_entries WHERE id= ?")
delobjclasses_stmt ‹SQL expression› requête utilisée pour supprimer l’ID d’une entrée dans la table ldap_objclasses. (défaut : "DELETE FROM ldap_entry_objclasses WHERE entry_id= ?"

options - Configuration helper

upper_func ‹SQL function name› Spécifie le nom d’un fonction qui convertit une valeur en majuscule (ex : UCASE, UPPER)
upper_needs_cast NO Définis si upper_func doit explicitement être utilisé sur des chaînes littérales.
strcast_func ‹SQL function name› Spécifie le nom d’une fonction qui convertis une valeur donnée en chaîne pour l’ordonnancement. Utilisé dans SELECT DISTINCT.
concat_pattern ‹pattern› Définis le pattern utilisé pour concaténer les chaînes. le pattern doit contenir 2 ’ ?’ qui seront remplacés par 2 chaînes à concaténer. (défaut : CONCAT(?, ?), PostfreSQL : ?|| ? )
aliasing_keyword ‹string› Définis le mot clé d’alias. défaut : AS
aliasing_quote ‹string› Définis le caractère de quoting pour les mots clé d’alias. défaut : aucun.
has_ldapinfo_dn_ru NO Informe explicitement le backend si la colonne dn_ru (DN sous forme majuscule inversé) est présent dans la table ldap_entries.
fail_if_no_mapping NO Force les opérations d’écriture d’attribut à échouer si aucun mapping approprié n’est disponible. uniquement pour les attributs. N’a pas d’impacte sur les classec d’objet.
allow_orphans NO Permet d’ajouter des entrées orphelines.
baseObject [ ‹filename› ] Instruit la base de créer et gérer une entrée baseObject en mémoire au lieu d’en chercher un dans le RDBMS. Si filename est fournis, l’entrée est lue depuis ce ldif. Utile quand les informations ldap_entries sont stockés dans une vue et union n’est pas supporté pour les vues
create_needs_select NO Instruit la base si la création d’entrée dans la table ldap_entries a besoin d’un select pour collecter l’ID assigné automatiquement, au lieu d’être retourné par une procédure stockée.
fetch_attrs ‹attrlist›
fetch_all_attrs NO Le premier état permet de fournir un liste d’attributs qui doivent toujours être remplis en plus de ceux requis par un opération spécifique. Pour l’instant, tous les attributs utilisés dans les ACL devraient être listés ici. Le second état est un raccourci pour tous les atributs
check_schema YES Instruit la base de vérifier l’adhérence des entrées au schéma après modification.
sqllayer ‹name› [...] Charge la couche name dans la pile d’helpers qui sont utilisés pour mapper les DN de LDAP vers la représentation SQL et inversement. Les arguments suivants sont passés à la routine de configuration.
autocommit NO Active l’autocommit. défaut : off

Exemples

Supposons que l’on stocke des informations sur des personnes travaillant dans notre organisation dans 2 tables:
PERSONS PHONES
-------------
id integer id integer
first_name varchar pers_id integer references persons(id)
last_name varchar phone
middle_name varchar
...
Une personne peut avoir plusieurs téléphones, phone peut contenir plusieurs enregistrements avec le pers_id correspondant, ou aucun. Une classe d’objet LDAP pourrait présenter de tels informations comme ceci:
person
MUST cn
MAY telephoneNumber $ firstName $ lastName
...
Pour renseigner toutes les valeurs cn, on construit la requête:
SELECT CONCAT(persons.first_name,’ ’,persons.last_name) AS cn FROM persons WHERE persons.id= ?
Pour telephoneNumber on peut utiliser:
SELECT phones.phone AS telephoneNumber FROM persons,phones WHERE persons.id=phones.pers_id AND persons.id= ?
Si on veut des requêtes LDAP avec des filtres tels que (telephoneNumber=123*), on peut construire :
SELECT ... FROM persons,phones WHERE persons.id=phones.pers_id AND persons.id= ? AND phones.phone like ’%1%2%3%’
On a donc les informations sur quelles tables contiennent les valeurs de chaque attribut, comment joindre ces tables et arranger les valeurs, on pourrait essayer de générer automatiquement de tels déclaration, et traduire les filtres de recherche en clause WHERE.
Pour stocker de tels informations, on ajoute 3 tables de plus à notre schéma:
ldap_oc_mappings (some columns are not listed for clarity)
^
20 octobre 2013

htmlpdflatexmanmd




slapd-shell

slapd-shell

Backend shell

   Backend qui exécute des programmes externe pour implémenter les opérations

OPTIONS

add ‹pathname› ‹argument›...
ADD
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
‹entry in LDIF format›

bind ‹pathname› ‹argument›...
BIND
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹DN›
method: ‹method number›
credlen: ‹length of ‹credentials››
cred: ‹credentials›

compare ‹pathname› ‹argument›...
COMPARE
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹DN›
‹attribute›: ‹value›

delete ‹pathname› ‹argument›...
DELETE
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹DN›

modify ‹pathname› ‹argument›...
MODIFY
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹DN›
‹repeat {
‹"add"/"delete"/"replace"›: ‹attribute›
‹repeat { ‹attribute›: ‹value› }›
-
}›

modrdn ‹pathname› ‹argument›...
MODRDN
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹DN›
newrdn: ‹new RDN›
deleteoldrdn: ‹ 0 or 1 ›
‹if new superior is specified: "newSuperior: ‹DN›"›

search ‹pathname› ‹argument›...
SEARCH
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
base: ‹base DN›
scope: ‹ 0-2, see ldap.h ›
deref: ‹ 0-3, see ldap.h ›
sizelimit: ‹size limit›
timelimit: ‹time limit›
filter: ‹filter›
attrsonly: ‹ 0 or 1 ›
attrs: ‹"all" or space-separated attribute list›

unbind ‹pathname› ‹argument›...
UNBIND
msgid: ‹message id›
‹repeat { "suffix:" ‹database suffix DN› }›
dn: ‹bound DN›

ACL

   Ce backend n'honore pas toutes les ACL. en général les acl sur les objets sont vérifiés en utilisant un objet factice qui contient seulement le DN, donc les règles d'accès qui s'occupent du contenu de l'objet ne sont pas honorés

l'opération add ne nécessite pas write sur children de l'entrée parent.
l'opération bind nécessite auth sur entry
l'opération compare nécessite read sur entry
l'opération delete ne nécessite pas write sur children de l'entrée parent
l'opération modify nécessite write sur children de l'entrée parent
l'opération modrdn ne nécessite pas write sur children de l'entrée parent
l'opération search ne nécessite pas l'accès search sur entry

Limitations

   Ce backend ne supporte pas les environnement multi-threadés. slapd doit être construit avec --without-threads
^
20 octobre 2013

htmlpdflatexmanmd




slapd-relay

slapd-relay

Backend relay

   backend relay. Il permet de mapper un contexte de nommage, avec manipulation d'attributs et classes d'objet. Il nécessite l'overlay slapo-rwm

OPTIONS

relay ‹real naming context› Le contexte de nommage qui sera présenté sous un contexte de nommage virtuel.

ACL

   Un problème important est que les règles d'accès sont basés sur l'identité qui a soumis l'opération. Après le massaging du contexte de nommage, le frontend vois les opérations effectuées par l'identité du vrai contexte de nommage. En concéquence, le base doit fournir ses propre règles.

  relay n'honore aucune ACL, il délègue les règles aux bases distantes.

Exemples

Pour implémenter un mappage de contexte de nommage qui réfère à une simple base:
database relay
suffix "dc=virtual,dc=naming,dc=context"
relay "dc=real,dc=naming,dc=context"
overlay rwm
rwm-suffixmassage "dc=real,dc=naming,dc=context"
Pour implémenter un mappage de contexte de nommage qui recherche le vrai contexte de nommage pour chaque opération:
database relay
suffix "dc=virtual,dc=naming,dc=context"
overlay rwm
rwm-suffixmassage "dc=real,dc=naming,dc=context"
Une configuration identique mais en remplaçant suffixmassage par une réécriture explicite:
database relay
suffix "dc=virtual,dc=naming,dc=context"
relay "dc=real,dc=naming,dc=context"
overlay rwm
rwm-rewriteEngine on
rwm-rewriteContext default
rwm-rewriteRule "dc=virtual,dc=naming,dc=context" "dc=real,dc=naming,dc=context" ":@"
rwm-rewriteContext searchFilter
rwm-rewriteContext searchEntryDN
rwm-rewriteContext searchAttrDN
rwm-rewriteContext matchedDN
Configuration des règles d'accès:
database bdb
suffix "dc=example,dc=com"
# skip...
access to dn.subtree="dc=example,dc=com"
by dn.exact="cn=Supervisor,dc=example,dc=com" write
by * read
database relay
suffix "o=Example,c=US"
relay "dc=example,dc=com"
overlay rwm
rwm-suffixmassage "dc=example,dc=com"
# skip ...
access to dn.subtree="o=Example,c=US"
by dn.exact="cn=Supervisor,dc=example,dc=com" write
by dn.exact="cn=Relay Supervisor,dc=example,dc=com" write
by * read
^
20 octobre 2013

htmlpdflatexmanmd




slapd-perl

slapd-perl

Backend perl

   Backend embarquant un interpréteur perl. Il faut créer une méthode pour chacune de ces actions:

new Appelé quand le fichier de configuration rencontre une ligne perlmod. Plusieurs instances de cet objet peuvent être instanciés
search Ses arguments sont les suivants:

        référence objet
        base DN
        scope
        stratégie de déréférencement des alias
        size limit
        time limit
        Filtre
        Flag attribut uniquement
        liste des attributs à retourner

compare ses arguments sont: référence objet, dn, attribut assertion
modify ses arguments sont: référence objet, dn, une liste formatée comme suis : ({ "ADD" | "DELETE" | "REPLACE" }, attributetype, value...)...
add ses arguments sont: référence objet, Entrée au format chaîne
modrdn ses arguments sont: référence objet, dn, new rdn, flag delete old
delete ses arguments sont: référence objet, dn
config Appelé une fois pour chaque perlModuleConfig dans le fichier de configuration. ses arguments sont: référence objet, tableau des arguments
init Appelé après que le backend est été initialisé. ses arguments sont: référence objet

OPTIONS

perlModulePath /path/to/libs Ajouter le chemin de la variable @INC
perlModule ModName Utilise le module spécifié
filterSearchResults Les résultat de recherche sont candidats qui doivent être filtré (avec le filtre de la requête).
perlModuleConfig ‹arguments› invoque la méthode config du module avec les arguments donnés

ACL

   Ce backend n’honore aucune ACL. Seul read sur les attributs est géré par le frontend
^
20 octobre 2013

htmlpdflatexmanmd




slapd-ndb

slapd-ndb

Backend ndb

   Backend utilisant l’API NDB de MySQL cluster

OPTIONS

dbhost ‹hostname› Nom du serveur MySQL
dbuser ‹username› User MySQL
dbpasswd ‹password› Mot de passe du compte MySQL
dbname ‹database name› Base de données à utiliser
dbport ‹port› Port d’écoute du serveur MySQL
dbsocket ‹path› Socket à utiliser pour se connecter à un serveur local
dbflag ‹integer› Flags client pour la session MySQL
dbconnect ‹connectstring› Nom du cluster manager
dbconnections ‹integer› Nombre de connections cluster à établir, jusqu’à 4 (défaut : 1)

Configuration du schéma

attrlen ‹attribute› ‹length› Spécifie la longueur de colonne à utiliser pour un attribut particulier (défaut : 128 octets). Max 1024
index ‹attr[,attr...]› Liste d’attributs pour lesquels maintenir un index
attrset ‹set› ‹attrs› Liste d’attributs à traiter comme jeu d’attributs. Créé une table set qui contiend tous ces attributs. Normalement, un attribut réside dans une table nommée par une classe d’objet qui utilise l’attribut. Cependant les attributs sont seulement permis dans une seule table. Ce jeu d’attribut permet de placer des attributs dans une table qui sont définis pour plusieurs classes d’objet.

ACL

   ndb honore la plupart des ACL
^
20 octobre 2013

htmlpdflatexmanmd




slapd-monitor

slapd-monitor

Backend monitor

   Ce backend n’est pas une base de données, il ne peut en exister qu’un seul sur un serveur. Il est automatiquement généré et maintenu par slapd. Pour inspecter toutes les informations monitorées, fournir une recherche dans un subtree avec la base cn=monitor. Il produit principalement des attributs opérationnels.

pour activer ce backend:
database monitor
Ajouter des acl à cette base:
access to dn.subtree="cn=Monitor" by dn.exact="uid=Admin,dc=my,dc=org" write by users read by * none

   Monitor honore les acl. Il n’honore pas les limites dans les opérations de recherche

^
20 octobre 2013

htmlpdflatexmanmd




slapd-meta

slapd-meta

Backend meta

   Effectue un proxy LDAP en respectant un jeu de serveurs LDAP distant, appelés target. Les informations contenues par ces serveurs peuvent être présentés comme appartenant à un simple DIT. Il a été conçu comme un amélioration de slapd-ldap. Ces 2 backends partagent de nombreuses fonctionnalités. L'instance proxy doit contenir le schéma pour les attributs et objectClass utilisés dans les filtres. Il doit également avoir le schéma pour les données retournées par les serveurs proxifiés

Directives de configuration spécial

conn-ttl ‹time› Force la suppression d'une connexion en cache et la recrée après le ttl donné, sans regarder s'il elle est active ou non.
default-target none Force le backend à rejeter toutes les opérations qui doivent être résolues à un simple target dans le cas ou aucun ou plusieurs target sont sélectionnés. Cette directive permet également de marquer un target spécifique comme défaut.
dncache-ttl {DISABLED|forever|‹ttl›} Définis le TTL du cache de DN. (0 désactive le cache)
onerr {CONTINUE|report|stop} Mode en cas d'erreur retournée par une target durant un recherche. Continue, continue la recherche et tente de retourner le plus de données possible. Stop, stop la recherche et retourne une erreur. report, la recherche se poursuit mais si une target retourne une erreur, le premier code d'erreur retourné est envoyé au client.
norefs ‹NO|yes› à yes, ne retourne pas de référence de recherche
noundeffilter ‹NO|yes› à yes, retourne success au lieu de rechercher si un filtre est indéfinis ou contient des portions indéfinies. Par défaut, la recherche est propagée après avoir remplacée les portions indéfinies avec (!(objectClass=*)), qui correspond à un résultat vide.
protocol-version {0,2,3} Indique quel protocole utiliser pour contacter le serveur distant (0, le protocole utilisé est le même que celui utilisé par le client)
pseudoroot-bind-defer {YES|no} à yes, l'authentification sur le serveur distant avec une identité pseudo-root (idassert-bind) est déférée jusqu'à ce qu'il soit nécessaire. Sinon, tous les binds root sont propagés aux target.
quarantine ‹interval›,‹num›[ ;‹interval›,‹num›[...]] Met en quarantaine les URI qui ont retourné LDAP_UNAVAILABLE. retente seulement à interval seconde depuis la dernière tentative, pour exactement num fois ; puis utilise le prochain pattern. si num vaut +, retente indéfiniment.
rebind-as-user {NO|yes} à yes, les crédentials du client sont mémorisés pour rebind, en tentant de re-établir une connexion perdue, ou lors de la poursuite d'aiguillage si chase-referrals est à yes.
session-tracking-request {NO|yes} Ajoute un contrôle de traçage de session pour toutes les requêtes. l'IP/hostname du client et l'identité associée à chaque requête sont envoyés au serveur distant pour information. Est incompatible avec protocol-version 2.
single-conn {NO|yes} Annule toute connexion en cache si le client se rebind
use-temporary-conn {NO|yes} Créé une connexion temporaire en compétition avec d'autres threads pour une connexion partagée. Sinon, attend jusqu'à ce qu'une connexion partagée soit disponible.

Spécification de target

uri ‹protocol›://[‹host›]/‹naming context› [...] naming context est mandatoire pour la première uri, et omis pour les autres
acl-authcDN ‹administrative DN for access control purposes› DN utilisé pour requêter le serveur distant pour vérifier les ACL. Doit avoir les accès read sur le serveur cible sur les attributs utilisés dans le proxy pour la vérification des acl.
acl-passwd ‹password› Mot de passe utilisé avec acl-authcDN
bind-timeout ‹microseconds› Timeout en micro-secondes, utilisé lors du vote pour la réponse après une connexion bind asynchrone. L'appel initial à ldap_result(3) est effectué avec un timeout de 100000us. Si le résultat excède ce timeout, les appels suivants utilisent la valeur de bind-timeout.
chase-referrals YES|no Active/désactive le repérage de référence automatique, qui est déléguée à libldap, avec un rebinding éventuel si la directive rebind-as-user est utilisée. défaut: yes
client-pr {accept-unsolicited|DISABLE|‹size›} Permet d'utiliser le contrôle paged result en requêtant un target. Le client n'est pas soumis à ce contrôle.
default-target [‹target›] Sans argument, indique que le target courant est le défaut. target est un numéro du target par défaut.
filter ‹pattern› regex pour indiquer quels termes de filtre de recherche sont servis par le target.
idassert-authzFrom ‹authz-regexp› Sélectionne quels identités local sont autorisées à exploiter la fonctionnalité d'assertion d'identité. l'expressions suit la règle définis pour authzFrom
idassert-bind bindmethod=none|simple|sasl [binddn=‹simpleDN›] [credentials=‹simple password›]
[saslmech=‹SASL mech›] [secprops=‹properties›] [realm=‹realm›] [authcId=‹authenticationID›]
[authzId=‹authorization ID›] [authz=native|proxyauthz] [mode=‹mode›] [flags=‹flags›] [starttls=no|yes|critical]
[tls_cert=‹file›] [tls_key=‹file›] [tls_cacert=‹file›] [tls_cacertdir=‹path›] [tls_reqcert=never|allow|try|demand]
[tls_ciphersuite=‹ciphers›] [tls_protocol_min=‹version›] [tls_crlcheck=none|peer|all] Permet de définir les paramètres de la méthode d'authentification utilisée en interne par le proxy pour autoriser les connexions qui sont authentifiées par d'autres bases de données. L'identité définie doit avoir l'accès auth sur le serveur cible sur les attributs utilisés et doit avoir le droit d'authoriser d'autres users (proxyAuth sur tout le DN, ex : authzTo=dn.subtree :"") et le serveur distant doit avoir authz-policy mis à to ou both.
‹mode› := {legacy|anonymous|none|self} legacy implique que le proxy va effectuer un simple bind (authcDN) ou SASL (authcID) et assert l'identité du client quand il n'est pas anonyme. Anonymous et self, assert une chaîne vide ou l'identité du client, respectivement.
‹flag› := {override|[non-]prescriptive|proxy-authz-[non-]critical} override, l'assertion de l'identité prend place même quand la base est autorisée pour l'identité du client. Quand prescriptive est utilisé, les opérations échouent avec inappropriateAuthentication pour les identités dont l'assertion n'est pas permise par le motif idassert-authzFrom. non-prescriptive, les opérations sont effectuées anonymement pour les identité dont l'assertion n'est pas permise par le pattern idassert-authzFrom. proxy-authz-non-critical, le contrôle proxyAuthz contrôle n'est pas marqué comme critique, en violation de la RFC 4370. il est recommandé d'utiliser proxy-authz-critical
idle-timeout ‹time› Force une connexion en cache à être supprimée puis recrée après une timeout
keepalive ‹idle›:‹probes›:‹interval› Définis les valeurs de idle, probes et interval utilisés pour cérifier si un socket est actif. idle est le nombre de seconde avant qu'une connexion non-active reçoive un keepalive. probes et le nombre maximum de keepalive, et interval est le nombre de seconde entre chaque keepalive.
map {attribute|objectclass ‹local name› ‹foreign name›|*} Map des classes d'objet et des attributs comme dans le backend ldap
network-timeout ‹time› Définis la valeur timeout réseau après que poll(2)/select(2) suivant un retour connect(2) en cas d'inactivité, en seconde
nretries {forever|never|‹nretries›} Définis le nombre de fois qu'un bind doit être retenté en cas d'échec temporaire. (défaut : 3)
rewrite*... Permet de réecrire des requêtes
subtree-{exclude|include} ‹rule› Permet d'indiquer quels subtrees sont actuellement servis par un target. Peut être spécifié plusieurs fois. les syntaxes supportées sont:

        ‹rule›: [dn[.‹style›]:]‹pattern›
        ‹style›: subtree|children|regex style est soit subtree, children ou un regexp. pattern est un DN qui doit être dans le contexte de nommage servis par le target, ou un regex si style vaut regex. Si dn.‹style› est omis, dn.subtree est implicite
        Dans la forme subtree-exclude, si le DN demandé match au moins une règle, la cible n'est pas considérée pour remplir la requête.
        Dans la forme subtree-include, si le DN demandé match au moins une règle, la cible est considérée basée sur la valeur du request DN.

suffixmassage ‹virtual naming context› ‹real naming context› Toutes les directives commençant par "rewrite" obsolète par slapo-rwm.
t-f-support {NO|yes|discover} Permet le support des filtres absolus des serveur distant
timeout [‹op›=]‹val› [...] Définis un timeout par opération. Les opérations peuvent être : ‹op› ::= bind, add, delete, modrdn, modify, compare, search
tls {[try-]start|[try-]propagate} Exécute StartTls quand la connexion est initialisée. Ne fonctionne qu'avec ldaps://

scénarios

1. 2 serveurs partagent 2 niveaux de contexte de nommage, "dc=a,dc=foo,dc=com" et "dc=b,dc=foo,dc=com". Un meta annuaire peut être configuré comme:
database meta
suffix "dc=foo,dc=com"
uri "ldap://a.foo.com/dc=a,dc=foo,dc=com"
uri "ldap://b.foo.com/dc=b,dc=foo,dc=com"
Les opérations dirigées vers un target spécifique peuvent facilement être résolus parce qu'il n'y pas d'ambiguïté. La seule opération qui peut résoudre plusieurs target est une recherche avec une base "dc=foo,dc=com". qui résulte de 2 recherches dans les targets.

2. 2 serveurs ne partagent aucune portion du contexte de nommage, mais ils se présentent en un simple DIT. "dc=bar,dc=org" et "o=Foo,c=US" qui apparaissent comme des branches de "dc=foo,dc=com", disons "dc=a,dc=foo,dc=com" et "dc=b,dc=foo,dc=com". On doit configurer le backend meta comme suit:
database meta
suffix "dc=foo,dc=com"
uri "ldap ://a.bar.com/dc=a,dc=foo,dc=com"
suffixmassage "dc=a,dc=foo,dc=com" "dc=bar,dc=org"
uri "ldap ://b.foo.com/dc=b,dc=foo,dc=com"
suffixmassage "dc=b,dc=foo,dc=com" "o=Foo,c=US"
De même, les opérations peuvent être résolus sans ambiguïté, bien qu'une réécriture soit requise. Noter que le contexte de nommage de chaque cible est une branche du contexte de nommage de la base. lors d'une recherche avec la base "dc=foo,dc=com" et un scope base, une erreur no such object est générée. Si le scope est one, les 2 targets sont contactés.

3. En utilisant le scénario précédent avec 2 serveurs partageant le même contexte de nommage:
database meta
suffix "dc=foo,dc=com"
uri "ldap ://a.bar.com/dc=foo,dc=com"
suffixmassage "dc=foo,dc=com" "dc=bar,dc=org"
uri "ldap ://b.foo.com/dc=foo,dc=com"
suffixmassage "dc=foo,dc=com" "o=Foo,c=US"
Toutes les considérations précédente sont maintenues, excepté que maintenant il n'y a plus d'ambiguïté pour résoudre un DN

ACL

   Vous pouvez ajouter toutes les ACL au backend meta. Cependant, la signification d'un ACL sur un proxy peut nécessiter certaines considérations.

- Le serveur distant dicte les permissions ; le proxy passe simplement ce qu'il reçoit au serveur distant
- Le serveur distant dévoile tout, le proxy est responsable de la protection des accès non autorisés.

rewriting

   La syntaxe et le fonctionnement est le même que slapo-rwm
^
19 octobre 2013

htmlpdflatexmanmd




slapd-mdb

slapd-mdb

Backend mdb

   Lightning Memory-Mapped DB est similaire au backend hdb.

Configuration

checkpoint _kbyte_ _min_ Spécifie la fréquence pour vider les tampons disque de la db.
dbnosync Spécifie que le contenu sur disque de la db ne devrait pas être immédiatement synchronisé avec les changements en mémoire
directory _directory_ Spécifie le répertoire où placer la db
envflags {nosync,nometasync,writemap,mapasync} Spécifie les flags opératoire:

        nosync idem à dbnosync
        nometasync Vide les données sur envoie, mais saute la synchro des page meta. légèrement plus rapide qu’un full sync
        writemap Utilise un map mémoire en écriture. accélère les opérations d’écriture, mais rend la base vulnérable aux corruptions
        mapasync En utilisant une map mémoire en écriture et en effectuant un flush sur chaque envoie, utilise un flush asynchrone

index {_attrlist_|default} [pres,eq,approx,sub,_special_] Spécifie les index à maintenir pour les attributs donnés
maxreaders _integer_ Spécifie le nombre maximum de threads concurrent en lecture sur la db. (défaut : 126)
maxsize _bytes_ Taille max de la db en octets. (défaut 10485760). Peut être augmenté ultérieurement
mode _integer_ Spécifie le mode de protect des fichiers (défaut : 0600)
searchstack _depth_ Spécifie la profindeur de la pile utiliséepour les évaluations de filtre de recherche, 512Ko par niveau. (défaut : 16, soit 8Mo par thread)
^
19 octobre 2013

htmlpdflatexmanmd




slapd-ldif

slapd-ldif

Backend ldif

   Le backend LDIF est un backend basique qui stocke les entrées dans un fichier texte ldif, et exploite le système de fichier pour créer la structure de l’arborescence de la base de données.

Configuration

directory ‹dir› le Répertoire où placer la base de données. Le répertoire doit exister

ACL

   ce backend n’honore aucune acl. Seul read est honoré
^
19 octobre 2013

htmlpdflatexmanmd




slapd-ldap

slapd-ldap

Backend ldap

   Ce backend n'est pas une base, il agit comme proxy pour transférer des requêtes entrantes à un autre serveur LDAP. Les référants sont pleinement traités au lieu d'être retournés au client. Les sessions qui Bind explicitement avec ce backend créent toujours leur propre connexion privée au serveur LDAP distant. Les sessions anonymes vont partager une seule connexion anonyme. Pour les sessions liées avec d'autres mécanismes, toutes les sessions avec le même DN vont partager la même connexion. Celà permet d'améliorer l'efficacité du proxy.

   La base ldap peut aussi agir comme service d'information, par ex. l'identité des clients authentifiés localement est affirmé sur le serveur distant, possiblement sous une forme modifiée. Dans ce but, le proxy bind au serveur distant avec une identité administrative, et, si requis, authorise l'identité fournie.

   L'instance proxy de slapd doit contenir le schéma pour les attributs et les classes d'object utilisé dans les requêtes. slapd doit être configuré avec le support des threads, et le paramètre threads adapté.

Configuration

uri ‹ldapurl› Serveur LDAP à utiliser. Plusieurs URI peuvent être spécifiés (ex: uri "ldap://host/ ldap://backup-host/")
acl-bind bindmethod=simple|sasl [binddn=‹simple DN›] [credentials=‹simple password›] [saslmech=‹SASLmech›]
[secprops=‹properties›] [realm=‹realm›] [authcId=‹authenticationID›] [authzId=‹authorization ID›]
[starttls=no|yes|critical] [tls_cert=‹file›] [tls_key=‹file›] [tls_cacert=‹file›] [tls_cacertdir=‹path›]
[tls_reqcert=never|allow|try|demand] [tls_ciphersuite=‹ciphers›] [tls_protocol_min=‹version›] [tls_crlcheck=none|peer|all] Permet de définir les paramètres de la méthode d'authentification utilisé par le proxy pour collecter les informations liées au contrôle d'accès L'identité définie par cette directive doit avoir l'accès read sur le serveur cible aux attributs utilisés sur le proxy pour la vérification des ACL.
cancel {ABANDON|ignore|exop[-discover]} Définis comment manipuler les annulations d'opérations. abandon (abandonne immédiatement l'opération), ignore (aucune action et la réponse est ignorée), exop (une opération cancel est envoyée au serveur distant), exop-discover (supporte l'opération étendue cancel)
chase-referrals {YES|no} Active/désactive le repérage de référence automatique, qui est déléguée à libldap, avec un rebind éventuel si la directive rebind-as-user est utilisée défaut : yes
conn-ttl ‹time› Force la suppression d'une connexion en cache et la recrée après le ttl donné, sans regarder s'il elle est active ou non.
idassert-authzFrom ‹authz-regexp› Sélectionne quelles identités locales sont autorisées à exploiter la fonction d'assertion d'identité
idassert-bind bindmethod=none|simple|sasl [binddn=‹simpleDN›] [credentials=‹simple password›]
[saslmech=‹SASL mech›] [secprops=‹properties›] [realm=‹realm›] [authcId=‹authenticationID›]
[authzId=‹authorization ID›] [authz=native|proxyauthz] [mode=‹mode›] [flags=‹flags›] [starttls=no|yes|critical]
[tls_cert=‹file›] [tls_key=‹file›] [tls_cacert=‹file›] [tls_cacertdir=‹path›] [tls_reqcert=never|allow|try|demand]
[tls_ciphersuite=‹ciphers›] [tls_protocol_min=‹version›] [tls_crlcheck=none|peer|all] Permet de définir les paramètres de la méthode d'authentification utilisée en interne par le proxy pour autoriser les connexions qui sont authentifiées par d'autres bases de données. L'identité définie doit avoir l'accès auth sur le serveur cible sur les attributs utilisés et doit avoir le droit d'authoriser d'autres users (proxyAuth sur tout le DN, ex: authzTo=dn.subtree:"") et le serveur distant doit avoir authz-policy mis à to ou both.
‹mode› := {legacy|anonymous|none|self} legacy implique que le proxy va effectuer un simple bind (authcDN) ou SASL (authcID) et assert l'identité du client quand il n'est pas anonyme. Anonymous et self, assert une chaîne vide ou l'identité du client, respectivement.
‹flag› := {override|[non-]prescriptive|proxy-authz-[non-]critical} override, l'assertion de l'identité prend place même quand la base est autorisée pour l'identité du client. Quand prescriptive est utilisé, les opérations échouent avec inappropriateAuthentication pour les identités dont l'assertion n'est pas permise par le motif idassert-authzFrom. non-prescriptive, les opérations sont effectuées anonymement pour les identités dont l'assertion n'est pas permise par le pattern idassert-authzFrom. proxy-authz-non-critical, le contrôle proxyAuthz contrôle n'est pas marqué comme critique, en violation de la RFC 4370. il est recommandé d'utiliser proxy-authz-critical
idassert-passthru ‹authz-regexp› Si définis, sélectionne quelle identité local bypasse l'assertion d'identité. ces identités doivent être connues par l'hôte distant. la chaîne authz-regexp suit les règles définies pour authzFrom
idle-timeout ‹time› Force une connexion en cache à être supprimée puis recrée après une timeout
keepalive ‹idle›:‹probes›:‹interval› Définis les valeurs de idle, probes et interval utilisés pour certifier si un socket est actif. idle est le nombre de secondes avant qu'une connexion non-active reçoive un keepalive. probes et le nombre maximum de keepalive, et interval est le nombre de seconde entre chaque keepalive.
network-timeout ‹time› Définis la valeur timeout réseau après que poll(2)/select(2) suivant un retour connect(2) en cas d'inactivité, en seconde
norefs ‹NO|yes› à yes, ne retourne pas de réponse de référence de recherche. (défaut : NO, sauf si LDAPv2)
noundeffilter ‹NO|yes› à yes, retourne success au lieu de rechercher si un filtre est indéfinis ou contient des portions indéfinies. Par défaut, la recherche est propagée après avoir remplacé les portions indéfinies avec (!(objectClass=*)), qui correspond à un résultat vide.
onerr {CONTINUE|stop} Permet de sélectionner le mode en cas d'erreur retourné par le serveur distant durant une recherche. à Continue, retourne un success. à stop, l'erreur est retournée au client.
protocol-version {0,2,3} Indique quel protocole utiliser pour contacter le serveur distant (0, le protocole utilisé est le même que celui utilisé par le client)
proxy-whoami NO|yes Active le proxy de l'opération WhoAmI, back-ldap va remplacer la routine whoami de slapd avec le sien.
quarantine ‹interval›,‹num›[ ;‹interval›,‹num›[...]] Met en quarantaine les URI qui ont retourné LDAP_UNAVAILABLE. retente seulement à interval seconde depuis la dernière tentative, pour exactement num fois ; puis utilise le prochain pattern. si num vaut +, retente indéfiniment.
rebind-as-user {NO|yes} à yes, les crédential du client sont mémorisés pour rebind, en tentant de re-établir une connexion perdue, ou lors de la poursuite d'aiguillage si chase-referrals est à yes.
session-tracking-request {NO|yes} Ajoute un contrôle de traçage de session pour toutes les requêtes. l'IP/hostname du client et l'identité associée à chaque requête sont envoyés au serveur distant pour information. Est incompatible avec protocol-version 2.
single-conn {NO|yes} Annule toute connexion en cache si le client se rebind
t-f-support {NO|yes|discover} Active le support des filtres absolus des serveurs distant (RFC4526).
timeout [‹op›=]‹val› [...] Permet de définir des timeouts par opération. ‹op› ::= bind, add, delete, modrdn, modify, compare, search
tls {[try-]start|[try-]propagate|ldaps} [tls_cert=‹file›] [tls_key=‹file›] [tls_cacert=‹file›] [tls_cacertdir=‹path›]
[tls_reqcert=never|allow|try|demand] [tls_ciphersuite=‹ciphers›] [tls_crlcheck=none|peer|all] Spécifie l'utilisation de TLS pour l'initialisation des connexions.
use-temporary-conn NO|yes Créé une connexion temporaire en compétition avec d'autres threads pour une connexion partagée. Sinon, attent jusqu'à ce qu'une connexion partagée soit disponible.
^
19 octobre 2013

htmlpdflatexmanmd




slapd-dnssrv

slapd-dnssrv

Backend dnssrv

   Backend servant de référant basé sur des enregistrements SRV dans le DNS. Il n’a pas de backend, ni d’option spécifique. Il n’honore aucune ACL. Il n’implément que l’opération search quand le contrôle manageDSAit est utilisé.

^
19 octobre 2013

htmlpdflatexmanmd




slapd-bdb

slapd-bdb, slapd-hdb

Backend bdb,hdb

   S'appuie sur Oracle Berkeley DB. Il utilise intensivement le cache et l'indexation pour accélérer l'accès aux données. hdb est une variante de bdb qui utilise une base de données hiérarchique avec le support de renommage des sous-arborescences Il est plus rapide et nécessite moins d'espace pour stocker les données.

Configuration

   Ces options sont prévues pour complémenter le jeu d'options dans le fichier d'environnement DB_CONFIG

cachesize _integer_ Spécifie la taille du cache d'entrée en mémoire (défaut : 100 entrées)
cachefree _integer_ Spécifie le nombre d'entrées à libérer du cache quand la limite est atteinte (défaut 1)
checkpoint _kbyte_ _min_ Spécifie la fréquence de vérification des log transactionnels de la base. cette opération vide les tampons sur disques et écrit un enregistrement de checkpoint dans les logs Il se produit si _kbyte_ données on été écrits ou _min_ minutes se sont écoulés
checksum Active la validation de checksum des pages quand elles sont lues depuis le disque. Peut seulement être configuré avant la création des fichiers de la base
cryptfile _file_ Spécifie le chemin d'un fichier contenant la clé de chiffrement à utiliser
cryptkey _key_ Spécifie une clé de chiffrement à utiliser (si cryptfile _file_ n'est pas désiré)
dbconfig _Berkeley-DB-setting_ Spécifie une directive de configuration à placer dans le fichier DB_CONFIG de l'annuaire (ex: dbconfig set_cachesize 0 1048576 0, dbconfig set_lg_bsize 2097152 )
dbnosync Spécifie que le contenue de la base sur disque ne devrait pas être synchronisé immédiatement avec les changement en mémoire.
dbpagesize _dbfile_ _size_ Spécifie la taille de page à utiliser pour un fichier de base particulier en unité de 1024bits. défault pour id2entry est 16, pour les autres 4 ou 8. (max : 64)
directory _directory_ Spécifie le répertoire où réside les fichiers de la base et les index associés
dirtyread Permet la lecture des données modifiée mais non committed.
dncachesize _integer_ Spécifie le nombre max de DN en mémoire
idlcachesize _integer_ Spécifie la taille d'index en mémoire, en slot d'index
index {_attrlist_|default} [pres,eq,approx,sub,_special_] Spécifie les index à maintenir en mémoire pour certains attributs
linearindex Dit à slapindex d'indexer un attribut à la fois. Améliore les performances quand la base dépasse dbcache.
lockdetect {oldest|youngest|fewest|random|default} Spécifie quelle transaction annuler quand un deadlock est détecté (défaut : random)
mode _integer_ Spécifie le mode de protection des fichiers d'index nouvellement créés (défaut : 0600)
searchstack _depth_ Spécifie la profondeur de la pile utilisé pour les filtres de recherche. Chaque pile utilise 512 Ko. La pile par défaut est 16, donc 8Mo par thread.
shm_key _integer_ Spécifie une clé pour un environnement BDB à mémoire partagée.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-rwm

slapo-rwm

Overlay rwm

   Overlay rewrite/remap. Permet d'effectuer des réécritures basiques de DN données et des mapping d'attribut/classe d'objet.

Mapping

rwm-map {attribute | objectclass} ‹local name› {‹foreign name› | *} Map les attributeTypes et les objectClasse.
rwm-normalize-mapped-attrs {yes|no} à yes, rwm tente de normaliser les valeurs des attributs mappés (utile lors que les attributs distant sont inconnus du serveur)
rwm-drop-unrequested-attrs {yes|no} à yes, rwm drop les attributs qui ne sont pas explicitement demandés par une opération de recherche.

Suffix Massaging

   Permet de mapper un contexte de nommage réel et virtuel. Permet par exemple de créer des vues virtuelles.

rwm-suffixmassage [‹virtual naming context›] ‹real naming context› Réecriture de contexte de nommage.

Rewriting

   Une chaîne est réécrite en fonction d'un jeu de règles, appelé un contexte de réécriture. Les règles sont basé sur des expressions régulières étendue POSIX avec correspondance de sous-chaîne.

‹rewrite context›::= ‹rewrite rule› [...]
‹rewrite rule›::= ‹pattern› ‹action› [‹flags›]

Passes

   Une chaîne entrante est matchée avec un jeu de rewriteRules. Les règles sont faites de regex match pattern, un substitution pattern et un jeu d'actions, décris par un jeu de flags optionnels. En cas de correspondance, la réécriture de chaîne est effectuée en accord avec le motif de substitution qui permet de référer à une sous-chaîne matchée dans la chaîne. Chaque règle est exécutée récursivement Un mappage est un objet générique qui map un motif de substitution à une valeur. Les flags sont divisés en "Pattern Matching Flags" et en "Action Flags".

Pattern Matching Flags

C respecte la casse
R Utilise les expressions régulière POSIX standard.
M{n} Ne permet pas plus de n récursion pour un règle.

Action Flags

: Applique la règle une seule fois (pas de récursion)
@ Arrête d'appliquer une règle en cas de correspondance
# Stop l'opération courante si la règle correspond et retourne un unwilling to perform
G{n} Saute n règles en arrière
I Ignore les erreurs dans les règles
U{n} Utilise n comme code de retour si la règle match.

Substitution Pattern Syntax

   Tout ce qui commence avec '$' nécessite une substitution. La seule exception est '$$', qui est retourné en un simple '$'. La substitution de base est '$‹d›', où ‹d› est un chiffre; 0 signifie toute la chaîne, de 1 à 9 pour des submatch.

un '$' suivi d'un '{' invoque une substitution avancée:
'$' '{' [ ‹operator› ] ‹name› '(' ‹substitution› ')' '}'

‹name›::= [a-z][a-z0-9]* (case insensitive)
‹operator›::= '›' '|' '&' '&&' '*' '**' '$'

‹substitution› doit être un motif de substitution valide, sans limite de niveau d'imbrication. les opérateurs sont:

        Invocation de sous-contexte
        | Invocation de commande externe
        & Assignement de variable
        Déréferencement de variable
        $ Déréférencement de paramètre

Rewrite Context

   Un contexte de réécriture est un jeu de règles qui sont appliquées en séquence. Quand une réécriture de chaîne est requise, on invoque le contexte de réécriture appropriée. Chaque opération serveur de base est associée à un contexte de réécriture, ils sont divisés en 2 groupes principaux: client -› serveur et serveur -› client:

Client->serveur

(default) Si définis et sans contexte spécifique
bindDN bind
searchDN search
searchFilter search
searchFilterAttrDN search
compareDN compare
compareAttrDN compare AVA
addDN add
addAttrDN add AVA (DN portion of "ref" excluded)
modifyDN modify
modifyAttrDN modify AVA (DN portion of "ref" excluded)
referralAttrDN add/modify DN portion of referrals
renameDN modrdn (the old DN)
newSuperiorDN modrdn (the new parent DN, if any)
newRDN modrdn (the new relative DN)
deleteDN delete
exopPasswdDN password modify extended operation DN

Serveur->client

searchEntryDN search (seulement si défini, pas de défaut, agis sur le DN des entrées recherchées)
searchAttrDN search AVA (seulement si défini, défaut sur searchEntryDN, agis sur les attributs type DN des entrées recherchées)
matchedDN all ops (Seulement si applicable; défaut à searchEntryDN)
referralDN all ops (Seulement si applicable; défaut: none)

Basic Configuration Syntax

rwm-rewriteEngine { on | off } Autorise la réécriture
rwm-rewriteContext ‹context name› [ alias ‹aliased context name› ] ‹Context Name› est le nom qui identifie le contexte, par ex le nom utilisé par l'application pour référer au jeu de règles qu'il contient. Un contexte peut être un alias d'un autre. Dans ce cas il ne contient pas de règle.
rwm-rewriteRule ‹regex match pattern› ‹substitution pattern› [ ‹flags› ] Détermine comment une chaîne peut être réécrite si un motif est matché.

Additional Configuration Syntax

rwm-rewriteMap ‹map type› ‹map name› [ ‹map attrs› ] Permet de définir un map qui transforme des réécritures en quelque chose d'autre. Le map est référencé dans le motif de substitution d'une règle.
rwm-rewriteParam ‹param name› ‹param value› Définis une valeur avec un scope global, qui peut être dé-référencé par la commande ${$paramName}
rwm-rewriteMaxPasses ‹number of passes› [‹number of passes per rule›] Définis un nombre maximum de réécritures totales en une seul opération de réécriture.

Maps

   les mappages supportés sont:

LDAP ‹URI› [bindwhen=‹when›] [version=‹version›] [binddn=‹DN›] [credentials=‹cred›] Étend la valeur en effectuant une simple recherche LDAP. bindwhen détermine quand la connection est établie (now - créée au démarrage, later - quand nécessaire, everytime - a chaque fois).
slapd ‹URI› étend une valeur en effectuant une recherche LDAP interne.

Exemple

activer le rewriting
rwm-rewriteEngine on
Tous les flux de données du client vers le serveur référrant au DN
rwm-rewriteContext default
rwm-rewriteRule "(.+,)?‹virtualnamingcontext›$" "$1‹realnamingcontext›" ":"
Règle de filtre vide
rwm-rewriteContext searchFilter
Tous les flux de données du serveur vers le client
rwm-rewriteContext searchEntryDN
rwm-rewriteRule "(.+,)?‹realnamingcontext›$" "$1‹virtualnamingcontext›" ":"
rwm-rewriteContext searchAttrDN alias searchEntryDN
rwm-rewriteContext matchedDN alias searchEntryDN
Diverses règles vides
rwm-rewriteContext referralAttrDN
rwm-rewriteContext referralDN
Tout ce qui est définis ici va dans le contexte default. Change le contexte de nommage de tout ce qui est envoyé
rwm-rewriteRule "(.+,)?dc=home,[ ]?dc=net$" "$1dc=OpenLDAP, dc=org" ":"
Commence un nouveau contexte (termine l'entrée du précédent) Ajoute un blanc entre les parties du DN si non présent
rwm-rewriteContext addBlanks
rwm-rewriteRule "(.*),([^ ].*)" "$1, $2"
Celui-ci supprime les blanc:
rwm-rewriteContext eatBlanks
rwm-rewriteRule "(.*), (.*)" "$1,$2"
Chaque contrôle revient au context default, les règles sont ajoutée à celles existantes, et pipe dans addBlanks:
rwm-rewriteContext default
rwm-rewriteRule ".*" "${›addBlanks($0)}" ":"
Réecrit la base de recherche sur les règles default:
rwm-rewriteContext searchDN alias default
Les résultats de recherche avec un DN openldap sont réecris avec dc=home,dc=net.
rwm-rewriteContext searchEntryDN
rwm-rewriteRule "(.*[^ ],)?[ ]?dc=OpenLDAP,[ ]?dc=org$" "${›eatBlanks($1)}dc=home,dc=net" ":"
Bind avec le mail au lieu du DN. on fait un map ldap qui transforme les attributs en DN
rwm-rewriteMap ldap attr2dn "ldap://host/dc=my,dc=org?dn?sub"
puis on détecte le DN fait d'un simple email.
rwm-rewriteContext bindDN
rwm-rewriteRule "^mail=[^,]+@[^,]+$" "${attr2dn($0)}" ":@I"
exemple plus sophistiqué
rwm-rewriteContext bindDN
rwm-rewriteRule ".+" "${&&binddn($0)}$0" ":"
# A search filter containing 'uid=' is rewritten only if an appropriate DN is bound. To do this, in the first rule the bound DN is
# dereferenced, while the filter is decomposed in a prefix, in the value of the 'uid=‹arg›' AVA, and in a suffix. A tag '‹›' is appended to the DN.
# If the DN refers to an entry in the 'ou=admin' subtree, the filter is rewritten OR-ing the 'uid=‹arg›' with 'cn=‹arg›'; otherwise it is left as is. This could be
# useful, for instance, to allow apache's auth_ldap-1.4 module to authenticate users with both 'uid' and 'cn', but only if the request comes from a possible
# 'cn=Web auth,ou=admin,dc=home,dc=net' user.
rwm-rewriteContext searchFilter
rwm-rewriteRule "(.*\\()uid=([a-z0-9_]+)(\\).*)" "${**binddn}‹›${&prefix($1)}${&arg($2)}${&suffix($3)}" ":I"
rwm-rewriteRule "^[^,]+,ou=admin,dc=home,dc=net$" "${*prefix}|(uid=${*arg})(cn=${*arg})${*suffix}" ":@I"
rwm-rewriteRule ".*‹›$" "${*prefix}uid=${*arg}${*suffix}" ":"
# This example shows how to strip unwanted DN-valued attribute values from a search result; the first rule matches DN values below "ou=People,dc=example,dc=com";
# in case of match the rewriting exits successfully. The second rule matches everything else and causes the value to be rejected.
rwm-rewriteContext searchEntryDN
rwm-rewriteRule ".+,ou=People,dc=example,dc=com$" "$0" ":@"
rwm-rewriteRule ".*" "" "#"

Exemple de mapping

map objectclass groupOfNames groupOfUniqueNames
map attribute uniqueMember member
Jeu d'attribut limité, map cn, sn, manager, description a eux-même, tous les autres sont supprimés.
map attribute cn *
map attribute sn *
map attribute manager *
map attribute description *
map attribute *
^
12 octobre 2013

htmlpdflatexmanmd




slapo-valsort

slapo-valsort

Overlay valsort

   Permet de trier les valeurs des attributs multi-valués.

OPTIONS

valsort-attr ‹attribute› ‹baseDN› (‹sort-method› | weighted [‹sort-method›]) Configure une méthode de trie pour l'attribut spécifié. sort-method peut être alpha-ascend, alpha-descend, numeric-ascend ou numeric-descend. Si la methode spécial weighted est spécifiée, une 2eme méthode peut aussi être spécifiée.

Exemples

overlay valsort
valsort-attr member ou=groups,dc=example,dc=com alpha-ascend
Pour invoquer ldapsearch avec ce contrôle, la valeur doit être définie. Les octets suivant représentent l'encodage désiré:
0x30 0x03 0x01 0x01 0xff
le contrôle peut être envoyé en utilisant la valeur encodé en base 64:
ldapsearch -E 1.3.6.1.4.1.4203.666.5.14=::MAMBAf8=
^
12 octobre 2013

htmlpdflatexmanmd




slapo-unique

slapo-unique

Overlay unique

   Permet de forcer l'unicité de certains attributs dans un scope.

OPTIONS

unique_uri ‹[strict ][ignore ]URI[URI...]...› (olcUniqueURI) Configure la base, les attributs, scope et filtre pour la vérification de l'unicité. Plusieurs URI peuvent être spécifiés. ignore permet de vérifier l'unicité sur tous les attribut excepté ceux définis. strict force l'unicité, même pour les valeurs null. (ex: ldap:///?cn?sub?(sn=e*) vérifie l'unicité de cn pour tous les objets dont sn commence par un e)
^
12 octobre 2013

htmlpdflatexmanmd




slapo-translucent

slapo-translucent

Overlay translucent

   Proxy transparent. Les entrées récupérées depuis un serveur distant peuvent avoir certains attributs remplacés, ou ajoutés par des entrées dans la base locale avant d'être présentés au client. Une opération compare va effectuer une comparaison avec des attributs définis dans une base locale avant toute comparaison avec une donnée distante.

OPTIONS

translucent_strict par défaut, les tentatives de supprimer des attributs sont ignorés silencieusement. cette directive renvoie une constraint Violation
translucent_no_glue Désactive la création automatique des records "glue" pour une opération add ou modrdn tel que tous parents d'une entrée ajoutée à la base locale doit être créée à la main. ces enregistrements sont toujours créés pour une opération modify.
translucent_local ‹attr[,attr...]› Spécifie une liste d'attributs qui devraient être recherchés dans la base locale quand ils sont utilisés dans un filtre de recherche. par défaut, les filtres de recherche ne sont manipulés que par les serveurs distant.
translucent_remote ‹attr[,attr...]› Spécifie une liste d'attributs qui devraient être recherchés dans une base distante quand ils sont utilisés dans un filtre de recherche. par défaut, les filtres de recherche ne sont manipulés que par les serveurs distant
translucent_bind_local Permet de chercher les crédentials stockés localement pour les simple bind quand les bind distant échouent.
translucent_pwmod_local Permet les opérations étendu de modification de mot de passe sur les crédentials stockés localement. Ne s'applique qu'aux entrées présent dans la base distante.

Contrôle d'accès

   Le contrôle d'accès est délégué soit au DSA distant ou au backend local pour les opération auth et write. Il est délégué au DSA distant et au frontend pour les opérations read. Cet overlay va désactiver la vérification du schéma dans la base local, les entrées ayant des attributs d'overlay doivent adhérer au schéma complet.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-syncprov

slapo-syncprov

Overlay syncprov

   Implémente la RFC4533 et le support pour la réplication syncrepl. Peut être utilisé avec tout backend qui supporte entryCSN et entryUUID. Il créé également un attribut contextCSN dans l'entrée root de la base. le contextCSN est mis à jours à chaque opération d'écriture effectuée dans la base. Pour réduire les accès, la mise à jours n'est effectuée qu'en ram. des checkpoints peuvent être configurés pour écrire dans la base.

OPTIONS

syncprov-checkpoint ‹ops› ‹minutes› délay d'écriture du contextCSN au bout de ops opérations ou au bout de minutes écoulés
syncprov-sessionlog ‹ops› Configure un log de session en mémoire pour enregistrer les informations d'écriture faites dans la base. ops est le nombre d'opération enregistrées dans la base.
syncprov-nopresent TRUE | FALSE spécifie sie la phase Present du rafraichissement doit être ignorée. Utile seulement pour une instance syncprov au dessus d'une base de log.
syncprov-reloadhint TRUE | FALSE Spécifie que l'overlay devrait honorer le flag reloadHint dans le contrôle Sync.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-sssvlv

slapo-sssvlv

Overlay sssvlv

   Implémente la RFC2891 et le contrôle de liste virtuelle. Remplace également l'implémentation de la RFC2696 pour s'assurer qu'il fonctionne bien avec le trie.

OPTIONS

sssvlv-max ‹num› Nombre maximum de requêtes de trie simultané permis parmis toutes les connections
sssvlv-maxkeys ‹num› Nombre maximum de requêtes triées simultanées parmis toutes les connections.
sssvlv-maxperconn ‹num› Nombre maximum de recherche paginée simultanées par connection.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-retcode

slapo-retcode

Overlay retcode

   Utile pour des tests, les réponses sont générées en accord avec différentes stratégies. Dans le premier cas, pour toutes les opérations ciblées dans une sous-arborecence, la recherche est effectuées et vérifiée pour le code de retour, plus un message textuel optionnel. Les codes de réponse connus sont fournis dans retcodes.conf. Dans le second cas, les classes d'objet qui héritent de errAbsObject comme errObject ou errAuxObject, retournent un code dicté par ce contenu. Un Troisième cas recherche l'objet dans une base pour découvrir si leur classe hérite de errAbsObject. Dans ce cas, leur contenu est utilisé pour calculer la réponse correspondante. Désactivé en utilisant le contrôle manageDSAit.

OPTIONS

retcode-parent ‹DN› Définis le DN parent où les entrées générées dynamiquement résident.
retcode-item ‹RDN› ‹errCode› [op=‹oplist›] [text=‹message›] [ref=‹referral›] md
[unsolicited=‹OID›[ :‹data›]] [flags=[pre|post-]disconnect[,...]] Une entrée générée dynamiquement sous retcode-parent. errCode est le numéro du code de réponse. oplist est une liste d'opérations qui génère la génération du code. matched est le DN matché qui est retourné avec l'erreur. text est le message optionnel, ref est permis pour le code referral. sleeptime secondes avant de traiter l'opération. unsolicited peut être utilisé pour forcer un message de réponse unsolicited rfc4511. OID si non 0, génère une réponse étendue avec data ajouté. flags contient disconnect ou pre-disconnect (fore la déconnection sans notification) ou post-disconnect (déconnection après avoir envoyé la réponse)
retcode-indir Active l'exploitation de errAbsObject.
retcode-sleep [-]‹n› Secondes d'attente avant de manipuler les opérations. une valeur négative indique une valeur aléatoire entre 0 et la valeur indiquée.

Schéma

Le code d'erreur:
( 1.3.6.1.4.1.4203.666.11.4.1.1 NAME ( 'errCode' ) DESC 'LDAP error code' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

L'opération qui déclenche le code de réponse:
( 1.3.6.1.4.1.4203.666.11.4.1.2 NAME ( 'errOp' ) DESC 'Operations the errObject applies to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

le message textuel:
( 1.3.6.1.4.1.4203.666.11.4.1.3 NAME ( 'errText' ) DESC 'LDAP error textual description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

Temps d'attente avant de retourner la réponse:
( 1.3.6.1.4.1.4203.666.11.4.1.4 NAME ( 'errSleepTime' ) DESC 'Time to wait before returning the error' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

DN retourné au client:
( 1.3.6.1.4.1.4203.666.11.4.1.5 NAME ( 'errMatchedDN' ) DESC 'Value to be returned as matched DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )

OID retourné comme réponse étendue unsolicited responses:
( 1.3.6.1.4.1.4203.666.11.4.1.6 NAME ( 'errUnsolicitedOID' ) DESC 'OID to be returned within unsolicited response' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE )

Chaîne d'octet à retourner comme donnée de réponse étendue:
( 1.3.6.1.4.1.4203.666.11.4.1.7 NAME ( 'errUnsolicitedData' ) DESC 'Data to be returned within unsolicited response' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )

Mode de déconnexion:
( 1.3.6.1.4.1.4203.666.11.4.1.8 NAME ( 'errDisconnect' ) DESC 'Disconnect without notice' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )

Déclencheur de l'overlay:
( 1.3.6.1.4.1.4203.666.11.4.3.0 NAME ( 'errAbsObject' ) SUP top ABSTRACT MUST ( errCode ) MAY ( cn $ description $ errOp $ errText $ errSleepTime $ errMatchedDN ) )
    
( 1.3.6.1.4.1.4203.666.11.4.3.1 NAME ( 'errObject' ) SUP errAbsObject STRUCTURAL )
    
( 1.3.6.1.4.1.4203.666.11.4.3.2 NAME ( 'errAuxObject' ) SUP errAbsObject AUXILIARY )

Exemples

retcode.conf se trouve dans tests/data/
include ./retcode.conf
Attendre 10 secondes, puis retourner un succès (0x00)
retcode-item "cn=Success after 10 seconds" 0x00 sleeptime=10
Attendre 10 secondes, puis retouner timelimitExceeded (0x03)
retcode-item "cn=Timelimit after 10 seconds" 0x03 sleeptime=10
^
12 octobre 2013

htmlpdflatexmanmd




slapo-refint

slapo-refint

Overlay refint

   Overlay d'intégrité de référentiel. Permet de maintenir une cohérence d'un schéma avec des attributs référence. Il permet de mettre à jours la base lors d'opérations modrdn ou delete.

OPTIONS

refint_attributes ‹attribute› [...] Spécifie les attributs où l'intégrité doit être maintenue.
refint_nothing ‹string› Spécifie une valeur arbitraire à utiliser lors d'une suppression dans un attribut qui impose d'avoir une valeur.
refint_modifiersname ‹DN› DN à utiliser comme modifierName des modifications internes effectuées par l'overlay.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-ppolicy

slapo-ppolicy

Overlay ppolicy

   Overlay de stratégie de mot de passe. Il intercepte et applique des contrôles de mot de passe.

OPTIONS

ppolicy_default ‹policyDN› DN de l'objet pwdPolicy à utiliser quand aucune stratégie n'est définie dans l'entrée de l'utilisateur.
ppolicy_forward_updates Spécifie que les changements d'état de stratégie qui résultent des opérations bind devraient être forwardés à un master au lieu d'être écrit directement dans la base local.
ppolicy_hash_cleartext Spécifie que les mots de passe en clair devraient être hashés. celà viole le modèle d'information X500 mais peut être utile pour les clients qui n'utilisent pas l'opération étendue Password Modify.
ppolicy_use_lockout Un client reçoit toujours une réponse InvalidCredentials lors d'un bind avec un compte bloqué. Cette option change le code de réponse pour inclure AccountLocked. Noter que ce code fournis des informations à un attaquant.

Schéma

pwdPolicy utilisé par l'overlay
pwdPolicyChecker Utilisé pour vérifier la qualité des mots de passe.
pwdAttribute Contient le nom de l'attribut où la stratégie de mot de passe s'applique. (accèpte uniquement userPassword)
pwdMinAge Secondes minimum entre chaque modifications permises
pwdMaxAge Secondes maximum entre chaque modifications permises
pwdInHistory Nombre d'historique de mots de passe à conserver.
pwdCheckQuality Indique si et comment la syntaxe de mot de passe sera vérifiée. 0 pas de vérification, 2, vérifie la syntaxe et si le serveur ne peut pas le vérifier, dû à un mot de passe hashé, il sera accepté. 2 le serveur doit pouvoir vérifier la syntaxe.
pwdMinLength Nombre minimum de caractère du mot de passe
pwdExpireWarning secondes avant expiration où le serveur envoie un message d'avertissement
pwdGraceAuthnLimit Nombre de fois q'un mot de passe expiré peut être utilisé pour authentifier un utilisateur
pwdLockout Action à prendre quand un utilisateur a échoue l'authentification pwdMaxFailure fois. a TRUE, l'utilisateur ne pourra plus s'authentifier.
pwdLockoutDuration Durée en seconde pendant laquelle l'utilisateur ne peut pas s'authentifier après pwdMaxFailure échecs d'authentification.
pwdMaxFailure Nombre d'authentifications consécutives échouées.
pwdFailureCountInterval Secondes avant que le comptes d'échec d'authentification soit purgé.
pwdMustChange A TRUE, spécifie que l'utilisateur doit changer son mot de passe une fois authentifié.
pwdAllowUserChange Spécifie si l'utilisateur peut changer son mot de passe ou non. ( les ACL devraient être utilisés à la place de cet attribut)
pwdSafeModify a TRUE, le mot de passe et le nouveau mot de passe doivent être envoyés en même temps.
pwdCheckModule Nomme un module qui doit instancier la fonction check_password().
userPassword (opérationnel) Contient le mot de passe de l'utilisateur
pwdPolicySubentry (opérationnel) réfère directement à pwdPolicy
pwdChangedTime (opérationnel) Date de dernier changement de mot de passe
pwdAccountLockedTime (opérationnel) date à laquelle le compte a été bloqué. (000001010000Z indique que le compte est bloqué de manière permanente).
pwdFailureTime (opérationnel) Date de chaque échec d'authentification.
pwdHistory (opérationnel) Contient l'hitorique des derniers mots de passe utilisés.
pwdGraceUseTime (opérationnel) Date des logins effectués après que le mot de passe ait expiré.
pwdReset (opérationnel) Indique que le mot de passe a été réinitialisé par un administateur (il doit être changé à la prochaine authentification)


( 1.3.6.1.4.1.42.2.27.8.2.1 NAME 'pwdPolicy' AUXILIARY SUP top MUST ( pwdAttribute ) MAY ( pwdMinAge $ pwdMaxAge $ pwdInHistory $ pwdCheckQuality $ pwdMinLength $ pwdExpireWarning $ pwdGraceAuthnLimit $ pwdLockout $ pwdLockoutDuration $ pwdMaxFailure $ pwdFailureCountInterval $ pwdMustChange $ pwdAllowUserChange $ pwdSafeModify ) )
    
( 1.3.6.1.4.1.4754.2.99.1 NAME 'pwdPolicyChecker' AUXILIARY SUP top MAY ( pwdCheckModule ) )
    
( 1.3.6.1.4.1.42.2.27.8.1.1 NAME 'pwdAttribute' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )
    
( 1.3.6.1.4.1.42.2.27.8.1.2 NAME 'pwdMinAge' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.3 NAME 'pwdMaxAge' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.4 NAME 'pwdInHistory' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.5 NAME 'pwdCheckQuality' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.6 NAME 'pwdMinLength' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.7 NAME 'pwdExpireWarning' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.8 NAME 'pwdGraceAuthnLimit' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.9 NAME 'pwdLockout' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.10 NAME 'pwdLockoutDuration' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.11 NAME 'pwdMaxFailure' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.12 NAME 'pwdFailureCountInterval' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.13 NAME 'pwdMustChange' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.14 NAME 'pwdAllowUserChange' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.15 NAME 'pwdSafeModify' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
    
( 1.3.6.1.4.1.4754.1.99.1 NAME 'pwdCheckModule' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
    
( 1.3.6.1.4.1.42.2.27.8.1.23 NAME 'pwdPolicySubentry' DESC 'The pwdPolicy subentry in effect for this object' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation)
    
( 1.3.6.1.4.1.42.2.27.8.1.16 NAME 'pwdChangedTime' DESC 'The time the password was last changed' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation)
    
( 1.3.6.1.4.1.42.2.27.8.1.17 NAME 'pwdAccountLockedTime' DESC 'The time an user account was locked' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation)
    
( 1.3.6.1.4.1.42.2.27.8.1.19 NAME 'pwdFailureTime' DESC 'The timestamps of the last consecutive authentication failures' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 EQUALITY generalizedTimeMatch ORDERING generalizedTimeOrderingMatch NO-USER-MODIFICATION USAGE directoryOperation )
    
( 1.3.6.1.4.1.42.2.27.8.1.20 NAME 'pwdHistory' DESC 'The history of user passwords' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 EQUALITY octetStringMatch NO-USER-MODIFICATION USAGE directoryOperation)
    
( 1.3.6.1.4.1.42.2.27.8.1.21 NAME 'pwdGraceUseTime' DESC 'The timestamps of the grace login once the passwordhas expired' SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 EQUALITY generalizedTimeMatch NO-USER-MODIFICATION USAGE directoryOperation)
    
( 1.3.6.1.4.1.42.2.27.8.1.22 NAME 'pwdReset' DESC 'The indication that the password has been reset' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE USAGE directoryOperation)

^
12 octobre 2013

htmlpdflatexmanmd




slapo-pcache

slapo-pcache

Overlay pcache

   Overlay de proxy cache. Permet de mettre en cache les requêtes LDAP dans une base locale. Pour chaque requêtes, il détermine si elle correspond à un template.

OPTIONS

pcache ‹database› ‹max_entries› ‹numattrsets› ‹entry_limit› ‹cc_period› Active le proxy cache dans la base courante Un backend ‹database› sera utilisé en interne pour maintenir les entrées. ‹max_entries› écrase le cache quand le nombre d'entrées est atteint. numattrsets devrait être égal au nombre de directives pcacheAttrset. Les requêtes sont en cache uniquement si elles matchent un template et que le résultat retourné est inférieur à entry_limit. La vérification de consistance est effectuée toutes les cc_period en seconde.
pcacheAttrset ‹index› ‹attrs...› Utilisé pour associer un jeu d'attributs avec un index. Chaque jeu d'attribut est associé avec un entier de 0 à numattrsets-1. Ces indices sont utilisé par pcacheTemplate pour définir les templates cachable. (un jeu d'attribut de "1.1" spécifie que seul la présence de l'entrée en mise en cache)
pcacheMaxQueries ‹queries› Spécifie le nombre max de requêtes à mettre en cache.
pcacheValidate TRUE | FALSE Vérifie sur les résultats en cache peuvent être retournés du cache par le proxy. a TRUE, s'assure de la consistance avec le schéma connu du proxy.
pcacheOffline TRUE | FALSE Définis le cache en mode offline. La vérification de la consistance est stoppée et aucune expiration ne se produit.
pcachePersist TRUE | FALSE Spécifie si les résultats en cache devraient être sauvegardés entre les redémarrages.
pcacheTemplate ‹template_string› ‹attrset_index› ‹ttl› [‹negttl›[‹limitttl› [‹ttr›]]] Spécifie un template de mise en cache, et un TTL. negttl peut être utilisé pour spécifier que les résultats négatifs devraient également être mis en cache. limitttl peut être utilisé pour spécifier que les résultat qui atteignent le limitttl devraient aussi être mis en cache. un ttr optionnel peut être utilisé que les résultats en cache devraient seulement être rafraîchis après un certain temps. Les entrées sont rafraichis seulement s'ils n'ont pas expirés, dont ttl doit être plus grand que ttr.
pcacheBind ‹filter_template› ‹attrset_index› ‹ttr› ‹scope› ‹base› Spécifie un template pour cacher les crédentials simple bind basé sur un pcacheTemplate existant. filter_template est similaire à template_string excepté qu'il peut avoir certaines valeurs présentes.
pcachePosition head | tail Spécifie si la réponse devrait être placé en bas ou en haut de la liste d'appel. Celà affecte la manière dont cet overlay interagis avec d'autres.

Contraintes

   Toutes les valeurs doivent être positives entry_limit devrait être définies en utilisant la directive pcacheAttrset tous les jeux d'attributs devraient être référencés par au moins une directive pcacheTemplate.

Exemple

Ajouter un template avec une chaîne de recherche ($(sn=)(givenName=)) et les attributs mail, postalAddress, telephoneNumber et un TTL de 1 heure:
pcacheAttrset 0 mail postaladdress telephonenumber
pcacheTemplate (&(sn=)(givenName=)) 0 3600
^
12 octobre 2013

htmlpdflatexmanmd




slapo-pbind

slapo-pbind

Overlay pbind

   Permet de forwarder les simple binds sur une base local à un serveur LDAP distant au lieu de les traiter localement.

OPTIONS

uri ‹ldapurl› Serveur ldap à utiliser
tls ‹TLS parameters› Paramètres TLS à utiliser
network-timeout ‹time› Timeout en secondes
quarantine ‹quarantine parameters› met en quarantaine les URI qui ont retourné LDAP_UNAVAILABLE
^
12 octobre 2013

htmlpdflatexmanmd




slapo-memberof

slapo-memberof

Overlay memberof

   Overlay de group membership.

OPTIONS

memberof-group-oc group-oc Nom de la classe d'objet contenant les members.
memberof-member-ad member-ad Nom de l'attribut contenant les members
memberof-memberof-ad memberof-ad Nom de l'attribut qui contiendra le groupes d'appartenance.
memberof-dn dn DN utilisé comme modifierName pour les modifications interne effectuées pour la mettre à jours le membership.
memberof-dangling [ignore, drop, error] Détermine l'action de l'overlay quand une référence non résolue est rencontrée.
memberof-dangling-error error-code si memberof-dangling est à error, permet de modifier le code de réponse retourné. (défaut: constraint violation)
memberof-refint true Détermine si l'overlay tente de préserver l'intégrité des référentiels. Quand une entrée contenant les valeurs de l'attribut "is member of" est modifié, les groupes correspondant son modifiés également.

   L'attribut "memberOf" n'est pas répliqué, chaque serveur doit configurer cet overlay pour maintenir cet attribut.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-dynlist

slapo-dynlist

Overlay dynlist

   Overlay de liste dynamique. Permet d'étendre les groupes dynamiques et plus. A chaque fois qu'une entrée avec une classe objet spécifique est retournée, les occurences de valeurs d'URI sont retournés et étendus en entrées correspondantes.

   Vu que le résultat est construit dynamiquement, il n'existe pas tant que la construction n'est pas retournée. En conséquence, les attributs ajoutés dynamiquement ne participent pas dans la partie de match des filtres de recherche. Filtrer des attributs dynamique échouent toujours.

dynlist-attrset ‹group-oc› [‹URI›] ‹URL-ad› [[‹mapped-ad› :]‹member-ad›...] group-oc est le nom de la classe d'objet pour l'extension dynamique. URI restreint l'expensions, URL-ad est l'attribut qui contient l'URI qui est étendue, doit être de type labeledURI. member-ad liste le DN des entrées resultant de la recherche Interne. Si présent la partie attrs des URI dans URL-ad doit être absent. mapped-ad peut être utilisé pour remapper les attributs obtenus.

Autorisation

   Par défaut les expansions sont effectuées en utilisant l'identité de l'utilisateur courant. Cette identité peut être remplacée avec l'attribut dgIdentity dans l'entrée du groupe. Dans ce cas, le dgIdentity sera utilisé. si dgItentity est vide, l'expansion est faite anonymement. Le schéma dyngroup doit être chargé avant d'utiliser cet attribut. si dgAuthz est présent dans l'entrée du groupe, ses valeurs sont utilisées pour déterminer quelles identités sont autorisées à utiliser le dgIdentity pour expandre le groupe.

Exemple

dynlist-attrset groupOfURLs memberURL
Ajouter une entrée:
dn: cn=Dynamic List,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
cn: Dynamic List
memberURL: ldap:///ou=People,dc=example,dc=com?mail?sub?(objectClass=person)
exemple avec dgIdentity:
dn: cn=Dynamic Group,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
objectClass: dgIdentityAux
cn: Dynamic Group
memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)
dgIdentity: cn=Group Proxy,ou=Services,dc=example,dc=com
^
12 octobre 2013

htmlpdflatexmanmd




slapo-dyngroup

slapo-dyngroup

Overlay dyngroup

   Overlay de groupes dynamiques. Permet aux clients d'utiliser les opérations compare pour tester l'appartenance à un groupe dynamique.

OPTIONS

attrpair ‹memberAttr› ‹URLattr› Spécifie l'attribut à comparer. une opération de comparaison de memberAttr va évaluer URLattr

Exemples

database bdb
...
overlay dyngroup
attrpair member memberURL
^
12 octobre 2013

htmlpdflatexmanmd




slapo-dds

slapo-dds

Overlay dds

   Overlay de services d'annuaire dynamique. implémente la rfc 2589 et permet de définir des objets dynamique, caractérisés par la classe d'objet dynamicObject.

OPTIONS

dds-max-ttl ‹ttl› TTL max ( de 86400 à 31557600 )
dds-min-ttl ‹ttl› TTL minimum pour les opérations de refresh.
dds-default-ttl ‹ttl› TTL par défaut pour les nouveaux objets créés
dds-interval ‹ttl› Interval entre les vérifications d'expiration
dds-tolerance ‹ttl› Spécifie une durée suplémentaire à ajouter au timer qui attend pour supprimer les objets expirés
dds-max-dynamicObjects ‹num› Spécifie le nombre max d'objets dynamiques qui peuvent exister simultanément dans un contexte de nommage.
dds-state TRUE|false Spécifie si la fonctionnalité est activée ou non. Les proxy non pas besoin de gérer ces objets mais necessitent d'informer le frontend du support de ces objets.

Contrôle d'accès

   cet overlay restreint l'opération refresh en nécessitant l'accès manage sur l'attribut entryTtl. Vu que c'est un attribut NO-USER-MODIFICATION, aucune écriture directe n'est possible. l'overlay convertit donc l'opération refresh en une modification interne pour modifier entryTtl avec le jeu de contrôle relax.

La rfc 2589 recommande que les clients anonymes ne devraient pas être autorisés à refresh un objet dynamique:
access to attrs=entryTtl by users manage by * read
Restreindre refresh au créateur de l'objet:
access to attrs=entryTtl by dnattr=creatorsName manage by * read
Assument que Meetings est un attribut de DN valides, permettant aux utilisateurs de commencer une conférence et rafraîchir; empêcher les participant de refresh, et seul le créateur peut le supprimer:
access to dn.base="cn=Meetings" attrs=children by users write
access to dn.onelevel="cn=Meetings" attrs=entry by dnattr=creatorsName write by * read
access to dn.onelevel="cn=Meetings" attrs=participant by dnattr=creatorsName write by users selfwrite by * read
access to dn.onelevel="cn=Meetings" attrs=entryTtl by dnattr=participant manage by * read

Réplication

   Cette implémentation fournie une implémentation réduite de la réplication. Seul les masters peuvent manipuler l'expiration des objets. En répliquant ces objets, on peut explicitement inclure la classe dynamicObjet et l'attribut entryTtl. cette implémentation introduit un nouvel attribut opérationnel, entryExpireTimestamp, qui contient le timestamp d'expiration. Il doit être exclus de la réplication avec:

syncrepl ...
exattrs=entryTtl,entryExpireTimestamp
^
12 octobre 2013

htmlpdflatexmanmd




slapo-constraint

slapo-constraint

Overlay constraint

   Overlay de contrainte d'attributs. Permet de s'assurer que les valeurs d'attribut matchent certaines contraintes au-delà de la syntaxe de base LDAP. Les attributs peuvent avoir plusieurs contraintes et toute doivent être satisfaites.

OPTIONS

constraint_attribute ‹attribute_name›[,...] ‹type› ‹value› [‹extra›[...]] Spécifie la contrainte qui devrait s'appliquer à la liste d'attributs spécifiés dans le premier paramètre. 5 types de contraintes sont actuellement supportés: regex (regex unix), size (permet de forcer une limite de taille), count (nombre de valeurs max d'un attribut), uri ( uri évaluée en interne) et set (interprétée en accord avec le jeu d'acl). Le paramètre extra permet de restreindre l'application de la restriction à la partie base, scope et filter d'un URI)

Exemples

Rejète tout mail qui n'a pas le format ‹alpha-numeric string›@mydomain.com›. Rejète tout titre dont les valeurs ne sont pas listées dans l'attribut title d'une entrée titleCatalog dans le scope donné. Nécessite que les valeurs de cn soit construites avec sn et givenName séparés par un espace, mais uniquement pour les objets dérivés de la classe inetOrgPerson:
overlay constraint
constraint_attribute jpegPhoto size 131072
constraint_attribute userPassword count 3
constraint_attribute mail regex ^ [1]+@mydomain.com$
constraint_attribute title uri ldap:///dc=catalog,dc=example,dc=com?title?sub?(objectClass=titleCatalog)
constraint_attribute cn,sn,givenName set "(this/givenName + [ ] + this/sn) & this/cn" restrict="ldap:///ou=People,dc=example,dc=com??sub?(objectClass=inetOrgPerson)"

^
12 octobre 2013

htmlpdflatexmanmd




slapo-collect

slapo-collect

Overlay collect

   Overlay d'Attributs collectifs.

OPTIONS

collectinfo ‹DN› ‹attrlist› Spécifie le DN de l'entrée de l'ancêtre et le jeu d'attributs collectifs.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-chain

slapo-chain

Overlay chain

   Permet le repérage de références automatique. A chaque fois qu'un référant est retourné (excepté pour les opérations Bind), il est poursuivi en utilisant une instance du backend LDAP. Si les opérations sont effectués avec une identité, cette identité peut être affirmée tout en poursuivant les référants au moyen de l'identity assertion de back-ldap, qui est essentiellement basé sur le contrôle d'autorisation proxifié. la poursuite des référrant peut être contrôlée par le client en fournissant le contrôle chaining.

OPTIONS

overlay chain Ajoute l'overlay chain au backend courant
chain-cache-uri FALSE met en cache les connections des URIs utilisé pour les référants. ces URI héritent des propriétés configurées pour le backend slapd-ldap avant toute occurence de la directive chain-uri.
chain-chaining [resolve=‹r›] [continuation=‹c›] [critical] Active le contrôle chaining avec le mode de résolution et de continuation désiré. resolv réfère au mode de découverte d'une ressource, continuation réfère au comportement face aux réponses intermédiaires. les valeurs r et c peuvent être chainingPreferred, chainingRequired, referralsPreferred, referralsRequired. critical affecte la criticité du contrôle.
chain-max-depth ‹n› Si un référant est retourné durant la poursuite de référrant, indique la profondeur de poursuite.
chain-return-error FALSE|true Si une poursuite échoue, la vrai erreur est retournée au lieu du référrant orginal.
chain-uri ‹ldapuri› Instancie une nouvelle base ldap et instruit quels URI contacter pour poursuivre les référrants. Seul une URI peut apparaitre après cette directive. toutes les autres directives réfèrent à cette instance spécifique d'un serveur distant

Exemples


overlay chain
chain-rebind-as-user FALSE
    
chain-uri "ldap://ldap1.example.com"
chain-rebind-as-user TRUE
chain-idassert-bind bindmethod="simple"
    binddn="cn=Auth,dc=example,dc=com"
    credentials="secret"
    mode="self"
    
chain-uri "ldap://ldap2.example.com"
chain-idassert-bind bindmethod="simple"
    binddn="cn=Auth,dc=example,dc=com"
    credentials="secret"
    mode="none"

   Toute directive valide pour la base ldap peut être utilisée (voir slapd-ldap). plusieurs occurence de chain-uri peuvent être spécifiées. Toutes les URI non listées sont chaînées anonymement. Toutes les occurences slapd-ldap qui apparaissent avant la première occurence de chain-uri sont héritée par toutes les URI, moins de spécifiquement écraser dans chaque configuration d'URI.
^
12 octobre 2013

htmlpdflatexmanmd




slapo-auditlog

slapo-auditlog

Overlay auditlog

   Permet d’enregistrer tous les changements dans une base donnée dans un fichier de log. Les changements sont loggés au format LDIF.

Configuration

auditlog ‹filename› Chemin du fichier de log

Exemples


dn: olcOverlay=auditlog,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcAuditLogConfig
olcOverlay: auditlog
olcAuditlogFile: /tmp/auditlog.ldif

^
28 septembre 2013

htmlpdflatexmanmd




slapo-accesslog

slapo-accesslog

Overlay accesslog

   Overlay de log des accès. Il permet d'enregistrer tous les accès à la base de données dans une autre base.

Configuration

logdb ‹suffix› Spécifie le suffix d'une base de données à utiliser pour stocker les enregistrements.
logops ‹operations› Spécifie quel types d'opérations logger. (abandon, add, bind, compare, delete, extended, modify, modrdn, search, unbind, et les alias writes (add, delete, modify, modrdn), reads (compare, search), session (abandon, bind, unbind) et all (toutes les opérations) )
logbase ‹operations›‹baseDN› Spécifie un jeu d'opérations qui seront loggés uniquement s'ils se produisent dans une arborescence spécifique de la base, et délimités par le caractère '|'
logold ‹filter› Spécifie un filtre pour matcher les entrées supprimées et modifiées. Si l'entrée match le filtre, l'ancienne entrée sera loggées avec la requête en cour.
logoldattr ‹attr› Spécifie une liste d'attributs loggés.
logpurge ‹age›‹interval› Spécifie la durée maximal pour les entrées à maintenir dans la base. et la fréquence de scan de la base pour les anciennes entrées. le format de date est [ddd+]hh:mm[:ss]. ex: logpurge 2+00:00 1+00:00 pour un scan quotidien avec suppression des entrées de plus de 2 jours.
logsuccess TRUE | FALSE à TRUE, les enregistrement seront loggés uniquement si la requête produit un succès. défaut : FALSE

Schéma

   accesslog utilise le schéma audit décrit ici. ce schéma est conçu spécifiquement pour cet overlay.

auditObject 2 classes en sont dérivés : auditReadObject et auditWriteObject.
reqStart
reqEnd Fournissent l'heure de début et de fin de l'opération.
reqType Décrit le type d'opération qui est loggée.
reqSession Identifiant commun à toutes les opérations associées avec la même session LDAP
reqDN DN de la cible de l'opération
reqAuthzID DN de l'utilisation qui a effectué l'action
reqControls
reqRespControls Gèrent les contrôles envoyés par le client dans la requête et retourné par le serveur.
reqResult Code de résultat LDAP de l'opération
reqMessage message d'erreur s'il y'en a un
reqReferral Gère les référrant qui ont été retournés avec le résultat de la requête.


( 1.3.6.1.4.1.4203.666.11.5.2.1 NAME 'auditObject' DESC 'OpenLDAP request auditing' SUP top STRUCTURAL MUST ( reqStart $ reqType $ reqSession ) MAY ( reqDN $ reqAuthzID $ reqControls $ reqRespControls $ reqEnd $ reqResult $ reqMessage $ reqReferral ) )
    
( 1.3.6.1.4.1.4203.666.11.5.2.4 NAME 'auditAbandon' DESC 'Abandon operation' SUP auditObject STRUCTURAL MUST reqId )
    
( 1.3.6.1.4.1.4203.666.11.5.2.5 NAME 'auditAdd' DESC 'Add operation' SUP auditWriteObject STRUCTURAL MUST reqMod )
    
( 1.3.6.1.4.1.4203.666.11.5.2.6 NAME 'auditBind' DESC 'Bind operation' SUP auditObject STRUCTURAL MUST ( reqVersion $ reqMethod ) )
    
( 1.3.6.1.4.1.4203.666.11.5.2.7 NAME 'auditCompare' DESC 'Compare operation' SUP auditObject STRUCTURAL MUST reqAssertion )
    
( 1.3.6.1.4.1.4203.666.11.5.2.8 NAME 'auditDelete'
DESC 'Delete operation' SUP auditWriteObject STRUCTURAL MAY reqOld )
    
( 1.3.6.1.4.1.4203.666.11.5.2.9 NAME 'auditModify' DESC 'Modify operation' SUP auditWriteObject STRUCTURAL MAY reqOld MUST reqMod )
    
( 1.3.6.1.4.1.4203.666.11.5.2.10 NAME 'auditModRDN' DESC 'ModRDN operation' SUP auditWriteObject STRUCTURAL MUST ( reqNewRDN $ reqDeleteOldRDN ) MAY ( reqNewSuperior $ reqOld ) )
    
( 1.3.6.1.4.1.4203.666.11.5.2.11 NAME 'auditSearch' DESC 'Search operation' SUP auditReadObject STRUCTURAL MUST ( reqScope $ reqDerefAliases $ reqAttrsOnly ) MAY ( reqFilter $ reqAttr $ reqEntries $ reqSizeLimit $ reqTimeLimit ) )
    
( 1.3.6.1.4.1.4203.666.11.5.2.12 NAME 'auditExtended' DESC 'Extended operation' SUP auditObject STRUCTURAL MAY reqData )

^
08 septembre 2013

htmlpdflatexmanmd




slapd-null

slapd-null

Backend null

   Backend conçus à des fins de test. Les recherches et les mises à jours retournent un success, les comparaison retournent compareFalse.

OPTIONS

bind Autorise les binds à ce backend.

Contrôle d'accès

   ce backend ne respecte aucune ACL
^
08 septembre 2013

htmlpdflatexmanmd




slapd-passwd

slapd-passwd

Backend passwd

   Backend /etc/passwd

OPTIONS

file ‹filename› Fichier passwd alternatif.

Contrôle d'accès

   ce backend ne respecte aucune ACL