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)
12 octobre 2013

htmlpdflatexmanmd




ldap.conf

ldap.conf, .ldaprc

Fichier de configuration LDAP

   ldap.conf est utilisé pour définir les paramètres LDAP par défaut pour les clients. les utilisateurs peuvent créer un fichier ldaprc ou .ldaprc dans leur répertoire personnel. D’autres fichiers de configuration peuvent être spécifiés en utilisant les variables d’environnement LDAPCONF et LDAPRC. Les options peuvent être également définies par des variables d’environnement en les préfixant par "LDAP" (ex: pour BASE, LDAPBASE). Certaines options sont user-only et sont ignorés s’ils sont trouvés dans ldap.conf.

Les fichiers et variables sont lus dans cet ordre:
variable $LDAPNOINIT , et si non définie:
system file /usr/local/etc/openldap/ldap.conf,
user files $HOME/ldaprc, $HOME/.ldaprc, ./ldaprc,
system file $LDAPCONF,
user files $HOME/$LDAPRC, $HOME/.$LDAPRC, ./$LDAPRC,
variables $LDAP‹uppercase option name›.

OPTIONS

URI ‹ldap[si]://[name[:port]] ...› Spécifie les URI des serveurs LDAP.
BASE ‹base› Spécifie le DN de base pour les opérations de recherche
BINDDN ‹dn› Spécifie le Bind DN à utiliser (user-only)
DEREF ‹when› Spécifie comment les alias sont déréférencés. peut être: never Jamais déréférencés searching les alias sont déréférencés en subordonnés de l’objet de base, mais pas en localisant l’objet de base de la recherche finding Les alias sont déréférencés en localisant l’objet de base de la recherche always Les alias sont toujours déréférencés.
NETWORK_TIMEOUT ‹integer› Spécifie le timeout en seconde pour les connections
REFERRALS ‹on/true/yes/off/false/no› Spécifie si le client devrait automatiquement suivre les référant retournés par le serveur. Noter que ldapsearch n’utilise pas cette option.
SIZELIMIT ‹integer› Spécifie le nombre d’entrées à utiliser pour les recherches.
TIMELIMIT ‹integer› Spécifie une limite de temps en seconde pour les recherches.
TIMEOUT ‹integer› Spécifie un timeout en secondes après lesquels les appels LDAP sont annulés si aucune réponse n’est reçue.

Options SASL

SASL_MECH ‹mechanism› Spécifie le mécanisme SASL à utiliser (user-only)
SASL_REALM ‹realm› Royaume SASL
SASL_AUTHCID ‹authcid› Spécifie l’identité d’authentification (user-only)
SASL_AUTHZID ‹authcid› Spécifie l’identité d’authorisation (user-only)
SASL_SECPROPS ‹properties› Spécfie les propriétés de sécurité SASL. peut être:

        none seul, désactive ("noanonymous,noplain")
        noplain Désactive les mécanismes sujets à attaques simple
        noactive Désactive les mécanismes suet à attaques actives.
        nodict Désactive les mécanismes sujets à attaque passive par dictionnaire
        noanonymous Désactive les mécanismes qui supportent les logins anonymes
        forwardsec Nécessite de renvoye un secret entre les sessions
        passcred Nécessite des mécanismes qui passent les accréditations client.
        minssf=‹factor› Spécifie le facteur minimum à utiliser
        maxssf=‹factor› Spécifie le facteur maximum à utiliser
        maxbufsize=‹factor› Spécifie la taille de tampon maximum. (0 désactive)

Options GSSAPI

GSSAPI_SIGN ‹on/true/yes/OFF/false/no› Spécifie si GSS_C_INTEG_FLAG devrait être utilisé
GSSAPI_ALLOW_REMOTE_PRINCIPAL ‹on/true/yes/OFF/false/no› Spécifie si l’authentification devrait tenter de former le principal de l’attribut ldapServiceName ou dnsHostName des entrées RootDSE cibles.

Options TLS

TLS_CACERT ‹filename› Spécifie le fichier contenant les certficats des autorités reconnus par le client
TLS_CACERTDIR ‹path› Spécifie le répertoire contenant les certficats des autorités reconnus par le client
TLS_CERT ‹filename› Fichier contenant le certificat du client (user-only)
TLS_KEY ‹filename› Spécifie le fichier contenant la clé privée (user-only)
TLS_CIPHER_SUITE ‹cipher-suite-spec› Spécifie les suites de chiffrement accèptables, par ordre de préférence
TLS_PROTOCOL_MIN ‹major›[.‹minor›] Spécifie la version de protocol SSL/TLS minimum. (pour TLS v1.1 mettre 3.2)
TLS_RANDFILE ‹filename› Spécifie le fichier contenant des données aléatoires quand /dev/urandom n’est pas disponible.
TLS_REQCERT ‹level› Spécifie quels vérifications effectuer sur les certificats serveur dans une session TLS:

        never Ne vérifie rien
        allow Le certification serveur est requis. S’il n’est pas fournis, ou s’il n’est pas valide, la session procède normalement
        try Le certificat serveur est requis. si le certificat n’est pas fournis, la session continue normalement. Si le certificat n’est pas valide, termine la session.
        demand|hard Le certificat serveur est obligatoire et doit être valide.
        TLS_CRLCHECK ‹level› Spécfie si la CRL doit être vérifiée : none
        Pas de vérification peer
        Vérifie la CRL du certificat du partie all
        Vérifie la CRL pour toute la chaîne de certificat

TLS_CRLFILE ‹filename› Spécifie le fichier contenant la CRL.

Variables d'environnement

LDAPNOINIT Désactive tous les paramètres par défaut
LDAPCONF Chemin du fichier de configuration
LDAPRC Fichier de configuration dans $HOME ou $CWD
LDAP‹option-name› Options comme dans ldap.conf
^
08 septembre 2013

htmlpdflatexmanmd




ldapcompare

ldapcompare

Outil de comparaison ldap

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-z Mode silencieux

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]

Exemples

ldapcompare "uid=babs,dc=example,dc=com" sn:Jensen
ldapcompare "uid=babs,dc=example,dc=com" sn ::SmVuc2Vu
^
08 septembre 2013

htmlpdflatexmanmd




ldapdelete

ldapdelete

Outil de suppression d’entrées LDAP

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-c Mode continue, les erreurs sont reportées, mais la requête continue
-f file Lit une série de DN depuis le fichier
-r Suppression récursivement
-z sizelimit Limite en recherchant le DN à supprimer

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
08 septembre 2013

htmlpdflatexmanmd




ldapexop

ldapexop

Fournis des opérations étendues LDAP par oid ou un des mot clé spécial whoami, cancel ou refresh.

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-v Augmente la verbosité
-f file Lit les opérations depuis le fichier

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
08 septembre 2013

htmlpdflatexmanmd




ldapmodify

ldapmodify, ldapadd

Ajouter/modifier des entrées dans LDAP

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-a Ajoute une nouvelle entrée. défaut pour ldapadd
-c Mode continue, les erreurs sont reportées, mais la requête continue
-f file Lit les entrées depuis le fichier
-S file Reporte les enregistrements qui ont été skippés à cause d’une erreur dans le fichier spécifié

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
08 septembre 2013

htmlpdflatexmanmd




ldapmodrdn

ldapmodrdn

Outil de renommage LDAP

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-v Augmente la verbosité
-c Mode continue, les erreurs sont reportées, mais la requête continue
-s newsup Spécifie un nouveau supérieur de l'entrée (ldapv3 uniquement)
-r Supprime les anciennes valeurs RDN de l'entrée
-f file Lis les informations de modification depuis le fichier

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]

Exemples

on assume que le fichier /tmp/entrymods existe et a le contenu :
cn=Modify Me,dc=example,dc=com
cn=The New Me
la commande :
ldapmodrdn -r -f /tmp/entrymods
va changer le RDN de l’entrée "Modify Me" depuis "Modify ME" vers "The New Me" et l’ancien cn "Modify Me" sera supprimé.
^
08 septembre 2013

htmlpdflatexmanmd




ldappasswd

ldappasswd

Change le mot de passe d’une entrée LDAP

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-v Augmente la verbosité
-A Demande l’ancien mot de passe. Évite de spécifier le mot de passe sur la ligne de commande
-a oldpasswd Spécifie l’ancien mot de passe
-t oldPasswdFile Spécifie le fichier contenant l’ancien mot de passe.
-S Demande le nouveau mot de passe. Évite de spécifier le mot de passe sur la ligne de commande
-s newpasswd Définit le nouveau mot de passe.
-T newPasswdFile Définit le fichier contenant le nouveau mot de passe.

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
08 septembre 2013

htmlpdflatexmanmd




ldapsearch

ldapsearch

Outil de recherche ldap

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-v Augmente la verbosité
-c Mode continue, les erreurs sont reportées, mais la requête continue
-u Inclus la forme User Friendly Name des DN dans la sortie
-t[t] -t écrit les valeurs non-imprimables dans un jeu de fichiers temporaires. -tt écrit toutes les valeurs retournées dans les fichiers.
-T path Ecrit les fichiers temporaires dans ce répertoire
-F prefix Préfix URL des fichiers temporaires (défaut : file ://‹path›)
-A Récupère les attributs uniquement
-L Affiche le résultat au format LDIF. -L utilise le format LDIFv1, -LL désactive les commentaires, -LLL n’affiche pas la version LDIF.
-S attribute Trie les entrées retournée basé sur l’attribut spécifié.
-b searchbase Point de départ pour la recherche
-s base|one|sub|children Scope de recherche
-a never|always|search|find Spécifie le mode de déréférencement des alias.
-l timelimit temps d’attente max en seconde pour qu’une recherche se complète
-z sizelimit Nombre d’entrées max pour qu’une recherche se complète.
-f file Pour chaque ligne dans le fichier, effectue une recherche. Dans ce cas, le filtre spécifié sur la ligne de commande est traité comme pattern où la première occurence de %s est remplacée par la ligne.

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
08 septembre 2013

htmlpdflatexmanmd




ldapurl

ldapurl

Outil de formatage d’URL LDAP

OPTIONS

-a attrs Liste de sélecteur d’attributs
-b searchbase Point de départ pour la recherche
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-H ldapuri URI du serveur LDAP
-S scheme Schema d’URL
-s base|one|sub|children Scope de recherche

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]

