Fonctionnalité #14635
ouvertAuthentification LemonLDAP des utilisateurs
Description
Client : TCO
LemonLDAP fournit dans l’entête HTTP lors de la connexion à MaarchCourrier un header REMOTE_USER avec pour valeur le nom d’utilisateur.
Une légère adaptation du code a été nécessaire pour faire fonctionner cette connexion.
Les modifications effectuées :
fichier custom/cs_maarch/apps/maarch_entreprise/xml/login_method.xml : ajout de la section suivante, pour toutes autres méthodes, ENABLED est à false.
<METHOD>
<ID>lemonldap</ID>
<NAME>LemonLDAP</NAME>
<SCRIPT>lemonLDAPConnect.php</SCRIPT>
<ENABLED>true</ENABLED>
</METHOD>
nouveau fichier custom/cs_maarch/apps/maarch_entreprise/lemonLDAPConnect.php :
<?php
$login = getallheaders()['REMOTE_USER'];
if (!empty($login)) {
$password = 'aFakePass';
require_once('core/class/class_core_tools.php');
require_once 'core/class/class_security.php';
require_once 'core/class/class_db_pdo.php';
$core = new core_tools();
$sec = new security();
$database = new Database();
$stmt = $database->query("SELECT 1 FROM users WHERE user_id ILIKE ?", array($login));
$result = $stmt->fetch();
if ($result) {
$_SESSION['error'] = '';
$res = $sec->login($login, $password, 'shibboleth');
$_SESSION['user'] = $res['user'];
if (empty($_SESSION['error'])) {
$_SESSION['error'] = $res['error'];
}
if ($res['error'] == '') {
\SrcCore\models\AuthenticationModel::setCookieAuth(['userId' => $login]);
//login OK
$trace = new history();
header('location: ' . $_SESSION['config']['businessappurl']. $res['url']);
exit();
} else {
$_SESSION['error'] = $res['error'];
echo $_SESSION['error'];
exit;
}
} else {
$_SESSION['error'] = _USER_NOT_EXIST . ' ' . $login;
echo $_SESSION['error'];
exit;
}
}
Ce fichier est une copie légèrement modifiée de shibbolethConnect.php, simplement en mettant $login = getallheaders()['REMOTE_USER']; au lieu de $login = $_SERVER['REMOTE_USER']; et en supprimant la vérification $_SERVER['AUTH_TYPE'] = 'shibboleth'
D’ailleurs ici pourquoi n’avoir pas mis $_SERVER['AUTH_TYPE'] == 'shibboleth' avec double égal ? C’est le cas dans le fichier shibbolethConnect.php sur la forge, est-ce une faute de frappe ?
Est-il possible d’intégrer ce code à Maarch Courrier ?
Mis à jour par Support Maarch il y a plus de 4 ans
- Statut changé de A qualifier à A traiter
Mis à jour par Emmanuel DILLARD il y a plus de 4 ans
- Statut changé de A traiter à Etude planifiée
Mis à jour par Emmanuel DILLARD il y a plus de 4 ans
- Statut changé de Etude planifiée à En attente financement
- Assigné à changé de EDI PO à Quentin RIBAC
- Version cible changé de 20.03.XX à 20.10 (Fin de vie)
Mis à jour par Emmanuel DILLARD il y a plus de 4 ans
- Priorité changé de 0-Bloquant à 2-Sérieux
Mis à jour par Emmanuel DILLARD il y a environ 4 ans
- Version cible changé de 20.10 (Fin de vie) à Inscription Backlog Courrier
Mis à jour par Emmanuel DILLARD il y a presque 4 ans
- Statut changé de En attente financement à R&D - A étudier
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Statut changé de R&D - A étudier à En attente financement
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Projet changé de 298 à Backlog Courrier
- Version cible changé de Inscription Backlog Courrier à Inscription Backlog
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Assigné à changé de EDI PO à Emmanuel DILLARD
Mis à jour par Emmanuel DILLARD il y a plus de 3 ans
- Assigné à
Emmanuel DILLARDsupprimé
Mis à jour par Ines MKACHER il y a presque 3 ans
- Version cible changé de Inscription Backlog à Develop
Mis à jour par Emmanuel DILLARD il y a environ 2 ans
- Version cible changé de Develop à Inscription Backlog
Mis à jour par Emmanuel DILLARD il y a environ 2 ans
- Statut changé de En attente financement à R&D - A étudier
Mis à jour par Emmanuel DILLARD il y a 2 mois
- Version cible
Inscription Backlogsupprimé