<?xml version="1.0" encoding="UTF-8" ?>
<sect3 id="config-srv-ldap">
  <title>Configuration des serveurs LDAP</title>

<para>Cette section décrit le tableau de configuration des différents serveurs
LDAP utilisés par l'application. Ce tableau contient lui même un tableau par
serveur LDAP.</para>

<programlisting linenumbering="unnumbered">
<citetitle>Structure</citetitle>...
<![CDATA[$GLOBALS['LSconfig'] = array(
  ...
  'ldap_servers' => array(
    array (
      'name' => [nom de l'annuaire],
      'ldap_config'=> array(
        // Définition des paramètres de connexion à l'annuaire
      ),
      'useUserCredentials' => [boolean],
      'useAuthzProxyControl' => [boolean],
      'LSauth' => array (
        'method' => [LSauth method],
        'api_method' => [LSauth method],
        'LSobjects' => array(
          '[object type 1]',
          '[object type 2]' => array(
            'filter' => '[LDAP filter]',
            'password_attribute' => '[attribute name]',
            'web_access' => [booléen],
            'api_access' => [booléen],
          )
        )
      ),
      'LSprofiles' => array (
        // Définition des LSprofiles
      ),
      'cacheLSprofiles' => [boolean],
      'cacheSearch' => [boolean],
      'globalSearch' => [boolean],
      'LSaccess' => array (
        [Type LSobject 1],
        [Type LSobject 2],
        ...
      ),
      'subDn' => array(
        // Définition des sous-niveaux de l'annuaire
      ),
      'subDnLabel' => [nom des sous-niveaux],
      'recoverPassword' => array(
        // Définition des paramètres de configuration de la récupération de mot de passe
      ),
      'defaultView' => [view],
      'emailSender' => [email],
      'keepLSsessionActive' => [booléen]
    )
  ...
);]]>
...
</programlisting>

<!-- Début Paramètres Configuration -->
<variablelist>
<title>Paramètres de configuration</title>

<varlistentry>
  <term>name</term>
  <listitem>
    <simpara>Le nom d'affichage de ce serveur Ldap
    (utilisé lorsque plusieurs serveur LDAP sont déclarés).</simpara>
  </listitem>
</varlistentry>


<varlistentry>
  <term>ldap_config</term>
  <listitem>
    <simpara>Informations de connexion au serveur LDAP. Ces informations sont
    structurées selon les attentes de la librairie &netldap;.
    <ulink url='http://pear.php.net/manual/fr/package.networking.net-ldap.connecting.php'>
    Plus d'informations</ulink>
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>useUserCredentials</term>
  <listitem>
    <simpara>Booléen définissant si il faut utiliser les identifiants de l'utilisateur pour
    se connecter à l'annuaire (<emphasis>false</emphasis> par défaut). Si cette option est
    activée, la connexion à l'annuaire LDAP sera établie avec la configuration fournie dans
    le paramètre <emphasis>ldap_config</emphasis> en écrasant les informations de connexion
    (<emphasis>binddn</emphasis> et <emphasis>bindpwd</emphasis>) par ceux de l'utilisateur.
    Si l'utilisateur n'est pas encore connecté, la connexion sera étalie sans modifier la
    configuration fournie.
    </simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>useAuthzProxyControl</term>
  <listitem>
    <simpara>Booléen définissant si, lorsqu'on utilise les identifiants de l'utilisateur pour
    se connecter à l'annuaire, il faut utiliser une authentification via <emphasis>proxy
    authorization</emphasis>. Dans ce cas, les identifiants de l'utilisateur ne seront pas, à
    proprement parlé, utilisés pour se connecter à l'annuaire, mais une demande de <emphasis>
    proxy authorization</emphasis> en tant que l'utilisateur connecté sera faites à l'aide des
    identifiants de l'application. Ce mode nécessite une configuration particulière au niveau
    de l'annuaire pour autoriser le compte de l'application à faire des demandes de <emphasis>
    proxy authorization</emphasis> en tant que les autres utilisateurs de l'annuaire.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>LSprofiles</term>
  <listitem>
    <simpara>Définition des profils d'utilisateurs se connectant à l'annuaire.
    <link linkend="config-LSprofile">Voir la section concernée</link>.
    </simpara>
  </listitem>
</varlistentry>


<varlistentry>
  <term>LSauth</term>
  <listitem>
    <simpara>Ce tableau défini les paramètres d'authentification à l'application.</simpara>
    <variablelist>
    <title>Paramètres de configuration de l'authentification</title>

    <varlistentry>
      <term>method</term>
      <listitem>
        <simpara>Nom de la méthode d'authentification &LSauthMethod;. Exemple : pour utiliser la classe
        <literal>LSauthMethod_HTTP</literal>, la valeur de ce paramètre sera <literal>HTTP</literal>.
        <emphasis>Paramètre facultatif, méthode par défaut : <literal>basic</literal>.</emphasis>
        </simpara>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>api_method</term>
      <listitem>
        <simpara>Nom de la méthode d'authentification &LSauthMethod; à utilisée lors d'une connexion à
        l'API. Exemple : pour utiliser la classe <literal>LSauthMethod_HTTP</literal>, la valeur de ce
        paramètre sera <literal>HTTP</literal>. <emphasis>Paramètre facultatif, méthode par défaut :
        <literal>HTTP</literal>.</emphasis></simpara>
        <warning><simpara>Toutes les &LSauthMethod; ne supportent pas forcément le mode API.</simpara>
        </warning>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>LSobjects</term>
      <listitem>
        <simpara>Tableau listant les types &LSobjects; pouvant se connecter à l'application. Les valeurs
        de ce tableau peuvent être un nom de type d'objet ou bien tableau détaillant les paramètres de
        connexion de ce type d'objet.</simpara>
        <variablelist>
        <title>Paramètres de configuration d'un type d'object</title>

<varlistentry>
  <term>filter</term>
  <listitem>
    <simpara>&LSformat; du filtre de recherche de l'utilisateur à sa connexion.
    Ce format sera composé avec l'identifiant fourni par l'utilisateur. Cela peut
    par exemple permettre à l'utilisateur de se connecter en fournissant son login
    ou son email comme identifiant. Exemple de valeur :
    <literal>(|(uid=%{user})(mail=%{user}))</literal>. <emphasis>Paramètre facultatif,
    filtre par défaut composé à l'aide de l'attribut RDN.</emphasis></simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>password_attribute</term>
  <listitem>
    <simpara>Nom de l'attribut stockant le mot de passe de ce type d'&LSobject;. <emphasis>
    Paramètre facultatif, valeur par défaut : <literal>userPassword</literal>.</emphasis></simpara>
    <note><simpara>C'est cet attribut de l'utilisateur qui sera modifié par la fonctionnalité
    de récupération de mot de passe.</simpara></note>
  </listitem>
</varlistentry>

<varlistentry>
  <term>web_access</term>
  <listitem>
    <simpara>Permet de définir si ce type d'objet à le droit d'utiliser l'interface web (facultatif,
    par défaut : <literal>True</literal>).</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>api_access</term>
  <listitem>
    <simpara>Permet de définir si ce type d'objet à le droit d'utiliser l'API (facultatif,
    par défaut : <literal>False</literal>).</simpara>
  </listitem>