Exemples

ldapurl -h ldap.example.com -b dc=example,dc=com -s sub -f "(cn=Some One)"
retourne:
ldap ://ldap.example.com:389/dc=example,dc=com ??sub ?(cn=Some%20One)
ldapurl -H ldap ://ldap.example.com:389/dc=example,dc=com ??sub ?(cn=Some%20One)
retourne :
scheme : ldap
host : ldap.example.com
port : 389
dn : dc=example,dc=com
scope : sub
filter : (cn=Some One)
^
08 septembre 2013

htmlpdflatexmanmd




ldapwhoami

ldapwhoami

Outil pour l'opération WhoAmI

OPTIONS

-V[V] Affiche les informations de version
-d debuglevel Niveau de debug
-n  simule la requête, mais ne l’exécute pas
-M[M] Permet de gérer le DSA IT control. -MM rend le contrôle critique.
-x Authentification simple
-D binddn DN pour l’authentification simple
-W Demande le mot de passe pour l’authentification simple
-w passwd Définis le mot de passe pour l’authentification simple
-y passwdfile Utilise le contenu du fichier comme mot de passe pour l’authentification simple
-H ldapuri URI du serveur LDAP
-P 2|3 Version du protocole à utiliser
-e [!]ext[=extparam] Spécifie les extensions générales. ! indique la criticité
-E [!]ext[=extparam] Spécifie les extensions de recherche. ! indique la criticité
-o opt[=optparam] Spécifie les options générales (nettimeout=‹timeout› en secondes ou "none" ou "max", ldif-wrap=‹width› en colonnes, ou "no")
-O security-properties Spécifie les propriétés SASL
-I Mode interactif SASL.
-Q SASL en mode silencieux, ne demande jamais
-N N’utilise pas le reverse DNS pour canoniser les hôtes SASL
-U authcid Spécifie l’authentification ID pour le bind SASL.
-R realm Spécifie le realm SASL
-X authzid Spécifie l’authorization ID demandé pour le bind SASL
-Y mech Spécifie le mécanisme SASL à utiliser
-Z[Z] Fournis l’opération étendue StartTLS. -ZZ, l’opération doit être un succès

-v Augmente la verbosité

Extensions Générales

[!]assert=‹filter› un filtre RFC 4515
!authzid=‹authzid› "dn :‹dn›" ou "u :‹user›"
[!]bauthzid Contrôle authzid RFC 3829 authzid
[!]chaining[=‹resolve›[/‹cont›]]
[!]manageDSAit
[!]noop
ppolicy
[!]postread[=‹attrs›] (a comma-separated attribute list)
[!]preread[=‹attrs›] (a comma-separated attribute list)
[!]relax
sessiontracking
abandon, cancel, ignore SIGINT envoie une réponse abandon/cancel,ou ignore; Si critique, n’attend pas SIGINT.

Extensions de recherche

!dontUseCopy
[!]domainScope scope du domaine
[!]mv=‹filter› Filtre des valeurs de match
[!]pr=‹size›[/prompt|noprompt] paged results
[!]sss=[-]‹attr[:OID]›[/[-]‹attr[:OID]›...] Tri coté serveur
[!]subentries[=true|false] subentries
[!]sync=ro[/‹cookie›] LDAP Sync refreshOnly
rp[/‹cookie›][/‹slimit›] LDAP Sync refreshAndPersist
[!]vlv=‹before›/‹after›(/‹offset›/‹count›| :‹value›) virtual list view
[!]deref=derefAttr:attr[,attr[...]][ ;derefAttr:attr[,attr[...]]]
[!]‹oid›[=‹value›]
^
26 septembre 2013

htmlpdflatexmanmd




OpenLDAP - Limites

OpenLDAP - Limites

configuration des limites de slapd

   Il est généralement préférable de limiter les ressources du serveur pour qu'il soit accessible à tous les clients. OpenLDAP fournit 2 type de limites : un limite de taille, qui peut être restreinte par le nombre d'entrées qu'un client peut récupérer en une seule opération, et une limite de temps, qui restreint le temps qu'une opération peut se poursuivre.

Limites Soft et Hard

   L'administrateur du serveur peut limiter les limites hard et soft. Les limites soft sont les valeurs de limite par défaut, les limites hard sont les limites qui ne peuvent pas être dépassée par les utilisateurs LDAP.

  Les clients LDAP peuvent spécifier leur propre limites de taille et de temps pour les opérations de recherche.

  Si le client spécifie une limite alors la plus faible des valeurs entre celle-ci et la hard limit sera choisie. Si le client ne spécifie pas de limite, la soft limit s'applique.

Le rootdn n'est pas sujet à ces limites.
sizelimit {‹integer›|unlimited} # défaut 500
timelimit {‹integer›|unlimited} # défaut 3600
Une forme étendue permet aux limites soft et hard d'être séparés.
sizelimit size[.{soft|hard|unchecked}]=‹integer› [...]
timelimit time.{soft=‹integer›} [...]
exemple
sizelimit size.soft=10 size.hard=75

   Le mot clé unchecked spécifie une limite du nombre d'entrées que le serveur va examiner une fois qu'il a crée un lot de résultats candidat en utilisant les indices. Ça peut être très important dans les gros annuaires, quand une recherche qui ne peut pas être satisfaite depuis un index peut nécessiter d'examiner des millions d'entrées.

Limites par base

   Chaque base de donnée peut avoir ses propres limites. La syntaxe est plus flexible, et permet différentes limites à appliquer à différentes entités. le terme entité est utilisé pour indiquer l'ID de la personne ou du processus qui a initié l'opération LDAP. Dans slapd.conf le mot clé est limits. En utilisant le backend slapd config, l'attribut correspondant est olcLimits. La syntaxe est la même dans les 2 cas.

limits ‹who› ‹limit› [‹limit› [ ... ]]

   la clause limits peut être spécifiée plusieurs fois. Le serveur examine chaque clause jusqu'à ce qu'il en trouve une qui corresponde à l'ID qui a requis l'opération. Si aucune correspondante n'est trouvée, les limites globales sont utilisées.

Spécifier à qui s'applique les limites

La partie ‹who› peut prendre les valeurs suivante:
*____________________________All, including anonymous and authenticated users
anonymous____________________Anonymous (non-authenticated) users
users________________________Authenticated users
self_________________________User associated with target entry
dn[.‹basic-style›]=‹regex›___Users matching a regular expression
dn.‹scope-style›=‹DN›________Users within scope of a DN
group[/oc[/at]]=‹pattern›____Members of a group

Spécifier des limites de temps

time.soft=‹integer›
où integer est la durée en seconde.
si soft ou hard ne sont pas spécifiés, la valeur est utilisée pour les 2:
limits anonymous time=27
la valeur unlimited peut être utilisé pour supprimer la limite de temps hard :
limits dn.exact="cn=anyuser,dc=example,dc=org" time.hard=unlimited
spécifier des tailles limites.
size[.soft|hard|unchecked]=integer›
où integer est le nombre d'entrée maximum que slapd va retourner.

Limites de taille et résultats paginés

   Si le client LDAP ajoute le pagedResultsControl pour les opérations de recherche, la limite de taille hard est utilisée par défaut, parce que la requête pour une taille de page spécifique est considérée comme une requête explicite pour une limitation sur un nombre d'entrée à retourner. Cependant, la taille limite s'applique au compteur total des entrées retournées dans la recherche, et pas dans une simple page.

size.pr={‹integer›|noEstimate|unlimited}

integer est la taille de page maximum si aucune taille implicite n'est donnée. noEstimate n'a pas d'effet dans l'implémentation courante vu que le serveur ne retourne pas une estimations de taille de résultat. unlimited indique qu'aucune limite n'est appliquée à la taille de page maximum.
size.prtotal contrôle le nombre total d'entrées qui peuvent être retournés par une recherche paginée. Par défaut la limite est la même que la limite size.hard.
size.prtotal={‹integer›|unlimited|disabled}
unlimited supprime la limite sur le nombre d'entrée qui peuvent être retournés par une recherche paginée. disabled peut être utilisé pour désactiver sélectivement les recherche de résultat paginés.

Exemples

cet exemple applique des limites de temps et de taille pour toutes les recherche par les utilisateurs, excepté rootdn.
sizelimit 50
timelimit 10
Limites hard et soft global: Il est parfois utile de limiter la taille des résultats mais de permettre aux clients de demander une limite plus élevée si nécessaire. Cela peut être fait en définissant des limites soft et hard séparés:
sizelimit size.soft=5 size.hard=100
Pour se prémunir des clients qui font des recherches non-indexées inefficaces, ajouter la limite unchecked:
sizelimit size.soft=5 size.hard=100 size.unchecked=100
Donner des limites plus grandes pour des utilisateurs spécifiques.
limits dn.exact="cn=anyuser,dc=example,dc=org" size=100000
limits dn.exact="cn=personnel,dc=example,dc=org" size=100000
limits dn.exact="cn=dirsync,dc=example,dc=org" size=100000
Il est généralement mieux d'éviter de mentionner des utilisateurs spécifiques dans la configuration serveur. Une meilleur manière est de donner des limites supérieurs à un groupe:
limits group/groupOfNames/member="cn=bigwigs,dc=example,dc=org" size=100000
Limiter qui peut faire des recherche paginées
limits group/groupOfNames/member="cn=dirsync,dc=example,dc=org" size.prtotal=unlimited
limits users size.soft=5 size.hard=100 size.prtotal=disabled
limits anonymous size.soft=2 size.hard=5 size.prtotal=disabled
^
19 octobre 2013

htmlpdflatexmanmd




OpenLDAP - Sécurité

OpenLDAP - Sécurité

