Project

General

Profile

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)

Added by Bruno Boiget over 6 years ago. Updated over 6 years ago.

Status:
Fermé
Priority:
Haut
Assigned To:
Start date:
10/01/2014
Due date:
10/10/2014
% Done:

100%

Estimated time:
1.00 h
Spent time:
Remaining (hours):
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)


Related issues

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

Associated revisions

Revision b15df810 (diff)
Added by Bruno Boiget over 6 years ago

Correction de get_attribute_set dans le cas d'une authentification OTP

Fixes #9105 @1h

History

#1 Updated by Bruno Boiget over 6 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#2 Updated by Bruno Boiget over 6 years ago

  • Description updated (diff)
  • Remaining (hours) changed from 1.0 to 0.5

#3 Updated by Bruno Boiget over 6 years ago

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

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

Also available in: Atom PDF