Projet

Général

Profil

Tâche #31523

Scénario #31512: Gérer le changement de mot de passe des utilisateurs depuis les SSO web

LemonLDAP::NG: tester l’implémentation d’un module d’authentification ScribeAD

Ajouté par Daniel Dehennin il y a plus de 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
12/01/2021
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Description

  • Ce module doit hériter du module AD
  • Le DN de l’utilisateur doit être recherché dans le Samba

Historique

#1 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Daniel Dehennin

#2 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • % réalisé changé de 0 à 80

Un module dédié pour l’authentification permet de forcer la recherche du DN sur l’active directory :

# Auth::ScribeAD inherits from Auth::AD. It does not use the user DN
# from UserDB and force a DN lookup against AD itself

package Lemonldap::NG::Portal::Auth::ScribeAD;

use strict;
use Mouse;

our $VERSION = '2.0.6';

extends 'Lemonldap::NG::Portal::Auth::AD';

# PROPERTIES

# RUNNING METHODS

sub authenticate {
    my ( $self, $req ) = @_;

    if ( $req->data->{ad_dn} ) {
        $self->logger->debug(__PACKAGE__ . " use saved AD data");
        $req->data->{dn} = $req->data->{ad_dn};
        $req->data->{ldapentry} = $req->data->{ad_ldapentry};
    }
    else {
        $self->logger->debug(__PACKAGE__ . " backup UserDB data");
        $req->data->{ldap_dn} = $req->data->{dn};
        $req->data->{ldap_ldapentry} = $req->data->{ldapentry};
        delete $req->data->{dn} ;
        delete $req->data->{ldapentry} ;
    }

    my $res = $self->SUPER::authenticate($req);

    unless ( $req->data->{ad_dn} ) {
        $req->data->{ad_dn} = $req->data->{dn};
        $req->data->{ad_ldapentry} = $req->data->{ldapentry};
    }

    $self->logger->debug(__PACKAGE__ . " restore UserDB data");
    $req->data->{dn} = $req->data->{ldap_dn};
    $req->data->{ldapentry} = $req->data->{ldap_ldapentry};

    return $res;
}

1;

Le changement de mot de passe est bien détecté mais le formulaire pour changer le mot de passe n’est pas affiché. J’attends un retour de la communauté.

#3 Mis à jour par Daniel Dehennin il y a plus de 3 ans

Le soucis viens d’un bug de la version 2.0.7 qui est corrigé en 2.0.9.

Pour le changement de mot de passe, on me propose de tester un module à venir en 2.0.10 (Lemonldap::NG::Portal::Password::Combination)

#4 Mis à jour par Daniel Dehennin il y a environ 3 ans

  • Statut changé de En cours à Résolu
  • % réalisé changé de 80 à 100

J’ai un module fonctionnel. Il reste à faire l’intégration.

#5 Mis à jour par Daniel Dehennin il y a environ 3 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF