Projet

Général

Profil

Actions

Fonctionnalité #14635

ouvert

Authentification LemonLDAP des utilisateurs

Ajouté par Quentin RIBAC il y a plus de 4 ans. Mis à jour il y a 2 mois.

Statut:
R&D - A étudier
Priorité:
2-Sérieux
Assigné à:
-
Version cible:
-
Début:
19/08/2020
Echéance:

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 Quentin RIBAC il y a plus de 3 ans

  • Assigné à Quentin RIBAC supprimé

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é à mis à EDI PO

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 DILLARD supprimé

Mis à jour par Emmanuel DILLARD il y a environ 3 ans

  • Assigné à mis à Ines MKACHER

Mis à jour par Ines MKACHER il y a presque 3 ans

  • Version cible changé de Inscription Backlog à Develop

Mis à jour par Ines MKACHER il y a plus de 2 ans

  • Assigné à Ines MKACHER supprimé

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 Backlog supprimé
Actions

Formats disponibles : Atom PDF