</varlistentry>

        </variablelist>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term>allow_multi_match</term>
      <listitem>
        <simpara>Booléen permettant de définir si un doublon d'identifiant utilisateur est autorisé.
        Si c'est le cas et lorsqu'un identifiant fourni par l'utilisateur a sa connexion a permi
        de trouver plus d'un utilisateur possible correspondant, l'application tentera de déterminer
        lequel de ces utilisateurs correspond à la tentative d'authentification. La méthodologie
        employée dépendra de la &LSauthMethod; configurée. Par exemple, la &LSauthMethod; <literal>
        basic</literal> tentera de s'identifier avec le mot de passe. Dans tous les cas, si cette
        méthode n'a pas permi d'identifier un seul utilisateur, l'authentification échoura. <emphasis>
        Paramètre facultatif, valeur par défaut : <literal>Faux</literal>.</emphasis>
        </simpara>
      </listitem>
    </varlistentry>

    </variablelist>
  </listitem>
</varlistentry>


<varlistentry>
  <term>cacheLSprofiles</term>
  <listitem>
    <simpara>Activation/Désactivation de la mise en cache des &LSprofiles; des
    utilisateurs connectés à ce serveur.</simpara>
    <simpara>Valeur par défaut : <emphasis>valeur de la variable globale
    du même nom</emphasis></simpara>
  </listitem>