Considérations de sécurité

Écoute sélective: Par défaut, slapd écoute sur toutes les adresses IPv4 et IPv6. Pour spécifier les ip sur lesquelles slapd écoute: slapd -h ldap://127.0.0.1
Firewall IP: Les capacités de firewalling IP du système peuvent être utilisées pour restreindre l'accès. Généralement, slapd écoute sur le port 389/tcp pour ldap:// et le port 636/tcp pour ldaps://. slapd peut être configuré pour écouter sur d'autres ports.
TCP Wrappers: TCP wrappers fournis un système de contrôle d'accès basé sur des règles pour contrôler les accès TCP/IP sur le serveur. Par exemple: slapd: 10.0.0.0/255.0.0.0 127.0.0.1: ALLOW, slapd ALL: DENY
Protection de confidentialité et d'intégrité de données: TLS peut être utilisé pour fournir une protection de confidentialité et d'intégrité de données. OpenLDAP supporte la négociation de TLS (SSL) via StartTLS et ldaps://. Des mécanismes SASL (Simple Authentication and Security Layer) comme DIGEST-MD5 et GSSAPI sont également disponible.
Facteurs de sécurité forte: Le serveur utilise SSF pour indiquer la force du mécanisme. Un SSF de 0 spécifie aucune protection, à 1 des protections d'intégrité sont en place. un SSF › 1 indiquent la longueur de clé de cryptage. par exemple: DES fait 56, 3DES fait 112, AES fait 128, 192 ou 256.

        'security' contrôle les opérations de restriction quand les protections appropriées ne sont pas en place. Exemple:
        security ssf=1 update_ssf=112
        requière une protection d'intégrité pour toutes les opérations et une protection 3DES ou équivalent, pour les opérations de mise à jour (add, delete, modify, etc.)

Méthodes d'authentification

   La méthode simple a 3 modes d'opération: anonyme, non-authentifié, authentifié par user/password.

  L'accès anonyme est requis en ne fournissant pas de nom et de mot de passe pour une simple opération. l'accès non authentifié est requis en fournissant un nom, mais pas de mot de passe. L'accès authentifié requière un nom valide et un mot de passe.

  le mécanisme anonyme est activé par défaut, il peut être désactivé par "disallow bind_anon".

  note: désactiver le mécanisme anonyme n'empêche pas les accès anonymes à l'annuaire. Pour exiger une authentification pour accéder à l'annuaire, utiliser "require authc"

   L'accès non-authentifié est désactivé par défaut et peut être activé par "allow bind_anon_cred"

  L'accès authentifié est activé par défaut. Cependant les mots de passe sont stockés en clair, il est recommandé de l'utiliser uniquement avec des session chiffrées. Il est recommandé que toutes les authentifications non protégées soient désactivées en utilisant par ex: security simple_bind=56 qui exige les simple_bind d'utiliser le cryptage DES ou meilleur.

  Le mécanisme d'authentification user/password peut être complètement désactivé en utilisant "disallow bind_simple".

Stockage des mots de passe

   Les mots de passe LDAP sont normalement stockés dans l'attribut userPassword. la RFC4519 spécifie que les mots de passe ne sont pas stockés sous forme chiffrée. Cela permet d'utiliser une grande quantité de mécanismes basés sur les mots de passe, comme DIGEST-MD5.

  Cependant, il peut être préférable de stocker un hash des mots de passe. slapd supporte plusieurs schémas de stockage.

  L'attribut userPassword peut avoir une ou plusieurs valeurs, et il est possible pour chaque valeur d'être stockées sous une forme différente. durant l'authentification, slapd va chercher un des mots de passe qui correspondrai. Le schéma de stockage est stocké comme préfixe dans la valeur, donc un hash utilisant SHA1 ressemblera à:

  userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3

Schéma de stockage de mot de passe SSHA

ces valeurs sont représentée sous la forme:
userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3
schéma de stockage de mot de passe CRYPT
Ce schéma utilise la fonction système crypt(3). Il produit le hash traditionnel à 13 caractères, mais peut également générer le hash MD5 34 octets de glibc2.
userPassword: {CRYPT}aUihad99hmev6
userPassword: {CRYPT}$1$czBJdDqS$TmkzUAb836oMxg/BmIwN.1

Schéma de stockage de mot de passe MD5

Ce schéma prend simplement le hash md5 et le stocke sous la forme base64:
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
schéma de stokage de mot de passe SMD5
Il améliore le schéma MD5
userPassword: {SMD5}4QWGWZpj9GCmfuqEvm8HtZhZS6E=
schéma de stockage de mot de passe SHA
SHA est plus sécurisé que MD5
userPassword: {SHA}5en6G6MezRroT3XKqkdPOmY/BfQ=

Schéma de stockage de mot de passe SASL

   Ce n’est pas vraiment un schéma de stockage de mot de passe. Il utilise l’attribut userPassword pour déléguer la vérification à un autre processus.

Schéma de stockage de mot de passe Kerberos

   Ce n’est pas un schéma de stockage de mot de passe, il utilise la valeur de l’attribut de userPassword pour déléguer la vérification à Kerberos

Authentification Externe

   Depuis OpenLDAP 2.0 slapd a la capacité de déléguer la vérification de mot de passe à un processus séparé. Il utilise la fonction sasl_checkpass(3). Le choix est très large, comme l’option d’utiliser saslauth(8) qui utiliser les fichiers local, kerberos, un serveur IMAP, un autre serveur LDAP ou tout ce qui peut supporter le mécanisme PAM.

  L’authentification externe fonctionne seulement avec les mots de passe en clair. ce système est sélectif, il utilise uniquement les utilisateurs dont l’attribut userPassword est marqué avec "SASL".

exemple:
userPassword: {SASL}username@realm

Configurer slapd pour l'utilisation d'un fournisseur d'authentification

   Quand une entrée a une valeur de mot de passe "{SASL}", OpenLDAP délègue tout le processus de validation à cyrus SASL. Tout la configuration est faite dans les fichiers de configuration de SASL.

  Un fichier nommé /usr/lib/sasl2/slapd.conf gouverne l’utilisation de SASL quand il communique avec slapd.

Simple exemple pour un serveur qui utilise saslauth pour vérifier les mots de passe:
mech_list: plain
pwcheck_method: saslauthd
saslauthd_path: /var/run/sasl2/mux

Configurer saslauth

saslauthd est capable d’utiliser différents services d’authentification, vois saslauthd(8). Exemple de saslauthd.conf qui utilise M$ Active Directory:
ldap_servers: ldap://dc1.example.com/ ldap://dc2.example.com/
ldap_search_base: cn=Users,DC=ad,DC=example,DC=com
ldap_filter: (userPrincipalName=%u)
ldap_bind_dn: cn=saslauthd,cn=Users,DC=ad,DC=example,DC=com
ldap_password: secret
dans ce cas, saslauthd est lancé avec le mécanisme d’authentification ldap et est définis pour combiner SASL avec le login:
saslauthd -a ldap -r
^
08 septembre 2013

htmlpdflatexmanmd




slapacl

slapacl

Vérifie l’accès à une liste d’attributs en vérifiant dans la configuration de slapd

OPTIONS

-b DN Spécifie le DN dont l’accès est demandé.
-d debug_level Active le débug
-D authcDN Spécifie un DN à utiliser comme identité pour le test
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-o option[=value] Spécifie une option slapd ( syslog=‹subsystems›, syslog-level=‹level›, syslog-user=‹user›, et authzDN,domain,peername,sasl_ssf,sockname,sockurl,ssf,tls_ssf,transport_ssf)
-u Ne pas chercher l’entrée dans la base de données
-U authcID Spécifie un ID à mapper au DN comme par authz-regexp ou authz-rewrite.
-v mode verbeux
-X authzID Spécifie un ID d’autorisation à mapper au DN comme avec authz-regexp ou authz-rewrite.

Exemples

Test si bjorn peut accéder à l’attribut ’o’ de l’entrée o=University of Michigan,c=US en lecture
/usr/local/sbin/slapacl -f /usr/local/etc/openldap/slapd.conf -v -U bjorn -b "o=University of Michigan,c=US" "o/read:University of Michigan"
^
08 septembre 2013

htmlpdflatexmanmd




slapadd

slapadd

Ajouter des entrées dans une base slapd. toutes les entrées ajoutées appartiennent à l’identité sous laquelle slapadd fonctionne, il est donc nécessaire de l’exécuter sous la même identité que slapd

OPTIONS

-b suffix Utilise le suffix spécifié pour déterminer quelle base utiliser
-c Ignore les erreurs et continue
-d debug_level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-g Désactive le gluing subordonné. Seul la base spécifiée sera traitée et non ses subordonnées attachés
-j lineno Saute à la ligne spécifiée dans le fichier LDIF avant de traiter les entrées.
-l ldif-file Fichier d’entrée
dbnum Ajoute des entrées dans la dbnum-ième base listée dans la configuration. Ne peut pas être utilisé avec -b
-o option[=value] Spécifie une option slapd
-q mode rapide (peut de vérifications)
-s Désactive la vérification du schéma
-S SID ID du serveur à utiliser en générant entryCSN. également pour contextCSN si -w.
-u dry-run n’écrit pas dans le backend
-v mode verbeux
-w Écrit les information de contexte syncrepl. après que les entrées soient ajoutées, met à jour le contextCSN

limitations

   slapd ne devrait pas être en cours de fonctionnement, ou au moins en lecture seule.
^
08 septembre 2013

htmlpdflatexmanmd




slapauth

slapauth

Vérifie une liste d’ID pour authc/authz

OPTIONS

-d debug-level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-M mech Spécifier un mécanisme
-o option[=value] Spécifie une option slapd ( syslog=‹subsystems›, syslog-level=‹level›, syslog-user=‹user›)
-R realm Spécifier un royaume
-U authcID Spécifier un ID à utiliser
-X authzID Spécifie un ID à utiliser
-v mode verbeux

Exemples

