Profils d'utilisateursCette section décrit la manière dont sont définis les profils d'utilisateurs
se connectant à l'interface appelés LSprofile. Il est
possible de définir autant de profils d'utilisateurs que l'on souhaite. Pour
chaque profil d'utilisateur, il faudra définir dans quelles parties de
l'annuaire ce profil existe (Exemple : les admistrateurs de groupes existent
uniquement dans la branche de l'annuaire stockant les groupes). Enfin pour
chaque partie de l'annuaire, il faudra définir la manière d'identifier si
l'utilisateur qui se connecte appartient à ce profil.Structure...
array (
[nom d'un LSprofile] => array (
[basedn] => [dn utilisateur],
[autre basedn] => array (
[dn d'un utilisateur] => NULL,
[autre dn] => array ( // via un listage de l'attribut d'un objet
'attr' => [nom de l'attribut clé de l'objet],
'attr_value' => [format de la valeur de l'attribut clé],
'LSobject' => [nom du type LSobject de l'objet]
)
),
'LSobjects' => array ( // via une liste d'objet sur lequel l'utilisateur a des pouvoirs
[nom du LSobject] => array (
'attr' => [nom de l'attribut clé],
'attr_value' => [format de la valeur de l'attribut clé],
// ou
'filter' => [format du filtre de recherche],
'basedn' => [basedn de recherche],
'params' => [configuration de la recherche]
),
...
)
),
...
),]]>
...
Le paramètre LSprofiles est un tableau associatif contenant,
en valeur clé, le nom d'un LSprofile et en valeur associée,
la configuration nécessaire pour déterminer si l'utilisateur connecté appartient
à ce LSprofile pour tout ou partie de l'annuaire.
Dans chaque configuration de LSprofile, il est possible
d'identifier l'appartenance ou non de l'utilisateur connecté de deux manières :
Pour une branche de l'annuaire donnée (basedn) :
en listant les utilisateurs appartenant à ce LSprofile pour
tous les objets de la branche. Il sera possible de lister les utilisateurs dont
on connait le DN ou de lister les utilisateurs appartenant
à une liste stockée dans l'annuaire (par exemple la liste des membres d'un
groupe).Liste des DNs d'utilisateurs :Structure...
array (
[nom du LSprofile] => array (
[basedn] => [dn utilisateur],
// ou si plusieurs DNs
[autre basedn] => array (
[dn d'un utilisateur] => NULL,
[dn d'un utilisateur 2] => NULL
),
...
),
...
),]]>
...
Explication : Pour un LSprofile et un
basedn donnés, on définit l'utilisateur appartenant au
LSprofile en donnant son DN. Si on
souhaite lister plusieurs utilisateurs, on utilise un tableau associatif dans
lequel les clés sont les DNs des utilisateurs et les valeurs
associées sont toutes NULL.Liste d'utilisateurs stockée dans l'annuaire :Structure...
array (
[nom du LSprofile] => array (
[basedn] => array (
[DN d'un object] => array (
'attr' => [nom de l'attribut clé de l'objet],
'attr_value' => [format de la valeur de l'attribut clé],
'LSobject' => [nom du type LSobject de l'objet]
)
),
...
),]]>
...
Explication : Pour un LSprofile et un
basedn donnés, on liste les utilisateurs du
LSprofile référencés dans l'attribut attr
de l'object de type LSobject et selon le format de valeur
décrit dans attr_value.Pour un type de LSobject donné : en listant
les objets pour lesquels l'utilisateur aura les droits du LSprofile. Il sera
possible, à travers une recherche paramétrable dans l'annuaire, de lister les
objets pour lesquels l'utilisateur appartiendra au
LSprofile.Structure...
array (
[nom d'un LSprofile] => array (
'LSobjects' => array ( // via un liste d'objet pour lequel l'utilisateur
// appartient au LSprofile
[nom du LSobject] => array (
'attr' => [nom de l'attribut clé],
'attr_value' => [format de la valeur de l'attribut clé],
// or
'filter' => [format du filtre de recherche],
'basedn' => [basedn de recherche],
'params' => [configuration de la recherche]
),
...
)
),
...
),]]>
...
Explications : Dans la configuration d'un LSprofile,
la valeur clé LSprofile signifie qu'on est dans un cas de la
délégation de droits sur des types d'LSobject. Dans ce tableau associatif, il
est possible de définir un ou plusieurs types de LSobject pour lesquels on délègue
des droits. Dans ce tableau la valeur clé est le nom du LSobject et la valeur
associée est un tableau contenant la configuration permettant de dire quels sont
les LSobjets de ce type concernés par la délégation.Cette configuration contient les paramètres d'une recherche dans l'annuaire
en considérant que l'utilisateur connecté aura les droits du LSprofile sur les
objets retournés. Les paramètres de la recherche sont :
attrNom de l'attribut des LSobjets contenant une valeur clé qui
permettra d'identifier l'utilisateur comme ayant droit.attr_valueLe format de la valeur clé prise par l'attribut attr.
Ce format est composé à partir des données de l'objet de l'utilisateur
connecté. Voir le paragraphe Format
paramètrable pour plus d'informations sur l'écriture du format.filterCe paramètre remplace les paramètres attr et
attr_value. Il est possible ici d'écrire directement le
format paramètrable du filtre recherche dans l'annuaire. Ce filtre sera
automatiquement agrémenté des conditions sur l'attribut objectclass.
Voir le paragraphe Format paramètrable
pour plus d'informations sur l'écriture du format.basednC'est le basedn de la recherche. Il est possible
ainsi de la limiter sur les LSojects d'une branche précise de l'annuaire.
(Paramètre facultatif)paramsC'est un tableau associatif contenant les paramètres étendus de la
recherche. Voir le paragraphe
Paramètres étendus des recherches dans l'annuaire pour plus de détails.
(Paramètre facultatif)