</varlistentry>


<varlistentry>
  <term>cacheSearch</term>
  <listitem>
    <simpara>Activation/Désactivation de la mise en cache du résultat des
    recherches sur ce serveur.</simpara>
    <simpara>Valeur par défaut : <emphasis>valeur de la variable globale
    du même nom</emphasis></simpara>
  </listitem>
</varlistentry>


<varlistentry>
  <term>globalSearch</term>
  <listitem>
    <simpara>Activation/Désactivation de la recherche globale sur ce serveur
    en particulier. Par defaut, la valeur du paramètre global
    <literal>globalSearch</literal> est utilisée.</simpara>
    <simpara>Valeur par défaut : <emphasis>valeur de la variable globale
    du même nom</emphasis></simpara>
  </listitem>
</varlistentry>


<varlistentry id="config-LSaccess">
  <term>LSaccess</term>
  <listitem>
    <simpara>Définition des types d'&LSobjects; devant apparaître dans le menu de
    l'interface.</simpara>
    <important><simpara>Ce paramètre n'est utilisé que pour les annuaires n'ayant
    pas de sous-niveaux (&subDn;).</simpara></important>
  </listitem>
</varlistentry>


<varlistentry>
  <term>subDn</term>
  <listitem>
    <simpara>Définition des sous-niveaux de connexion à l'annuaire.
    <link linkend="config-subDn">Voir section concernée</link>.</simpara>
    <important><simpara>Ce paramètre remplace le paramètre
    <link linkend="config-LSaccess">LSaccess</link> dans le cas d'un annuaire
    multi-niveaux.</simpara></important>
  </listitem>
</varlistentry>


<varlistentry>
  <term>subDnLabel</term>
  <listitem>
    <simpara>Définition du label utilisé pour qualifier les sous-niveaux de
    connexion.</simpara>
    <important><simpara>Ce paramètre est utile uniquement dans le cas d'un annuaire
    multi-niveaux.</simpara></important>
  </listitem>
</varlistentry>


<varlistentry>
  <term>recoverPassword</term>
  <listitem>
    <simpara>Définition des paramètres de la récupération de mot de passe.
    <link linkend="config-recoverPassword">Voir la section concernée</link>.</simpara>
  </listitem>
</varlistentry>


<varlistentry>
  <term>defaultView</term>
  <listitem>
    <para>Définition de la vue par défaut de l'application. Par défaut, une page
    blanche est affichée et il est possible de définir à l'aide de ce paramètre la
    vue qui s'affichera. Ce paramètre peut prendre comme valeur :
    <itemizedlist>
      <listitem>
        <simpara><literal>SELF</literal> pour la vue <emphasis>Mon compte</emphasis></simpara>
      </listitem>
      <listitem>
        <simpara>Le nom d'un &LSobject; pour afficher la liste de ce type d'objet</simpara>
      </listitem>
      <listitem>
        <simpara>Le nom d'une vue d'un &LSaddon; au format <literal>[addon]::[viewId]</literal>
        pour afficher cette vue</simpara>
      </listitem>
    </itemizedlist>
    </para>
  </listitem>
</varlistentry>

<varlistentry>
  <term>emailSender</term>
  <listitem>
    <simpara>Adresse mail utilisée par &LdapSaisie; pour envoyer des e-mails en
    relation avec cet annuaire. Cette adresse est celle utilisée par défaut.
    L'adresse utilisée peut également être configurée dans le contexte de
    configuration du module devant envoyer des e-mails.</simpara>
  </listitem>
</varlistentry>

<varlistentry>
  <term>keepLSsessionActive</term>
  <listitem>
    <simpara>Activation/Désactivation du maintient de la LSsession active.</simpara>
    <simpara>Valeurs possibles : <emphasis>True</emphasis> ou
    <emphasis>False</emphasis></simpara>
    <simpara>Valeur par défaut : <emphasis>valeur de la variable globale
    du même nom</emphasis></simpara>
  </listitem>
</varlistentry>


</variablelist>
<!-- Fim Paramètres Configuration -->

&conf-LSprofile;

&conf-subDn;

&conf-recoverPassword;

</sect3>