Test si l’utilisateur bjorn peut assumer l’identité de bjesen tel que définis par les directives
authz-policy from authz-regexp "^uid=([^,]+).*,cn=auth$" "ldap :///dc=example,dc=net ??sub ?uid=$1"
/usr/local/sbin/slapauth -f //usr/local/etc/openldap/slapd.conf -v -U bjorn -X u:bjensen
^
08 septembre 2013

htmlpdflatexmanmd




slapcat

slapcat

Utilitaire de génération de fichier LDIF

OPTIONS

-a filter Dump seulement les entrées correspondant au filtre
-b suffix Utilise le suffix spécifié pour déterminer quelle base utiliser
-c Ignore les erreurs et continue
-d debug_level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-g Désactive le gluing subordonné. Seul la base spécifiée sera traitée et non ses subordonnées attachés
-H URI
-l ldif-file Écrit la sortie dans le fichier spécifié
dbnum Ajoute des entrées dans la dbnum-ième base listée dans la configuration. Ne peut pas être utilisé avec -b
-o option[=value] Spécifie une option slapd
-s subtree-dn Dump seulement les entrées dans la sous-arborescence spécifiée par ce DN

limitations

   slapd ne devrait pas être en cours de fonctionnement, ou au moins en lecture seule.
^
08 septembre 2013

htmlpdflatexmanmd




slapd

slapd

Serveur LDAP

OPTIONS

-4 IPv4 uniquement
-6 IPv6 uniquement
-T tool Mode tool. tool sélectionne s’il tourne en tant que : slapadd, slapcat, slapdn, slapindex, slappasswd, slapschema,slaptest. ces programmes sont généralement des liens symbolique vers slapd.
-d debug-level Active le débug
-s syslog-level niveau de debug à logger
service-name Nom du service (défaut : slapd)
-l syslog-local-user syslog facility (LOCAL0 à LOCAL7, USER, DAEMON)
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-h URLlist liste d’url d’écoute du serveur (défaut : ldap :///)
-r directory Répertoire où slapd va se chrooter
-u user Utilisateur du service
-g group Groupe du service
-c cookie Fournis un cookie pour la réplication syncrepl sous la forme d’une liste de nom=valeur (rid, sid, csn)
-o option[=value] Spécifie une option slapd (slp=on|off|slp-attrs gère le SLP. (ex : "slp=(tree=production),(server-type=OpenLDAP),(server-version=2.4.15)"
^
22 septembre 2013

htmlpdflatexmanmd




slapd-access

slapd-access

Configuration d'accès pour slapd

Structure

   access to ‹what› [ by ‹who› [ ‹access› ] [ ‹control› ] ]+

   Donne accès à un jeu d'entrées et/ou attributs (what) par des demandeurs (who). Les ACL sont évaluées dans l'ordre auxquelles elles apparaissent. lors qu'un what match, who est vérifié. puis les clauses access et control sont évaluées

Le champ WHAT

Spécifie l'entité à laquelle cette ACL s'applique. Il peut avoir les formes suivante:
dn[.‹dnstyle›]=‹dnpattern›
filter=‹ldapfilter›
attrs=‹attrlist›[ val[/matchingRule][.‹attrstyle›]=‹attrval›]

avec:
‹dnstyle›={{exact|base(object)}|regex|one(level)|sub(tree)|children}
‹attrlist›={‹attr›|[{!|@}]‹objectClass›}[,‹attrlist›]
‹attrstyle›={{exact|base(object)}|regex|one(level)|sub(tree)|children}

dn=‹dnpattern› Sélectionne les entrées basées sur leur contexte de nommage
‹dnstyle› (optionnel). Base (synonymes de baseObject) ou exact (alias de base) indique l'entrée dont le DN est égal à ‹dnpattern›. one (synonyme de onelevel) indique toutes les entrées immédiatement sous le ‹dnpattern›, sub (synonyme de subtree) indique toutes les entrées dans la sous-arborescence de ‹dnpattern›, children indique toutes les entrées subordonnées à ‹dnpattern› Si dnstyle est un regex, ‹dnpattern› est une expression étendue POSIX et match une représentation du DN.
filter=‹ldapfilter› Sélectionne les entrées basée sur un filtre LDAP
attrs=‹attrlist› sélectionne les attributs auxquels la règle s'applique. Le signe + indique l'accès à l'entrée elle-même. children indique l'accès à l'entrée de l'enfant. Les classes d'objet peuvent être spécifiés également. Les noms préfixés par '@' sont directement traités comme nom de classe d'objet. un nom préfixé par '!' et traité comme classe d'objet mais la règle affecte les attributs non requis ni permis. sans cette liste, assume attrs=@extensibleObject
attrs=‹attrlist›[ val[/matchingRule][.‹attrstyle›]=‹attrval›] Cette forme spécifie un accès à une valeur particulière d'un simple attribut. seul l'attribut est donnée.
dn, filter, attrs sont additifs. les sous-match résultant de regex peuvent être dé-référencés dans ‹who› avec la syntaxe ${v_n_} où _n_ est le numéro de sous-match.

Le champ WHO

Indique à qui la règle s'applique. Plusieurs who peuvent apparaîtrent dans l'acl. Il a la forme:
*    
anonymous
users
self[.‹selfstyle›]
    
dn[.‹dnstyle›[,‹modifier›]]=‹DN›
dnattr=‹attrname›
    
realanonymous
realusers
realself[.‹selfstyle›]
    
realdn[.‹dnstyle›[,‹modifier›]]=‹DN›
realdnattr=‹attrname›
    
group[/‹objectclass›[/‹attrname›]][.‹groupstyle›]=‹group›
peername[.‹peernamestyle›]=‹peername›
sockname[.‹style›]=‹sockname›
domain[.‹domainstyle›[,‹modifier›]]=‹domain›
sockurl[.‹style›]=‹sockurl›
set[.‹setstyle›]=‹pattern›
    
ssf=‹n›
transport_ssf=‹n›
tls_ssf=‹n›
sasl_ssf=‹n›
    
dynacl/‹name›[/‹options›][.‹dynstyle›][=‹pattern›]

avec:
‹style›={exact|regex|expand}
‹selfstyle›={level{‹n›}}
‹dnstyle›={{exact|base(object)}|regex|one(level)|sub(tree)|children|level{‹n›}}
‹groupstyle›={exact|expand}
‹peernamestyle›={‹style›|ip|ipv6|path}
‹domainstyle›={exact|regex|sub(tree)}
‹setstyle›={exact|expand}
‹modifier›={expand}
‹name›=aci ‹pattern›=‹attrname›]

Indique tout le monde
realanonymous Les mots clé préfixés par real agissent comme leur homologue non préfixés. La vérification se produit avec le DN authentification et le DN authorisation
anonymous référence les clients non authentifiés
users Références les clients authentifiés
self Référence l'entrée elle-même (l'entrée demandée et l'entrée qui requête doit correspondre). Accepte le style level{‹n›}, où _n_ indique que l'ancêtre du DN est utilisé dans le match. Une valeur positive indique que le ‹n›-ième ancêtre du DN de l'utilisateur est considéré; une valeur négative indique que le ‹n›-ième ancêtre de la cible doit être considéré. (ex: "by self.level{1} ..." matche quand l'objet "dc=example,dc=com" est accédé par cn=User,dc=example,dc=com") (ex: "by self.level{-1} ..." matche quand le même user accède à "ou=Address Book,cn=User,dc=example,dc=com"
dn=‹DN› L'accès est donnée au DN qui matche.
dnstyle (optionnel) autorise le même choix que pour WHAT. le style regex exploit la substitution de sous-match dans le dn.regex de WHAT en utilisant la forme $‹digit›, de 0 à 9 où 0 match toute la chaîne. ${‹digit›+} pour les sous-matches › 9, ${v‹digit›+} pour la substitution de chaîne de valeur d'attributs. le $ de fin de chaîne doit être spécifié par '$$'

access to dn.regex="^(.+,)?uid=([^,]+),dc=[^,]+,dc=com$" by dn.regex="^uid=$2,dc=[^,]+,dc=com$$" write
access to dn.regex="^(.+,)?uid=([^,]+),dc=example,dc=com$" by dn.exact,expand="uid=$2,dc=example,dc=com" write
access to dn.regex="^(.+,)?uid=([^,]+),dc=([^,]+),dc=com$" by dn.exact,expand="uid=$2,dc=$3,dc=com" write

level{n} est une extension de la forme onelevel, où l'ancêtre n est le pattern. Donc level{1} est équivalent à onelevel et level{0} vaut base
dnattr=‹attrname› L'accès est donné aux requêtes dont le DN est listé dans l'entrée accédée sous l'attribut ‹attrname›
group=‹group› L'accès est donné aux requêtes dont le DN est listé dans l'entrée group dont le DN est donné par ‹group› ‹objectclass› et ‹attrname› donnent la classe objet et l'attribut des membres.(défaut: groupOfNames et member). ‹style› peut être expand qui signifie que ‹group› sera étendu comme remplacement (mais non comme expression régulière), et exact, qui signifie que le match exacte sera utilisé. Pour des groupes statiques, le type d'attribut spécifié doit avoir la syntaxe DN ou NameAndOptionalUID. pour les groupes dynamiques, le type d'attribut doit être un sous-type de labeledURI
peername=‹peername› L'IP de l'hôte contactant (sous la forme IP=‹ip›:‹port› ou IP=[‹ipv6›]:‹port›) ou le nom de l'hôte contactant (PATH=‹path›)
sockname=‹sockname› Le nom du fichier de pipe nommé
domain=‹domain› Le nom d'hôte du contactant
sockurl=‹sockurl› l'URL du contactant, sont comparés avec le pattern pour déterminer l'accès. Le style décrit pour group et regex s'appliquent. Le cas spécial pour ip: ‹peername›=‹ip›[%‹mask›][{‹n›}] où n est le nom du port optionnel (ex: peername.ip=192.168.1.16%255.255.255.240{9009}). (ex: domain.subtree=example.com match www.example.com)
set=‹pattern›
dynacl/‹name›[/‹options›][.‹dynstyle›][=‹pattern›] Indique que la vérification de l'accès est déléguée à une méthode définies indiquée par ‹name›, qui peut être enregistrée en temps réel au moyen de déclarations moduleload. ‹options›, ‹dynstyle› et ‹pattern› sont optionnels et sont passés directement à la routine de parsing enregistrée
dynacl/aci[=‹attrname›] Signifie que le contrôle d'accès est déterminé par les valeurs dans attrnames de l'entrée elle-même. ‹attrname› indique quel type d'attribut maintient l'ACI dans l'entrée. Par défaut, OpenLDAPaci est utilisé
ssf=‹n›
transport_ssf=‹n›
tls_ssf=‹n›
sasl_ssf=‹n› Définissent le SSF minimum pour obtenir l'accès

Le champ ACCESS

Optionnel. Détermine le niveau d'accès ou le privilège que who aura. Il a la forme:
‹access› ::= [[real]self]{‹level›|‹priv›}
où:
‹level› ::= none|disclose|auth|compare|search|read|{write|add|delete}|manage
‹priv› ::= {=|+|-}{0|d|x|c|s|r|{w|a|z}|m}+

self Permet des opération spéciales pour le DN autorisé
realself Réfère au DN authentifié
level ce modèle d'accès s'assure d'une interprétation incrémentale des privilèges. Les niveaux possibles sont none (aucun accès, disclose ( divulgation d'information en cas d'erreur), auth (permettre l'authentification), compare, search, read, write (add+delete) et manage (inclus des accès administratifs).
priv le modèle d'accès priv se base sur des paramètres explicites de privilèges pour chaque clause. = réinitialise les accès définis précédemment, + et - ajoute/supprime des privilèges. m (manage), w (write), a (add), z (delete), r (read), s (search), c (compare), x (authentification), d (disclose), 0 ( aucun privilège) (défaut: +0)

Le champ Control

   Optionnel. Contrôle le flux de règles d'accès. Peut être:

stop Stop en cas de match
continue Permet à d'autres clause ‹who› dans le même ‹access› d'être considérés
break Permet à d'autres clauses ‹access› qui matchent la même cible d'être traités

exemple break:
access to dn.subtree="dc=example,dc=com" attrs=cn by * =cs break
access to dn.subtree="ou=People,dc=example,dc=com" by * +r
exemple continue:
access to dn.subtree="dc=example,dc=com" attrs=cn by * =cs continue by users +r

Scopes

base correspond seulement à l'entrée avec le DN fournit
one correspond aux entrées dont le parent est le DN fournit
subtree correspond à toutes les entrées dans l'arbre dont le root est le DN fournit
children correspond à toutes les entrées sous le DN (mais pas l'entrée nommée par le DN)

Par exemple, si l'annuaire contient les entrées nommées :
o=suffix
cn=Manager,o=suffix
ou=people,o=suffix
uid=kdz,ou=people,o=suffix
cn=addresses,uid=kdz,ou=people,o=suffix
uid=hyc,ou=people,o=suffix

alors:
dn.base="ou=people,o=suffix" match 2 ;
dn.one="ou=people,o=suffix match 3, and 5 ;
dn.subtree="ou=people,o=suffix match 2, 3, 4, and 5 ; and
dn.children="ou=people,o=suffix match 3, 4, and 5.

cibles


*__________________________All, including anonymous and authenticated users
anonymous__________________Anonymous (non-authenticated) users
users______________________Authenticated users
self_______________________User associated with target entry
dn[.‹basic-style›]=‹regex›_Users matching a regular expression
dn.‹scope-style›=‹DN›______Users within scope of a DN

Correspondance des droits

Level_____Privileges______Description
none______0_______________no access
disclose__d_______________needed for information disclosure on error
auth______dx______________needed to authenticate (bind)
compare___cdx_____________needed to compare
search____scdx____________needed to apply search filters
read______rscdx___________needed to read search results
write_____wrscdx__________needed to modify/rename
manage____mwrscdx_________needed to manage

Opérations requises

   Les opérations nécessitent différents privilèges sur différentes portions d'entrées.

add nécessite le privilège add sur le pseudo-attribut de l'entrée à ajouter, et add sur le pseudo-attribut children du parent de l'entrée.
bind quand les accréditifs sont stockés dans l'annuaire, nécessite les privilèges auth sur l'attribut où sont stockés ces accréditifs.
Compare nécessite compare sur l'attribut à comparer
delete nécessite delete sur le pseudo-attribut de l'entrée à supprimer et sur le pseudo-attribut children du parent de l'entrée
modify nécessite write (add pour ajouter, delete pour supprimer, les 2 pour modifier)
modrdn nécessite write sur le pseudo-attribut de l'entrée à supprimer, delete sur le pseudo-attribut Children de l'ancien parent de l'entrée, et add sur le pseudo-attribut Children du nouveau parent de l'entrée. delete est aussi requis sur les attributs qui sont présent dans l'ancien RDN si deleteoldrdn et à 1.
search nécessite search sur le pseudo-attribut entry du searchBase. Les entrées résultantes sont ensuite testé sur read sur le pseudo-attribut entry et sur chaque valeurs de chaque attribut demandé pour chaque referral utilisé pour générer des références continues, read sur le pseudo-attribut entry et les attributs du referral.
authzID, proxyAuthz necessitent auth sur tous les attributs présents dans la recherche et sur authzTo et/ou authzFrom de l'identité autorisant.

Exemples

Pour matcher la sous-arborescence désirée, la règle serait:
access to dn.regex="^(.+,)?dc=example,dc=com$" by ...
Pour des raisons de performance, il est mieux d'écrire:
access to dn.subtree="dc=example,dc=com" by ...
En écrivant des règles submatch, il peut être préférable d'éviter l'utilisation de ‹dnstyle›:
access to dn.regex="^(.+,)?uid=([^,]+),dc=example,dc=com$"
by dn.regex="^uid=$2,dc=example,dc=com$$" write
by ...
Cependant, c'est plus efficace:
access to dn.regex="^(.+,)?uid=([^,]+),dc=example,dc=com$"
by dn.exact,expand="uid=$2,dc=example,dc=com" write
by ...
^
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.
^
22 septembre 2013

htmlpdflatexmanmd




slapd-config

slapd-config

Backend de configuration de slapd

Options de configuration globale

   Ces options sont spécifiées dans l'entrée cn=config. Elle doit avoir un objectClass olcGlobal.

cn =config
olcAllows Spécifie un jeu de fonctionnalités à autoriser. bind_anon_cred permet un bind anonyme quand les crédentials ne sont pas vide, bind_anon_dn permet un bind non-authentifié quand le DN n'est pas vide et proxy_authz_anon permet un contrôle d'autorisation proxy non-authentifié
olcArgsFile Chemin d'un fichier qui maintient la ligne de commande du serveur slapd
olcAttributeOptions Définis le tagging d'options d'attributs ou des préfixes tag/range. un préfixe se termine par '-'.
olcAuthIDRewrite Utilisé par le framework d'authentification pour convertir un simple nom en DN utilisé pour l'autorisation. Son but est analogue à olcAuthzRegexp. Ce jeu de règle est analogue à ceux décrit dans slapo-rwm
olcAuthzPolicy Spécifie quelles règles utiliser pour l'autorisation proxy. none désactive, from utilise les règles dans authzFrom, to utilise celles dans authzTo, any, et all (toutes les autorisations doivent réussir)
olcAuthzRegexp Utilisé par le framework d'authentification pour convertir un simple nom en DN utilisé pour l'autorisation.
olcConcurrency Spécifie un niveau de concurrence.
olcConnMaxPending Nombre maximum de requêtes en attente pour une session anonyme
olcConnMaxPendingAuth Spécifie le nombre maximum de requêtes en attente pour une session authentifiée.
olcDisallows Spécifie un jeu de fonctionnalités à désactiver. bind_anon n'accèpte plus les requêtes bind anonymes. bind_simple désactive le simple bind. tls_2_anon désactive les sessions forcées en status anonyme une fois l'opération StartTLS reçue. tls_authc désactive es opérations StartTLS si authentifié.
olcGentleHUP a TRUE, SIGHUP ne fait qu'une tentative d'arrêt. slapd n'accèpte plus les nouvelle connexions, mais attend que les connexions en cours se terminent.
olcIdleTimeout Nombre de secondes avant de fermer une session client non active. ( 0 désactive)
olcIndexIntLen Longueur de clé pour les indices entier ordonnés. Le MSB d'un binaire entier sera utilisé pour indexer les clés.
olcIndexSubstrIfMaxLen Longueur max des indices subinitial et subfinal.
olcIndexSubstrIfMinLen Longueur mini des indices subinitial et subfinal. Une valeur d'attribut doit avoir au moins cette longueur pour être traitée
olcIndexSubstrAnyLen Longueur utilisée pour les indices subany. Une valeur d'attribut doit avoir au moins cette longueur pour être traitée. est utilisé pour les indices subinitial et subfinal quand le filtre est supérieur à olcIndexSubstrIfMaxlen
olcIndexSubstrAnyStep Spécifie les étapes utilisée dans les recherchée d'index subany. définis l'offset pour les segments d'une chaîne de recherche
olcListenerThreads Spécifie le nombre de threads à utiliser pour le gestionnaire de connexion
olcLocalSSF Spécifie le Security Strength Factor (SSF) pour les sessions LDAP locales.
olcLogFile Fichier où enregistrer les logs
olcLogLevel Niveau de log
olcPasswordCryptSaltFormat Spécifie le format du salt passé à crypt(3) en générant les mots de passe {CRYPT}. Doit être au format sprintf(3) et peut inclure une conversion %s
olcPidFile Chemin absolu du fichier PID
olcPluginLogFile Chemin absolu d'un fichier contenant les logs pour le plugin SLAPI
olcReferral Spécifie les referrals à passer quand slapd ne peut pas trouver une base à utiliser pour une requête
olcReverseLookup Active/désactive la recherche inversée d'un nom de client
olcRootDSE Nom d'un fichier ldif contenant les attributs utilisateur pour le root DSE
olcSaslAuxprops Spécifie quels plugins auxprop utiliser pour les recherches d'authentification.
olcSaslHost fqdn utilisé pour le traitement SASL
olcSaslRealm Royaume SASL
olcSaslSecProps Spécifie les propriétés de sécurité pour cyrus SASL. none efface les flags "noanonymous,noplain". noplain désactive les mécanismes sujets à attaques passives. noactive désactive les mécanismes sujet à attaques actives. nodict désactive les mécanismes sujets à attaque passive par dictionnaire. noanonymous désactive le support des login anonymes. forwardsec nécessite un renvoie de secret entre les sessions. passcred nécessite un mécanisme qui passe les crédentials clients. minssf=‹factor› spécifie le SSF minimum acceptable. maxssf=‹factor› spécifie le SSF maximum acceptable. maxbufsize=‹size› spécifie la taille de tampon max.
olcServerID Spécifie un ID de 0 à 4096 pour ce serveur.
olcSockbufMaxIncoming Taille de PDU LDAP maximum entrante pour les sessions anonymes.
olcSockbufMaxIncomingAuth Taille de PDU LDAP maximum entrante pour les sessions authentifiées.
olcTCPBuffer Taille du tampon TCP. Une valeur globale est définie, et des valeur pour la lecture et l'écriture peuvent être spécifiés
olcThreads Taille maximum du pool de thread primaire.
olcToolThreads Nombre de thread maximum à utiliser en mode tool. ne devrait pas être supérieur au nombre de CPU.
olcWriteTimeout Nombre de secondes à attendre avant de fermer une connexion avec une écriture en cours. permet une récupération face à divers problèmes réseau

Options TLS

olcTLSCipherSuite Permet de configurer les chiffrement acceptés et l'ordre de préférence.
olcTLSCACertificateFile Fichier contenant les certificats pour toutes les CA que slapd reconnaît
olcTLSCACertificatePath Chemin d'un répertoire contenant les certificats CA
olcTLSCertificateFile Fichier contenant le certificat du server ldap
olcTLSCertificateKeyFile Fichier contenant la clé privée du serveur ldap
olcTLSDHParamFile Spécifie le fichier contenant les paramètres pour les échanges de clé Diffie-Hellman. "!AH" devrait être ajouté à la suite de chiffrements si des chiffrements sont spécifiés et utilisent les échanges de clé DH anonymes.
olcTLSRandFile Fichier pour obtenir des données aléatoires quand /dev/urandom n'est pas disponible
olcTLSVerifyClient Spécifie quelle vérification exécuter sur les certificats clients. never ne demande pas de certificat, allow nécessite un certificat. try le certificat est demandé, mais non obligatoire. demand|hard|true sont équivalent
olcTLSCRLCheck Spécifie si la CRL doit être utilisée pour vérifier les certificats clients. none ne vérifie pas la CRL. peer vérifie dans la CRL. all vérifie toute la chaîne dans le CRL.
olcTLSCRLFile Spécifie le fichier contenant la CRL à vérifier

Options de modules dynamique

   Chaque module a une entrée nommée cn=module{x},cn=config

olcModuleLoad Spécifie le nom d'un module dynamique
olcModulePath Spécifie une liste de répertoires où chercher les modules.

Options de schéma

   Les définitions de schéma sont créées en tant qu'entrée dans cn=schema,cn=config

olcAttributeTypes Spécifie une type d'attribut utilisant la syntaxe LDAPv3
olcDitContentRules Spécifie un DIT Content Rule utilisant la syntaxe LDAPv3
olcObjectClasses Spécifie une classe d'objet en utilisant la syntaxe LDAPv3
olcObjectIdentifier Définis une nom équivalent à l'OID donné

Options général de backend

   Chaque backend est définies dans une entrée nommée: olcBackend=‹databasetype›,cn=config

Options de base de données

   Les options de base de données sont définies dans des entrées nommées olcDatabase={x}‹databasetype›,cn=config. La base frontend spéciale est toujours numérotée {-1} et la base de configuration est toujours numérotée {0}

   Ces options peuvent être définies dans le frontend et doivent avoir l'objet olcFrontEndConfig

olcAccess Définis l'accès à une base de données
olcDefaultSearchBase Spécifie le dn de bas de recherche par défaut à utiliser quand les clients ne spécifient pas de base de recherche
olcExtraAttrs Liste les attributs devant être ajoutés aux requêtes de recherche. Les backend locaux retournent toute l'entrée, le frontend ne retourne que celles autorisées par les ACL.
olcPasswordHash Configure les hash à utiliser lors de la génération de mots de passe dans l'attribut userPassword. {SSHA}, {SHA}, {MD5}, {SMD5}, {CRYPT}, {CLEARTEXT}
olcReadOnly Place la base de donnée en lecture seule
olcRequires Spécifie un jeu de conditions requis. Peut être spécifié globalement et/ou par base de données (additive). authc nécessite une authentification avant toute opération, SASL nécessite une authentification SASL, strong nécessite une authentification forte. none ne spécifie aucune condition
olcRestrict Spécifie une liste d'opérations interdites. Peut être spécifié globalement et/ou par base de données (superseed). add, bind, compare, delete, extended[=‹OID›], modify, rename, search, read, write
olcSchemaDN Spécifie le DN de la sous-entrée du sous-schéma qui contrôle les entrées sur ce serveur.
olcSecurity Spécifie un jeu de SSF. Peut être spécifié globalement et/ou par base de données. ssf=‹n› Spécifie le SSF général. transport=‹cn› spécifie le transport SSF. tls=‹n› spécifie le TLS SSF. update_ssf=‹n› spécifie le SSF général pour les updates. update_transport=‹n› spécifie le transport SSF pour les updates. update_tls=‹n› spécifie les TSL SSF pour les updates. update_sasl=‹n› spécifie le SASL SSF pour les updates. simple_bind=‹n› requière une authentification simple
olcSizeLimit Spécifie le nombre maximum d'entrées à retourner lors d'une recherche.
olcSortVals Spécifie une liste d'attributs multi-valués qui seront toujours maintenus en ordre trié. Permet aux opération modify, compare et aux filtres d'évaluation d'être traités plus efficacement. frontend only.
olcTimeLimit Spécifie le temps maximum en secondes pour une réponse à une recherche

Options de base de données générales

olcAddContentAcl Contrôle si les opérations Add vont effectuer une vérification d'ACL sur le contenu de l'entrée ajoutée.
olcHidden Contrôle si la base sera utilisée pour répondre aux requêtes
olcLastMod Contrôle si slapd maintient automatiquement les attributs modifiersName, modifyTimestamp, creatorsName, et createTimestamp pour les entrées. Contrôle aussi entryCSN et entryUUID
olcLimits Spécifie les limites de temps et de taille basé sur l'initiateur de l'opération ou base DN.
olcMaxDerefDepth Nombre maximum d'aliase à déréférencer en essayant de résoudre une entrée.
olcMirrorMode à TRUE, place un réplica de base en mode mirroir. les updates sont accèptées par tout utilisateur. La base doit être en syncrepl
olcPlugin Configure le plugin SLAPI
olcRootDN Spécifie le DN qui n'est pas sujet à contrôle d'accès ou restrictions administratives
olcRootPW Mot de pas du RootDN
olcSubordinate Spécifie que le backend est subordonné à un autre backend. une base subordonnée peut avoir une seul suffix. Utile pour accoler plusieurs suffix dans un simple contexte de nommage. TRUE, FALSE, advertise (si spécifié, le contexte de nommage de cette base est indiquée dans le rootDSE)
olcSuffix Spécifie le suffix DN des requêtes passée au backend
olcSyncUseSubentry Stocke le contextCSN syncrepl dans une sous-entrée au lieu de l'entrée context de la base
olcSyncrepl Spécifie la base courante comme réplica d'un contenu master
olcUpdateDN applicable uniquement pour les base esclaves. Spécifie le DN autorisé à updater la base
olcUpdateRef Spécifie les référants à passer quand slapd reçoit le demande de modifier une base local répliquée.

Overlays

   Un overlay est une code qui intercepte les opérations de la base dans le but de les étendre ou les changer. Les overlays doivent être configurés comme entrées enfant d'une base spécifique le RDN de l'entrée doit avoir l'objectClass olcOverlayConfig

Exemple

L'exemple suivant, s'il est copié dans le fichier config.ldif, la commande suivante va initialiser la configuration:
slapadd -F /usr/local/etc/openldap/slapd.d -n 0 -l config.ldif


dn: cn=config
objectClass: olcGlobal
cn: config
olcPidFile: /usr/local/var/run/slapd.pid
olcAttributeOptions: x-hidden lang-
    
dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema
    
include: file:///usr/local/etc/openldap/schema/core.ldif
    
dn: olcDatabase=frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: frontend
# Subtypes of "name" (e.g. "cn" and "ou") with the
# option ";x-hidden" can be searched for/compared,
# but are not shown. See slapd.access(5).
olcAccess: to attrs=name;x-hidden by    *    =cs
# Protect passwords. See slapd.access(5).
olcAccess: to attrs=userPassword by    *    auth
# Read access to other attributes and entries.
olcAccess: to    *    by    *    read
    
# set a rootpw for the config database so we can bind.
# deny access to everyone else.
dn: olcDatabase=config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: config
olcRootPW: {SSHA}XKYnrjvGT3wZFQrDD5040US592LxsdLy
olcAccess: to    *    by    *    none
    
dn: olcDatabase=bdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcBdbConfig
olcDatabase: bdb
olcSuffix: "dc=our-domain,dc=com"
# The database directory MUST exist prior to
# running slapd AND should only be accessible
# by the slapd/tools. Mode 0700 recommended.
olcDbDirectory: /usr/local/var/openldap-data
# Indices to maintain
olcDbIndex: objectClass eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
    
# We serve small clients that do not handle referrals,
# so handle remote lookups on their behalf.
dn: olcDatabase=ldap,cn=config
objectClass: olcDatabaseConfig
objectClass: olcLdapConfig
olcDatabase: ldap
olcSuffix: ""
olcDbUri: ldap://ldap.some-server.com/

Limite de taille et de temps


olcLimits: ‹selector› ‹limit› [‹limit› [...]]
selector: anonymous|users|[‹dnspec›=]‹pattern›|group[/oc[/at]]=‹pattern›
‹dnspec› ::= dn[.‹type›][.‹style›]
‹type› ::= self | this
‹style› ::= exact | base | onelevel | subtree | children | regex | anonymous

unchecked définie une limite sur le nombre de candidats qu'une recherche est autorisé à examiner
size[.{soft|hard|unchecked}]=‹integer›
Contrôle pageResult total permis de retourner:
size.prtotal={‹integer›|unlimited|disabled}
contrôle pageResult:
size.pr={‹integer›|noEstimate|unlimited}

integer Taille de page maximum si aucune limite explicite n'est définies.
noEstimate ne retourne pas d'estimation du nombre d'entrée qui peuvent être retournées

olcSyncrepl

   olcSyncrepl: rid=‹replicaID› provider=ldap[s]://‹hostname›[:port] searchbase=‹baseDN› [type=refreshOnly|refreshAndPersist] [interval=dd:hh:mm:ss] [retry=[‹retry interval› ‹# of retries›]+] [filter=‹filterstr›] [scope=sub|one|base|subord] [attrs=‹attrlist›] [exattrs=‹attrlist›] [attrsonly] [sizelimit=‹limit›] [timelimit=‹limit›] [schemachecking=on|off] [network-timeout=‹seconds›] [timeout=‹seconds›] [bindmethod=simple|sasl] [binddn=‹dn›] [saslmech=‹mech›] [authcid=‹identity›] [authzid=‹identity›] [credentials=‹passwd›] [realm=‹realm›] [secprops=‹properties›] [keepalive=‹idle›:‹probes›:‹interval›] [starttls=yes|critical] [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] [suffixmassage=‹real DN›] [logbase=‹base DN›] [logfilter=‹filterstr›] [syncdata=default|accesslog|changelog]

rid ID qui identifie la directive syncrepl dans le site de réplication.
provider Spécifie le fournisseur de réplication contenant le contenu master
searchbase, scope, filter, attrs, attrsonly, sizelimit, timelimit servent de spécification pour filtrer le contenu du réplica
refreshOnly la prochaine opération de recherche de synchronisation est re-planifiée à intervalle définis par interval.
refreshAndPersist la synchronisation est persistante
retry Si la connexion est perdue, retente avec des pair de valeur ‹retry inval› et ‹# of retries›. ex: retry"60 10 300 3". + vaut indéfinis
schemachecking Force la vérification du schéma.
network-timeout Définis le temps d'établissement d'une connexion réseau avec le fournisseur
timeout Détermine le temps que le client attend que la requête Bind initiale soit complétée
bindmethod simple, sasl
binddn DN pour un simple bind
saslmech requis pour SASL
authcid Identité et/ou crédentials pour l'authentification sasl
authzid identité d'authorisation
credentials Crédentials pour le bind
realm Royaume SASL
secprops Définis les propriétés de sécurité spécifiques
keepalive Définis les valeurs de idle (temps avant un TCP keepalive), probes (nombre max de keepalive avant de fermer la connexion) et intervalles (temps entre les keepalive)
starttls Spécifie l'utilisation de l'opération étendue StartTLS pour établir une session TLS.
tls_cert Certificat pour la connexion TLS
tls_key Clé privée
tls_cacert Fichier contenant les certificats CA
tls_cacertdir Répertoire contenant les certificats CA
tls_reqcert Spécifie si le certificat est requis
tls_ciphersuite Spécifie la suite de chiffrement et l'ordre à utiliser
tls_crlcheck Vérifie les certificat dans la CRL
suffixmassage Permet au client de pousser des entrée depuis un annuaire distant dont le suffixe DN diffère de l'annuaire local Les entrée qui matche le searchbase seront remplacé avec ce DN
logbase Fichier où écrire les logs
logfilter Filtre pour les logs
syncdata accesslog, les logs sont conforme à slapo-accesslog. changelog les logs sont conforme au format changelog (obsolète). default, les paramètres de logs sont ignorés
^
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-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-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-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)
^
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
^
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-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
^
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
^
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-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-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
^
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)
^
26 septembre 2013

