lemonldap-ng/po-doc/fr/pages/documentation/current/authdbi.html
Xavier Guimard 43fbe42b7e Update doc
2017-02-22 12:41:23 +00:00

312 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<title>documentation:2.0:authdbi</title><!-- //if:usedebianlibs
<link rel="stylesheet" type="text/css" href="/javascript/bootstrap/css/bootstrap.min.css" />
//elsif:useexternallibs
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"></script>
//elsif:cssminified
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.min.css" />
//else --><!-- //endif -->
<meta name="generator" content="DokuWiki"/>
<meta name="robots" content="index,follow"/>
<meta name="keywords" content="documentation,2.0,authdbi"/>
<link rel="search" type="application/opensearchdescription+xml" href="lib/exe/opensearch.html" title="LemonLDAP::NG"/>
<link rel="start" href="authdbi.html"/>
<link rel="contents" href="authdbi.html" title="Sitemap"/>
<link rel="stylesheet" type="text/css" href="lib/exe/css.php.t.bootstrap3.css"/>
<link rel="stylesheet" type="text/css" href="/static/bwr/bootstrap/dist/css/bootstrap.css" />
<script type="text/javascript">/*<![CDATA[*/var NS='documentation:2.0';var JSINFO = {"id":"documentation:2.0:authdbi","namespace":"documentation:2.0"};
/*!]]>*/</script>
<script type="text/javascript" charset="utf-8" src="lib/exe/js.php.t.bootstrap3.js"></script><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery/jquery.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.min.js"></script>
//else -->
<script type="text/javascript" src="/static/bwr/jquery/dist/jquery.js"></script><!-- //endif --><!-- //if:usedebianlibs
<script type="text/javascript" src="/javascript/jquery-ui/jquery-ui.min.js"></script>
//elsif:useexternallibs
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
//elsif:jsminified
<script type="text/javascript" src="/lib/scripts/jquery-ui.min.js"></script>
//else -->
<script type="text/javascript" src="/lib/scripts/jquery-ui.js"></script><!-- //endif -->
</head>
<body>
<div class="dokuwiki export container"><!-- TOC START -->
<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>
<ul class="toc">
<li class="level1"><div class="li"><a href="#presentation">Présentation</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#drivers">Drivers</a></div></li>
<li class="level2"><div class="li"><a href="#schema">Schéma</a></div>
<ul class="toc">
<li class="level3"><div class="li"><a href="#example_1two_tables">Exemple 1 : deux tables</a></div></li>
<li class="level3"><div class="li"><a href="#example_2single_table">Example 2: single table</a></div></li>
</ul>
</li>
<li class="level2"><div class="li"><a href="#sql">SQL</a></div></li>
</ul>
</li>
<li class="level1"><div class="li"><a href="#configuration">Configuration</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#authentication_level">Niveau d'authentification</a></div></li>
<li class="level2"><div class="li"><a href="#exported_variables">Variables exportées</a></div></li>
<li class="level2"><div class="li"><a href="#connection">Connexion</a></div></li>
<li class="level2"><div class="li"><a href="#schema1">Schéma</a></div></li>
<li class="level2"><div class="li"><a href="#password">Mot-de-passe</a></div></li>
</ul></li>
</ul>
</div>
</div><!-- TOC END -->
<h1 class="sectionedit1" id="databases">Bases de données</h1>
<div class="level1">
<div class="table sectionedit2"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0 centeralign"> Authentification </th><th class="col1 centeralign"> Utilisateurs </th><th class="col2 centeralign"> Mot-de-passe </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0 centeralign"></td><td class="col1 centeralign"></td><td class="col2 centeralign"></td>
</tr>
</table></div><!-- EDIT2 TABLE [26-95] -->
</div><!-- EDIT1 SECTION "Databases" [1-96] -->
<h2 class="sectionedit3" id="presentation">Présentation</h2>
<div class="level2">
</div><!-- EDIT3 SECTION "Presentation" [97-122] -->
<h3 class="sectionedit4" id="drivers">Drivers</h3>
<div class="level3">
<p>
<abbr title="LemonLDAP::NG">LL::NG</abbr> peut utiliser de nombreuses bases de données comme backend d'authentification, d'utilisateurs et de mots de passe :
</p>
<ul>
<li class="level1"><div class="li"> MySQL</div>
</li>
<li class="level1"><div class="li"> PostGreSQL</div>
</li>
<li class="level1"><div class="li"> Oracle</div>
</li>
<li class="level1"><div class="li"></div>
</li>
</ul>
<p>
Ainsi, tout <a href="http://search.cpan.org/search?query=DBD%3A%3A&amp;mode=module" class="urlextern" title="http://search.cpan.org/search?query=DBD%3A%3A&amp;mode=module" rel="nofollow">driver Perl DBD</a> peut être utilisé.
</p>
</div><!-- EDIT4 SECTION "Drivers" [123-371] -->
<h3 class="sectionedit5" id="schema">Schéma</h3>
<div class="level3">
<p>
<abbr title="LemonLDAP::NG">LL::NG</abbr> peut utiliser deux tables :
</p>
<ul>
<li class="level1"><div class="li"> La table d'authentification : où les logins and et mots-de-passe sont stockés</div>
</li>
<li class="level1"><div class="li"> La table utilisateurs : où les données utilisateurs sont stockées (mail, nom, etc.)</div>
</li>
</ul>
<div class="notetip">Les tables d'authentification et utilisateurs peuvent être confondues.
</div>
<p>
Le mot-de-passe peut être stocké en clair ou encodé avec une méthode SQL standard :
</p>
<ul>
<li class="level1"><div class="li"> SHA</div>
</li>
<li class="level1"><div class="li"> SHA1</div>
</li>
<li class="level1"><div class="li"> MD5</div>
</li>
</ul>
</div>
<h4 id="example_1two_tables">Exemple 1 : deux tables</h4>
<div class="level4">
</div>
<h5 id="authentication_table">Table d'authentification</h5>
<div class="level5">
<div class="table sectionedit6"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0"> id </th><th class="col1"> login </th><th class="col2"> password </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0"> 0 </td><td class="col1"> coudot </td><td class="col2"> 1f777a6581e478499f4284e54fe2d4a4e513dfff </td>
</tr>
<tr class="row2 roweven">
<td class="col0"> 1 </td><td class="col1"> xguimard </td><td class="col2"> a15a18c8bb17e6f67886a9af1898c018b9f5a072 </td>
</tr>
<tr class="row3 rowodd">
<td class="col0"> 2 </td><td class="col1"> tchemineau </td><td class="col2"> 1f777a6581e478499f4284e54fe2d4a4e513dfff </td>
</tr>
</table></div><!-- EDIT6 TABLE [772-977] -->
</div>
<h5 id="user_table">Table utilisateurs</h5>
<div class="level5">
<div class="table sectionedit7"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0"> id </th><th class="col1"> user </th><th class="col2"> nom </th><th class="col3"> mail </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0"> 0 </td><td class="col1"> coudot </td><td class="col2"> Clément OUDOT </td><td class="col3"> coudot@example.com </td>
</tr>
<tr class="row2 roweven">
<td class="col0"> 1 </td><td class="col1"> tchemineau </td><td class="col2"> Thomas CHEMINEAU </td><td class="col3"> tchemineau@example.com </td>
</tr>
<tr class="row3 rowodd">
<td class="col0"> 2 </td><td class="col1"> xguimard </td><td class="col2"> Xavier GUIMARD </td><td class="col3"> xguimard@example.com </td>
</tr>
</table></div><!-- EDIT7 TABLE [997-1197] -->
</div>
<h4 id="example_2single_table">Example 2: single table</h4>
<div class="level4">
<div class="table sectionedit8"><table class="inline table table-bordered table-striped">
<thead>
<tr class="row0 roweven">
<th class="col0"> id </th><th class="col1"> user </th><th class="col2"> password </th><th class="col3"> nom </th><th class="col4"> mail </th>
</tr>
</thead>
<tr class="row1 rowodd">
<td class="col0"> 0 </td><td class="col1"> coudot </td><td class="col2"> 1f777a6581e478499f4284e54fe2d4a4e513dfff </td><td class="col3"> Clément OUDOT </td><td class="col4"> coudot@example.com </td>
</tr>
<tr class="row2 roweven">
<td class="col0"> 1 </td><td class="col1"> tchemineau </td><td class="col2"> 1f777a6581e478499f4284e54fe2d4a4e513dfff </td><td class="col3"> Thomas CHEMINEAU </td><td class="col4"> tchemineau@example.com </td>
</tr>
<tr class="row3 rowodd">
<td class="col0"> 2 </td><td class="col1"> xguimard </td><td class="col2"> a15a18c8bb17e6f67886a9af1898c018b9f5a072 </td><td class="col3"> Xavier GUIMARD </td><td class="col4"> xguimard@example.com </td>
</tr>
</table></div><!-- EDIT8 TABLE [1232-1572] -->
</div><!-- EDIT5 SECTION "Schema" [372-1573] -->
<h3 class="sectionedit9" id="sql">SQL</h3>
<div class="level3">
<p>
<abbr title="LemonLDAP::NG">LL::NG</abbr> exécutera quelques requêtes SQL :
</p>
<ul>
<li class="level1"><div class="li"> Authentification : selectionne la ligne de la table d'authentification contenant l'utilisateur et le mot-de-passe</div>
</li>
<li class="level1"><div class="li"> Recherche de l'utilisateur : selectionne la ligne de la table utilisateurs correspondant à l'utilisateur</div>
</li>
<li class="level1"><div class="li"> Changement de mot-de-passe : met à jour le champ mot-de-passe de la table d'authentification correspondant à l'utilisateur</div>
</li>
</ul>
</div><!-- EDIT9 SECTION "SQL" [1574-1847] -->
<h2 class="sectionedit10" id="configuration">Configuration</h2>
<div class="level2">
<p>
Dans le manager, aller dans <code>Paramètres généraux</code> &gt; <code>Modules d'authentification</code> et choisir "base de données" (<abbr title="Database Interface">DBI</abbr>) pour les modules authentification, utilisateurs et/ou mots-de-passe.
</p>
</div><!-- EDIT10 SECTION "Configuration" [1848-2022] -->
<h3 class="sectionedit11" id="authentication_level">Niveau d'authentification</h3>
<div class="level3">
<p>
Le niveau d'authentification accordé aux utilisateurs authentifiés par ce module.
</p>
<div class="noteimportant">Comme <abbr title="Database Interface">DBI</abbr> est un module de type login/mot-de-passe, le niveau d'authentification peut être :<ul>
<li class="level1"><div class="li"> augmenté (+1) si le portail est protégé par SSL (HTTPS)</div>
</li>
<li class="level1"><div class="li"> diminué (-1) si l'autocompletion est autorisée sur le portail (voir <a href="portalcustom.html" class="wikilink1" title="documentation:2.0:portalcustom">Personnalisation du portail</a>)</div>
</li>
</ul>
</div>
</div><!-- EDIT11 SECTION "Authentication level" [2023-2387] -->
<h3 class="sectionedit12" id="exported_variables">Variables exportées</h3>
<div class="level3">
<p>
Liste de colonnes à interroger pour trouver la session utilisateur. Voir aussi la <a href="exportedvars.html" class="wikilink1" title="documentation:2.0:exportedvars">configuration des variables exportées</a>.
</p>
</div><!-- EDIT12 SECTION "Exported variables" [2388-2525] -->
<h3 class="sectionedit13" id="connection">Connexion</h3>
<div class="level3">
<div class="notetip">Les paramètres de connexion peuvent être configurés différemment pour les processus d'authentification et de recherche d'utilisateur. This allows one to use different databases for these process. Par défaut, si les paramètres de processus de connexion utilisateur sont vides , ceux d'authentification seront utilisés.
</div><ul>
<li class="level1"><div class="li"> <strong>Chaîne</strong> : chaîne <abbr title="Database Interface">DBI</abbr>, contenant le nom de driver et le nom de la base de données (par exemple : dbi:mysql:database=lemonldapng;host=localhost).</div>
</li>
<li class="level1"><div class="li"> <strong>Utilisateur</strong> : compte de connexion</div>
</li>
<li class="level1"><div class="li"> <strong>Mot-de-passe</strong> : mot-de-passe du compte de connexion</div>
</li>
</ul>
</div><!-- EDIT13 SECTION "Connection" [2526-3044] -->
<h3 class="sectionedit14" id="schema1">Schéma</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> <strong>Table d'authentification</strong> : nom de la table d'authentification</div>
</li>
<li class="level1"><div class="li"> <strong>Table utilisateurs</strong> : nom de la table utilisateurs</div>
</li>
<li class="level1"><div class="li"> <strong>Nom du champ de compte</strong> : nom de la colonne de la table d'authentification contenant le login</div>
</li>
<li class="level1"><div class="li"> <strong>Nom du champ mot-de-passe</strong> : nom de la colonne de la table d'authentification contenant le mot-de-passe</div>
</li>
<li class="level1"><div class="li"> <strong>Nom du chmap mail</strong> : nom de la colonne de la table d'authentification contenant le mail (pour la réinitialisation du mot-de-passe)</div>
</li>
<li class="level1"><div class="li"> <strong>Nom du champ login dans la table utilisateur</strong> : nom de la colonne de la table utilisateur contenant le login</div>
</li>
</ul>
</div><!-- EDIT14 SECTION "Schema" [3045-3488] -->
<h3 class="sectionedit15" id="password">Mot-de-passe</h3>
<div class="level3">
<ul>
<li class="level1"><div class="li"> <strong>Schéma de hachage</strong> : méthode SQL pour hacher les mots-de-passe. Peut être vide pour le stockage des mots-de-passe en clair.</div>
</li>
</ul>
</div><!-- EDIT15 SECTION "Password" [3489-] -->
</div>
</body>
</html>