LSauthMethod::HTTP : Add parameter to disable checking login/password by LDAP auth challenge

This commit is contained in:
Benjamin Renard 2016-07-21 11:24:51 +02:00
parent bf6ebf171d
commit e294fb123b
3 changed files with 83 additions and 8 deletions

View file

@ -4,15 +4,47 @@
via les variables d'environnements définies suite à une authentification via les variables d'environnements définies suite à une authentification
gérée par le serveur HTTP. En &php;, ces informations sont consultables gérée par le serveur HTTP. En &php;, ces informations sont consultables
via les variables <literal>$_SERVER['PHP_AUTH_USER']</literal> et via les variables <literal>$_SERVER['PHP_AUTH_USER']</literal> et
<literal>$_SERVER['PHP_AUTH_PW']</literal>. Cette &LSauthMethod; n'utilise <literal>$_SERVER['PHP_AUTH_PW']</literal>. Si la variable
ici que la variable <literal>$_SERVER['PHP_AUTH_USER']</literal>. Si <literal>$_SERVER['PHP_AUTH_USER']</literal> est présente, une recherche
celle-ci est présente, une recherche dans l'annuaire est effectué pour dans l'annuaire est effectué pour trouver l'utilisateur correspondant.
trouver l'utilisateur correspondant. L'authentification réussi uniquement L'authentification réussie uniquement si un et un seul utilisateur est
si un et un seul utilisateur est retourné par la recherche.</para> retourné par la recherche et si une authentification auprès de l'annuaire
LDAP réussie à l'aide du DN de l'objet LDAP trouvé et du mot de passe issu
de la variable <literal>$_SERVER['PHP_AUTH_PW']</literal>.</para>
<note><simpara>La recherche est effectuée sur une égalité <note><simpara>La recherche de l'utisateur est effectuée sur une égalité
parfaite du RDN ou en utilisant le &LSformat; de fitre de recherche parfaite du RDN ou en utilisant le &LSformat; de fitre de recherche
<literal>authObjectFilter</literal> défini dans la <literal>authObjectFilter</literal> défini dans la
<link linkend='config-srv-ldap'>configuration du serveur LDAP</link> <link linkend='config-srv-ldap'>configuration du serveur LDAP</link>
</simpara></note> </simpara></note>
<para>Cette librairie peut être configurée en éditant le fichier de
configiration
<literal>conf/LSauth/config.LSauthMethod_HTTP.php</literal>.</para>
<programlisting linenumbering="unnumbered">
<citetitle>Structure du fichier</citetitle>/*
*****************************************************
* Configuration of the HTTP authentification support *
*****************************************************
*/
// Don't check HTTP server's login/password by LDAP authentication challenge
//define('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE',true);
</programlisting>
<!-- Début Paramètres Configuration -->
<variablelist>
<title>Paramètres de configuration</title>
<varlistentry>
<term>LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE</term>
<listitem>
<simpara>Permet de désactiver le test d'authentification auprès de
l'annuaire LDAP. Pour cela, cette constante doit être définie et
valoir <literal>True</literal>.</simpara>
</listitem>
</varlistentry>
</variablelist>
</sect2> </sect2>

View file

@ -0,0 +1,30 @@
<?php
/*******************************************************************************
* Copyright (C) 2007 Easter-eggs
* http://ldapsaisie.labs.libre-entreprise.org
*
* Author: See AUTHORS file in top-level directory.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
******************************************************************************/
/*
***********************************************************
* Configuration of the HTTP authentification support *
***********************************************************
*/
// Don't check HTTP server's login/password by LDAP authentication challenge
//define('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE',true);

View file

@ -53,6 +53,19 @@ class LSauthMethod_HTTP extends LSauthMethod_basic {
return; return;
} }
} /**
* Check authentication
*
* @retval LSldapObject|false The LSldapObject of the user authificated or false
*/
public function authenticate() {
if ( (defined('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE')) && (constant('LSAUTHMETHOD_HTTP_TRUST_WITHOUT_PASSWORD_CHALLENGE') === True)) {
// Return authObject without checking login/password by LDAP auth challenge
return LSauthMethod :: authenticate();
}
else {
return parent :: authenticate();
}
}
?> }