htmlpdflatexmanmd




slapd.conf

slapd.conf

Fichier de configuration de slapd (ancien format)

   Le fichier de configuration (slapd.conf) consiste de 3 types d'information de configuration: global, backend et database. Les informations globales sont spécifiées en premier, suivis par les informations associées avec un type de backend particulier, puis les informations associées avec un type particulier de base. Les directives globales peuvent être écrasées par des directives de base ou de backend, et les directives backend peuvent être écrasées par les directives de base de données.

  Les lignes blanches et les lignes de commentaire commençant par un # et sont ignorées. Si une ligne commence par un espace blanc, il est considéré comme la suite de la ligne précédente (même si la précédente ligne est un commentaire).

Format général


# Directives de configuration globale:
‹global config directives›
    
# backend definition
backend ‹typeA›
‹backend-specific directives›
    
# first database definition & config directives
database ‹typeA›
‹database-specific directives›
    
# second database definition & config directives
database ‹typeB›
‹database-specific directives›
    
# second database definition & config directives
database ‹typeA›
‹database-specific directives›
    
# subsequent backend & database definitions & config directives
...

Directives Global

   Les directives décrites dans cette section s'appliquent à tous les backend et bases.

access to ‹what› [ by ‹who› [‹accesslevel›][‹control›]]+ Cette directive donne accès spécifié par accesslevel à un set d'entrée et/ou d'attributs spécifiés par what, par un ou plusieurs utilisateurs spécifiés par who. note: si aucune directive access n'est spécifié, la politique est access to * by * read.
attributetype ‹rfc4512 Attribute Type Description› cette directive définit un type d'attribut.
idletimeout ‹integer› Spécifie le nombre de secondes à attendre avant de forcer la fermeture de la connexion d'un client. à 0, désactive la fonction.
include ‹filename› Spécifie une fichier à lire, contenant d'autres informations de configuration. Généralement utilisé pour inclure les spécification de schéma.
loglevel ‹integer› Cette directive spécifie le niveau de log (actuellement placé dans syslogd LOG_LOCAL4). Le loglevel peut être spécifié sous forme d'entier ou par mot clé.

