Project

General

Profile

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

Added by Daniel Dehennin over 3 years ago. Updated about 3 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
01/12/2021
Due date:
% Done:

100%

Remaining (hours):
0.0

Description

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

History

#1 Updated by Daniel Dehennin over 3 years ago

  • Status changed from Nouveau to En cours
  • Assigned To set to Daniel Dehennin

#2 Updated by Daniel Dehennin over 3 years ago

  • % Done changed from 0 to 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 Updated by Daniel Dehennin over 3 years ago

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 Updated by Daniel Dehennin about 3 years ago

  • Status changed from En cours to Résolu
  • % Done changed from 80 to 100

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

#5 Updated by Daniel Dehennin about 3 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

Also available in: Atom PDF