Projet

Général

Profil

Tâche #9105

Distribution EOLE - Scénario #9028: Correctif 2.3.14 stable

Erreur de comportement introduite dans la dernière mise à jour (authentification OTP)

Ajouté par Bruno Boiget il y a plus de 9 ans. Mis à jour il y a plus de 9 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Début:
01/10/2014
Echéance:
10/10/2014
% réalisé:

100%

Temps estimé:
1.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Problème remonté par Christophe Léon suite au passage du serveur Seshat de la réunion en version 2.3.14 :

Ce matin après MAJ du eole-sso la connexion OTP ne fonctionne plus
après 4 heures de fouille... j'arrive à la conclusion suivante

le pb ne vient pas de OTP, il me retourne bien AUTH SUCCESS

Je dirais plutot de la fonction get_attribute_set de authserver.py

Lors d'une connexion OTP

Le trace me donne l'appel suivant
Oct  1 09:46:25 seshat eolesso: [-]  DEBUG -> entering get_attribute_set((<authserver.SSOSessionManager object at 0x3e2f790>, 'urn:fi:ac-reunion:et-seshat.ac-reunion.fr:1.0', 'ldap.ac-reunion.fr:o=gouv,c=fr'), {})

Ce dernier me retourne
{'optional_attrs': {},
  'branch_attrs': {'UAI': 'ou', 'rne': 'ou', 'RNE': 'ou', 'ENTPersonStructRattach': 'ou'},
  'user_attrs': {'FederationKey': 'FederationKey', 'uid': 'uid'}}

EN analysant le code
AVANT
 if idp_ident == config.IDP_IDENTITY:
            # cas particulier : utilisation pour retrouver un utilisateur local
            # (si recherche suite à une méthode d'authentification non LDAP)
            return {'user_attrs':{'uid':'uid'}, 'branch_attrs':config.SEARCH_BASE_ATTRS, 'optional_attrs':{}}

MAINTENANT
    il n'y a plus de return {'user_attrs':{'uid':'uid'}, 'branch_attrs':config.SEARCH_BASE_ATTRS, 'optional_attrs':{}}

    mais un calcul qui me retourne 'user_attrs': {'FederationKey': 'FederationKey', 'uid': 'uid'}}

La ou ca coince c'est dans le authenticate_federated_user ou il y a ce test
if search_attrs and (len(search_attrs) == len(attr_set['user_attrs'])):

du coup search_attrs = {'uid': u'cleon'}
et attr_set[ 'user_attrs' ] = {'FederationKey': 'FederationKey', 'uid': 'uid'}

Pourquoi lors de OTP on va regarder les attributs de fédération SAML ?

Le return dans le cas où idp_ident == config.IDP_IDENTITY: a effectivement été oublié lors des corrections pour la gestion d'attributs de fédération 'externes' (cf demande liée)


Demandes liées

Lié à EoleSSO - Tâche #7828: jeu d'attribut non mis à jour en cas d'utilisation d'attributs externe (mode fournisseur de service) Fermé

Révisions associées

Révision b15df810 (diff)
Ajouté par Bruno Boiget il y a plus de 9 ans

Correction de get_attribute_set dans le cas d'une authentification OTP

Fixes #9105 @1h

Historique

#1 Mis à jour par Bruno Boiget il y a plus de 9 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#2 Mis à jour par Bruno Boiget il y a plus de 9 ans

  • Description mis à jour (diff)
  • Restant à faire (heures) changé de 1.0 à 0.5

#3 Mis à jour par Bruno Boiget il y a plus de 9 ans

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

paquet compilé en version stable et validé par Christophe Léon.

Formats disponibles : Atom PDF