level_keyword________Description
-1____any____________enable all debugging
0____________________no debugging
1_____(0x1 trace)____trace function calls
2_____(0x2 packets)__debug packet handling
4_____(0x4 args)_____heavy trace debugging
8_____(0x8 conns)____connection management
16____(0x10 BER)_____print out packets sent and received
32____(0x20 filter)__search filter processing
64____(0x40 config)__configuration processing
128___(0x80 ACL)_____access control list processing
256___(0x100 stats)__stats log connections/operations/results
512___(0x200 stats2)_stats log entries sent
1024__(0x400 shell)__print communication with shell backends
2048__(0x800 parse)__print entry parsing debugging
16384_(0x4000 sync)__syncrepl consumer processing
32____(0x8000 none)___only messages that get logged whatever log level is set

on peut additionner les valeurs:
loglevel 129
loglevel 0x81
loglevel 128 1
sont équivalent:
loglevel 0x80 0x1
et
loglevel acl trace

objectclass ‹rfc4512 Object Class Description› Cette directive définit une classe objet
referral ‹URI› Cette directive spécifie le référant quand slapd ne peut trouver une base locale pour manipuler les requêtes.
sizelimit ‹integer› Cette directive spécifie le nombre maximum d'entrée à retourner pour une opération de recherche. défaut: sizelimit 500
timelimit ‹integer› Cette directive spécifie le nombre maximum de seconde que slapd va passer à répondre à une requete. Au delà, il envoie un exceeded timelimit. defaut: timelimit 3600

Directives Backend

   Les directives dans cette section s'appliquent uniquement au backend dans lequel elles sont définies. Elles sont supportées par tous les types de backend. Les directives d'un backend s'appliquent à toutes les instances de base du même type.

backend ‹type› Cette directive marque le début d'une déclaration backend. ‹type› peut être un des types supportés:

Types___Description
bdb_____Berkeley DB transactional backend
dnssrv__DNS SRV backend
hdb_____Hierarchical variant of bdb backend
ldap____Lightweight Directory Access Protocol (Proxy) backend
meta____Meta Directory backend
monitor_Monitor backend
passwd__Provides read-only access to passwd(5)
perl____Perl Programmable backend
shell___Shell (extern program) backend
sql_____SQL Programmable backend

Directives générales de bases de données

   Les directives dans cette section s'appliquent uniquement à la base dans laquelle elles sont définies

