Line 1:
Line 1:
+
<!-- BEGIN interlang links -->
+
<!-- Do NOT edit this section
+
Links below are automatically managed by PolyglotBot
+
You can edit links on the English source page : Authentication -->
+
[[en:Authentication]]
+
[[es:Autentificación]]
+
[[zh:认证]]
+
<!-- END interlang links -->
+
[[Category:Noyau]]
[[Category:Noyau]]
{{TemplateDocDev}}
{{TemplateDocDev}}
Line 17:
Line 26:
Le processus démarre par l'appel de la page que l'on souhaite voir. Par exemple, la page d'accueil htdocs/index.php. Mais ce n'est pas ce fichier qui assure la demande d'authentification. En fait toute page de Dolibarr inclut un fichier main.inc.php qui lui même inclut le fichier master.inc.php.
Le processus démarre par l'appel de la page que l'on souhaite voir. Par exemple, la page d'accueil htdocs/index.php. Mais ce n'est pas ce fichier qui assure la demande d'authentification. En fait toute page de Dolibarr inclut un fichier main.inc.php qui lui même inclut le fichier master.inc.php.
Nous avons donc:
Nous avons donc:
−
<source lang="php">
+
−
<mapage.php>
+
{{Template:CodeSampleForLoginProcess}}
−
<main.inc.php>
−
<master.inc.php>
−
#1#
−
</master.inc.php>
−
#2#
−
if (! isset($_SESSION["dol_login"]))
−
{
−
if (isset($_POST["username"]))
−
{
−
...
−
// if user and pass are ok, we set $login
−
$login=
−
}
−
if (! $login)
−
{
−
// We show login page
−
include_once(DOL_DOCUMENT_ROOT."/lib/security.lib.php");
−
dol_loginfunction($langs,$conf,$mysoc);
−
exit;
−
}
−
...
−
}
−
</main.inc.php>
−
#3#
−
</mapage.php>
−
</source>
Le #1# représente le chargement de tout un tas de librairie que nous utiliserons par la suite, ainsi que l'initialisation du contexte d'exécution du code PHP (langue, configuration, utilisateur vierge).
Le #1# représente le chargement de tout un tas de librairie que nous utiliserons par la suite, ainsi que l'initialisation du contexte d'exécution du code PHP (langue, configuration, utilisateur vierge).
Line 54:
Line 37:
Le #3# correspond à la vérification des permissions métiers et à l'affichage de la page si c'est ok. Voir la page See [[Permissions]] pour plus d'informations.
Le #3# correspond à la vérification des permissions métiers et à l'affichage de la page si c'est ok. Voir la page See [[Permissions]] pour plus d'informations.
−
= Les modules de login =
+
= Les mode d'authentification et modules de login =
+
+
L'appel de checkLoginPassEntity pour valider le couple utilisateur/mot de passe (ou uniquement l'utilisateur dans certains cas) appellera la fonction '''check_user_password_xxx''' d'un module de connexion. Le module de connexion appelé dépend du mode d'authentification défini dans votre fichier '''conf/conf.php'''.
−
Les modules de login sont les fichiers qui contiennent les fonctions qui contrôlent la validité d'un couple user/password.
+
Le fichier utilisé est nommé '''htdocs/core/login/functions_xxx.php''' avec la valeur '''xxx''' qui correspond à la valeur définie dans '''dolibarr_main_authentication''' dans le fichier de configuration '''conf/ conf.php'''.
−
Il y a un fichier par module. Chaque fichier assure un type de contrôle différent.
−
* Le fichier '''htdocs/core/login/functions_http.php''' contrôle la validité du couple user/mot de passe par une authentification de type http Basic.
−
* Le fichier '''htdocs/core/login/functions_ldap.php''' vérifie la validité d'un couple user/mot de passe dans un annuaire LDAP.
−
* Le fichier '''htdocs/core/login/functions_dolibarr.php''' vérifie la validité d'un couple user/mot de passe dans la base de donnée Dolibarr.
−
Chaque fichier contient en fait uniquement une fonction '''check_user_password_xxx''' mais Dolibarr ne va en utiliser qu'un. Ce sera celui dont la valeur '''xxx''' correspond a la valeur de la variable '''dolibarr_main_authentication''' du fichier '''conf/conf.php'''.
+
Voir [[Authentication,_SSO_and_SSL]] pour une liste des modes d'authentification (valeurs possibles pour 'xxx' et leur spécificité)
−
Dans ce fichier, Dolibarr sollicite la seule fonction qui s'y trouve en envoyant comme paramètres le user et mot de passe.La fonction renvoie vrai si le couple est valide.