Project

General

Profile

Revision ad86ea60

IDad86ea6070ea4ecd543bf4e73138b0615974d2b9
Parent e1cb8d71
Child bba06e79

Added by Francois POIROTTE almost 13 years ago

Améliorations autour de l'authentification.

Remplace le middleware d'authentification de repoze.who par notre propre
version.
Différences :
- Si une authentification externe a déjà eu lieu, elle ne court-circuite
pas entièrement le middleware. Les plugins challengers & mdproviders
sont tout de même exécutés.
- Il positionne la variable "vigilo.external_auth" dans l'environnement
de la requête à True si une authentification externe a eu lieu (ou à
False respectivement, si aucune authentification externe n'a eu lieu).

Les différents fichiers de configuration ont été mis à jour, ainsi que
les templates HTML et les contrôleurs/bibliothèques qui en dépendait.
Ils utilisent désormais le contenu de la variable d'environnement de
requête "vigilo.external_auth" pour adapter leur comportement.

L'option de configuration "external_auth" n'est plus utilisée (des
utilisateurs en authentification externe et en authentification interne
pourraient cohabiter simultanément dans le système).

La page de gestion du profil de l'utilisateur (dans VigiAdmin) est
toujours accessible, même lorsque l'utilisateur est connecté via un
mécanisme d'authentification externe.
L'idée est de permettre aux utilisateurs de définir un mot de passe de
secours qui leur permettra de se connecter même lorsque le mécanisme
d'authentification externe n'est pas disponible (ex: serveur Kerberos
injoignable).

Le script "vigilo-passwd" autorise la modification d'un compte dont le
mot de passe n'a pas encore été défini par son propriétaire (pour le
moment, un mot de passe est demandé à l'utilisateur, bien que celui-ci
ne soit pas réellement utilisé/vérifié).

Tout ce travail vise à préparer le terrain pour le ticket #883
concernant la gestion d'un mécanisme d'authentificaton de repli.

Change-Id: If7bc18eb00f107f143ec9586719f163dddfd48d1
Refs: #883.
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/376
Tested-by: Build system <>
Reviewed-by: Aurelien BOMPARD <>

View differences:

deployment/settings.ini.in
68 68
; "beaker.session.secret".
69 69
sa_auth.cookie_secret = vigilo
70 70

  
71
; Indique si un mécanisme d'authentification externe
72
; (ex : Kerberos) est en place ou non.
73
external_auth = False
74

  
75 71
; Fichier de configuration définissant la politique de gestion
76 72
; de l'authentification.
77 73
auth.config = %(here)s/who.ini
vigigraph/config/middleware.py
11 11
from pkg_resources import resource_filename, working_set
12 12
from paste.cascade import Cascade
13 13
from paste.urlparser import StaticURLParser
14
from repoze.who.plugins.testutil import make_middleware_with_config \
15
                                    as make_who_with_config
14
from vigilo.turbogears.repoze_who import make_middleware_with_config
16 15
from logging import getLogger
17 16

  
18 17
__all__ = ['make_app']
......
43 42
    app = make_base_app(global_conf, full_stack=full_stack, **app_conf)
44 43

  
45 44
    # Ajout du middleware d'authentification.
46
    app = make_who_with_config(
45
    app = make_middleware_with_config(
47 46
        app, global_conf,
48 47
        app_conf.get('auth.config', 'who.ini'),
49 48
        None,

Also available in: Unified diff