database ‹type› Cette directive marque le début d'une déclaration d'instance de base. ‹type› doit être un des type de backend supporté.
limits ‹who›‹limit›[‹limit›[...]] spécifie les limites de temps et de taille sur qui initie une opération
readonly on|off Cette directive place la base en lecture seule
rootdn ‹DN› Cette directive spécifie le DN qui n'est pas sujet aux restriction de limites administratives et de contrôle d'accès pour les opérations sur cette base. le DN doit référer à une entrée dans l'annuaire. Le DN peut référer à une identité SASL. (ex: rootdn "cn=Manager,dc=example,dc=com", avec sasl: rootdn "uid=root,cn=example.com,cn=digest-md5,cn=auth")
rootpwd ‹password› Cette directive spécifie le mot de passe pour le rootdn. Il est possible d'utiliser slappasswd -s pour générer un hash.
suffix ‹dn suffix› Cette directive spécifie le suffixe DN des requêtes qui seront passé à cette base. Plusieurs lignes peuvent être spécifiées, et au moins une est requise pour chaque définition de base.(ex: suffix "dc=example,dc=com" # les requêtes avec un DN se terminant avec "dc=Example,dc=com" seront passées à ce backend)
syncrepl
syncrepl rid=‹replica ID›
provider=ldap[s] ://‹hostname›[:port]
type=refreshOnly
[interval=dd:hh:mm:ss]
[retry=[‹retry interval› ‹# of retries›]+]
searchbase=‹base DN›
[filter=‹filter str›]
[scope=sub|one|base]
[attrs=‹attr list›]
[attrsonly]
[sizelimit=‹limit›]
[timelimit=‹limit›]
schemachecking=on
bindmethod=simple
[binddn=‹DN›]
[saslmech=‹mech›]
[authcid=‹identity›]
[authzid=‹identity›]
[credentials=‹passwd›]
[realm=‹realm›]
[secprops=‹properties›]
starttls=yes
[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]
[logbase=‹base DN›]
[logfilter=‹filter str›]
[syncdata=default|accesslog|changelog] Cette directive spécifie la base courante comme réplique du contenu d'un master en utilisant le moteur de réplication syncrepl.

provider indique le master. spécifie un schéma, un hôte et un port
rid est utilisé pour l'identification de la directive syncrepl courante dans le serveur de réplication.
searchbase n'a pas de valeur par défaut et doit toujours être spécifié.
scope est à sub par défaut
filter est à (objectclass=*) par défaut
attrs à "*,+" par défaut pour répliquer tous les utilisateurs et tous les attributs optionnels
attrsonly est désactivé par défaut
sizelimit est à unlimited par défaut
timelimit est à unlimited par défaut

   Le protocole de synchronisation de contenu LDAP à 2 types d'opérations: refreshOnly et refreshResultEntry. Avec RefreshOnly, la synchronisation est périodique. l'interval est spécifié par le paramètre interval. Par défaut il est à 1 jour. Avec refreshAndPersist, la synchronisation est persistante.

   Si une erreur se produit durant la réplication, le réplicateur tente de se reconnecter en accord avec le paramètre retry, qui est une liste de paire de paramètres ‹retry interval› et ‹# of retries›. Par exemple, retry "60 10 300 3" tente de se reconnecter toutes les 60 secondes, 10 fois, puis retente toutes les 300 secondes, 3 fois, avant de stopper la tentative de reconnexion.

   La vérification de schéma peut être renforcée avec le paramètre schemachecking. Activé, toute entrée répliquée sera vérifié pour ce schéma avant de le stocker. Le paramètre binddn donne le DN à lier pour la recherche syncrepl. Il doit être un DN qui a les droits d'accès en lecture.

   bindmethod est simple ou sasl, en fonction si l'authentification par mot de passe est simple pour sasl. L'authentification simple ne devrait pas être utilisé a moins que l'intégrité des données des protections de confidentialité soient en place (par exemple: TLS ou IPsec) L'authentification simple requière les paramètres binddn et credentials. L'authentification SASL requière la spécification d'un mécanisme utilisant le paramètre saslmech. authcid et credential peuvent être spécifiés pour l'identité d'authentification et le credential. authzid peut être utilisé pour spécifier l'identité d'autorisation.

   le paramètre realm spécifie un domaine. le paramètre secprops spécifie les propriétés de sécurité Cyrus SASL.

  starttls spécifie l'utilisation de TLS. Si l'argument critical est spécifié, la session sera abordée si la requête StartTLS échoue. Sinon la session SyncRepl continu sans TLS.

   Au lieu de répliquer toutes les entrées, le réplicateur peut chercher les logs de modification de données. Ce mode d'opération s'appel delta syncrepl. En plus des paramètres ci-dessus, les paramètres logbase et logfilter doivent être spécifiés pour les logs à utiliser. Le paramètre syncdata doit être soit à "accesslog" si le log est conforme au format slapo-accesslog ou "changelog". Si le paramètre syncdata est omis ou à "default", les paramètres de log seront ignorés. La réplication syncrepl est supportées par bdb et hdb.

updateref ‹URL› Cette directive est seulement applicable dans un slave. Il spécifie l'URL à retourner aux clients qui envoient des requêtes de mise à jours sur la réplique. Peut être spécifié plusieurs fois.
directives de base BDB et HDB Ces directives s'appliquent uniquement aux bases BDB et HDB.
directory ‹directory› Cette directive spécifie le dossier où les fichiers contenant la base et indices associés sont stockés.

Exemple de fichier de configuration

L'exemple suivant définit 2 bases pour manipuler différentes parties d'un arbre x500. Les 2 bases sont des instances BDB.
# example config file - global configuration section
include /usr/local/etc/schema/core.schema # inclue un fichier de définition de schéma
referral ldap ://root.openldap.org # les requêtes non local sur une des bases définies vont référer au server LDAP à l'hôte root.openldap.org
access to    *    by    *    read # Contrôle d'accès global.
    
# BDB definition for the example.com
database bdb
suffix "dc=example,dc=com" # suffix DN pour cette base
directory /usr/local/var/openldap-data # dossier où se trouve les fichiers de cette base.
rootdn "cn=Manager,dc=example,dc=com" # rootdn pour cette base
rootpw secret # mdp du rootdn
# indexed attribute definitions
index uid pres,eq # indique les indices pour maintenir divers attributs
index cn,sn,uid pres,eq,approx,sub
index objectClass eq
# database access control definitions
access to attrs=userPassword # Spécifier le controle d'accès pour les entrées dans cette base.
by self write
by anonymous auth
by dn.base="cn=Admin,dc=example,dc=com" write
by    *    none
access to    *
by self write
by dn.base="cn=Admin,dc=example,dc=com" write
by    *    read
    
# BDB definition for example.net
database bdb
suffix "dc=example,dc=net"
directory /usr/local/var/openldap-data-net
rootdn "cn=Manager,dc=example,dc=com"
index objectClass eq
access to    *    by users read

^
08 septembre 2013

htmlpdflatexmanmd




slapdn

slapdn

Vérifie une liste de DN basé sur une définition de schéma dans la configuration de slapd

OPTIONS

-d debug_level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-N Affiche seulement une forme normalisée des DN, incompatible avec -P
-o option[=value] Spécifie une option slapd
-P Affiche seulement une forme édulcorée du DN
-v mode verbeux
^
08 septembre 2013

htmlpdflatexmanmd




slapindex

slapindex

Réindex les entrées dans une base slapd

OPTIONS

-b suffix Utilise le suffix spécifié pour déterminer quelle base utiliser
-c Ignore les erreurs et continue
-d debug-level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-g Désactive le gluing subordonné. Seul la base spécifiée sera traitée et non ses subordonnées attachés
dbnum Génère une sortie pour la dbnum-ième base listée dans la configuration. Ne peut pas être utilisé avec -b
-o option[=value] Spécifie une option slapd
-q mode rapide (peu de vérifications)
-t active le tronquage. uniquement en mode rapide
-v mode verbeux

limitations

   slapd ne devrait pas être en cours de fonctionnement, ou au moins en lecture seule.

Exemples

pour régénérer l’index pour un attribut spécifique
slapindex uid
^
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 )

^
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)›}
^
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-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-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 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

^
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 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 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 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 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 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-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
^
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.

^
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-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

^
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-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
^
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-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-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 )

^
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.
^
17 septembre 2014

htmlpdflatexmanmd




slapo-noopsrch

slapo-noopsrch

Implémente le contrôle noop

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

^
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-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

^
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-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-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-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-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-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-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-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-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-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-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=
^
08 septembre 2013

htmlpdflatexmanmd




slappasswd

slappasswd

Utilitaire de gestion de mot de passe openldap. Il permet de générer des valeurs userPassword, rootpw ou olcRootPW

OPTIONS

-v mode verbeux
-u Génère des valeurs RFC23077
-s secret Le secret à hasher
-g génère le secret
-T "file" Hash le contenu du fichier
-h "scheme" Si -h, un des schemas RFC2307 peut être utilisé: CLEARTEXT,CRYPT,MD5,SMD5,SSHA,etSHA
-c crypt-salt-format Spécifie le format du salt passé à crypt(3). Cette chaîne doit être au format sprintf(3) et peut inclure un %s. (ex : ’%.2s’ fournis un salt à 2 caractères, et ’$1$%.8s’ demande d’utiliser MD5 avec 8 caractères aléatoire.) défaut pour %s : 31 caractères de salt
-n  Omet les nouvelles lignes
-o option[=value] Spécifie une option slapd (module-path=‹pathspec› et module-load=‹filename›)

limitations

   Stocker les mots de passe dans userPassword viole la RFC4519. Utiliser authPassword (rfc3112).
^
08 septembre 2013

htmlpdflatexmanmd




slapschema

slapschema

Vérifie le schéma in-database de slapd

OPTIONS

-a filter Dump seulement les entrées correspondant au filtre
-b suffix Utilise le suffix spécifié pour déterminer quelle base utiliser
-c Ignore les erreurs et continue
-d debug_level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
-g Désactive le gluing subordonné. Seul la base spécifiée sera traitée et non ses subordonnées attachés
-H URI
-l ldif-file Écrit la sortie dans le fichier spécifié
dbnum Ajoute des entrées dans la dbnum-ième base listée dans la configuration. Ne peut pas être utilisé avec -b
-o option[=value] Spécifie une option slapd
-s subtree-dn Dump seulement les entrées dans la sous-arborescence spécifiée par ce DN
-v mode verbeux

limitations

   Pour certains types de backend, slapd ne devrait pas être en cours de fonctionnement, du moins en lecture seule.
^
08 septembre 2013

htmlpdflatexmanmd




slaptest

slaptest

Vérifie la configuration de slapd

OPTIONS

-d debug_level Active le débug
-f slapd.conf Spécifie le fichier de configuration à utiliser
-F confdir Spécifie le répertoire contenant la configuration slapd
dbnum Ajoute des entrées dans la dbnum-ième base listée dans la configuration.
-o option[=value] Spécifie une option slapd
-Q Mode très silencieux
-u dry-run n’échoue pas si la base ne peut pas être ouverte
-v mode verbeux