Project

General

Profile

Development #53442

possibilité d'attribuer des rôles à un utilisateur se connectant via un IdP OIDC

Added by Frédéric Péters over 3 years ago. Updated about 2 years ago.

Status:
Fermé
Priority:
Normal
Category:
-
Target version:
-
Start date:
26 April 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

Description

Côté LDAP on a une possibilité de correspondance de groupes vers rôles (group_to_role_mapping), côté SAML des instructions d'affectation (A2_ATTRIBUTE_MAPPING avec dedans des "action": "toggle-role"), mais côté OIDC il me semble qu'on n'a rien.


Files

0008-auth_oidc-configure-claims-widget-through-subclass-5.patch (1.97 KB) 0008-auth_oidc-configure-claims-widget-through-subclass-5.patch Valentin Deniaud, 21 September 2022 12:47 PM
0001-authenticators-remove-obsolete-manager_form_class-53.patch (865 Bytes) 0001-authenticators-remove-obsolete-manager_form_class-53.patch Valentin Deniaud, 21 September 2022 12:47 PM
0004-auth_saml-switch-related-object-foreign-key-to-base-.patch (2.69 KB) 0004-auth_saml-switch-related-object-foreign-key-to-base-.patch Valentin Deniaud, 21 September 2022 12:47 PM
0006-auth_saml-move-add-role-action-to-authenticators-app.patch (7.8 KB) 0006-auth_saml-move-add-role-action-to-authenticators-app.patch Valentin Deniaud, 21 September 2022 12:47 PM
0007-auth_saml-move-role-choice-field-outside-of-module-5.patch (2.8 KB) 0007-auth_saml-move-role-choice-field-outside-of-module-5.patch Valentin Deniaud, 21 September 2022 12:47 PM
0005-auth_saml-move-related-object-code-to-authenticators.patch (23.8 KB) 0005-auth_saml-move-related-object-code-to-authenticators.patch Valentin Deniaud, 21 September 2022 12:47 PM
0010-auth_oidc-allow-adding-roles-on-login-53442.patch (4.12 KB) 0010-auth_oidc-allow-adding-roles-on-login-53442.patch Valentin Deniaud, 21 September 2022 12:47 PM
0002-auth_saml-move-model-form-parameters-to-class-53442.patch (2.39 KB) 0002-auth_saml-move-model-form-parameters-to-class-53442.patch Valentin Deniaud, 21 September 2022 12:47 PM
0009-auth_oidc-use-generic-related-object-code-53442.patch (24.9 KB) 0009-auth_oidc-use-generic-related-object-code-53442.patch Valentin Deniaud, 21 September 2022 12:47 PM
0003-auth_saml-genericize-related-object-code-53442.patch (24.5 KB) 0003-auth_saml-genericize-related-object-code-53442.patch Valentin Deniaud, 21 September 2022 12:47 PM

Associated revisions

Revision fc093735 (diff)
Added by Valentin Deniaud about 2 years ago

authenticators: remove obsolete manager_form_class (#53442)

Revision c12438b5 (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: move model form parameters to class (#53442)

Revision 2bd79c0b (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: genericize related object code (#53442)

Revision 700a5bb1 (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: switch related object foreign key to base model (#53442)

Revision b24fad1b (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: move related object code to authenticators app (#53442)

Revision ad2d35fe (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: move add role action to authenticators app (#53442)

Revision b524ae20 (diff)
Added by Valentin Deniaud about 2 years ago

auth_saml: move role choice field outside of module (#53442)

Revision cf5132d7 (diff)
Added by Valentin Deniaud about 2 years ago

auth_oidc: configure claims widget through subclass (#53442)

Revision 5e156b61 (diff)
Added by Valentin Deniaud about 2 years ago

auth_oidc: use generic related object code (#53442)

Revision d7212589 (diff)
Added by Valentin Deniaud about 2 years ago

auth_oidc: allow adding roles on login (#53442)

History

#5

Updated by Benjamin Dauvergne over 2 years ago

Ce ticket serait agréablement remplacé par le fait de finir #20690 qui concerne le fait d'affecter automatiquement des rôles aux utilisateurs membre d'une collectivité. Ici il suffirait de créer une OU Agent et d'y accrocher l'authentification OIDC et le mécanisme serait uniforme pour tous les moyens d'authentification. Et surtout ça vous obligera à créer des OUs Agent et ne plus mélanger les agents et les usagers ce qui est bien pour votre karma RGPD.

#8

Updated by Valentin Deniaud about 2 years ago

  • Assignee set to Valentin Deniaud
#9

Updated by Valentin Deniaud about 2 years ago

On a côté SAML 3 objets liés à l'authenticator (affecter un attribut, rechercher par attribut et ajouter un rôle), manipulés par les mêmes vues génériques locales au module auth_saml.

On a côté OIDC un objet lié, les claims, manipulés par des vues spécialisées locales au module auth_oidc.

Ici bêtement ajouter un deuxième objet lié OIDC pour l'ajout de rôle aurait conduit à dupliquer les vues spécialisées déjà présentes.

Plutôt que de faire ça, gros effort de factorisation, avec notamment :
  • 0003, rendre les vues génériques SAML encore plus génériques (enlever toute mention de SAML)
  • 0004, dernier bout du travail, splitté pour la clarté parce qu'il y a une migration
  • 0005, déplacement du code générique obtenu dans le module principal
  • 0006, tant qu'on y est, mutualisation du modèle d'ajout de rôle
  • 0009, utilisation des vues génériques côté OIDC pour la manipulation des claims
  • 0010, enfin le patch, tout bête.
#11

Updated by Benjamin Dauvergne about 2 years ago

Je relis.

#12

Updated by Benjamin Dauvergne about 2 years ago

  • Status changed from Solution proposée to Information nécessaire

Fonctionnellement ça m'a l'air tout ok, par contre tu supprimes/renommes des types d'évènement mais je ne vois pas de migration pour corriger les évènements existants. Ne faudrait-il pas renommer les instances de EventType voir migrer les Event liés si leur contenu a changé (je n'ai trop vérifié, le renommage suffira peut-être) ?

#13

Updated by Valentin Deniaud about 2 years ago

Ça fait un mois que les vues SAML existent, deux semaines pour OIDC, à mon avis il existe sur tout le SaaS 10 évènements concernés côté SAML et 0 pour OIDC.

Pour ces évènements le journal affiche « authenticator.saml.related_object.edit » au lieu du libellé attendu (pas de crash ni de donnée manquante, donc).

Les solutions par ordre de préférence :
  • Considérer que ce n'est pas grave (solution actuelle)
  • Laisser les fichier journal_event_types.py que j'ai viré
  • Coder un truc générique dans apps/journal/ pour pouvoir indiquer legacy_names = authenticator.saml.related_object.edit aux nouveaux EventType et que les anciens évènements soient rattachés à la volée aux nouveaux types dans la vue (dans l'idée que ça resservira un jour, aucune idée de la complexité)
  • Écrire une migration (soupir)
#14

Updated by Benjamin Dauvergne about 2 years ago

  • Status changed from Information nécessaire to Solution proposée

Valentin Deniaud a écrit :

Ça fait un mois que les vues SAML existent, deux semaines pour OIDC, à mon avis il existe sur tout le SaaS 10 évènements concernés côté SAML et 0 pour OIDC.

Pour ces évènements le journal affiche « authenticator.saml.related_object.edit » au lieu du libellé attendu (pas de crash ni de donnée manquante, donc).

Les solutions par ordre de préférence :
  • Considérer que ce n'est pas grave (solution actuelle)

Ok ta réponse me va, je fais deux/trois tests en live et je valide.

#15

Updated by Benjamin Dauvergne about 2 years ago

  • Status changed from Solution proposée to Solution validée
#16

Updated by Valentin Deniaud about 2 years ago

  • Status changed from Solution validée to Résolu (à déployer)
commit d7212589c26a898a57f1bd9a42c20a687fa0e586
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 15:38:41 2022 +0200

    auth_oidc: allow adding roles on login (#53442)

commit 5e156b616827aa9254796bcdfccf0d8ea95386c7
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 14:17:19 2022 +0200

    auth_oidc: use generic related object code (#53442)

commit cf5132d72f9a164ae4d8052d2341e9411358e2f7
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 14:00:42 2022 +0200

    auth_oidc: configure claims widget through subclass (#53442)

commit b524ae206f6d138db73cd76950f2aa038695ec53
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 14:10:08 2022 +0200

    auth_saml: move role choice field outside of module (#53442)

commit ad2d35fed53f8d207610e6aa1eb54930024f3271
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 16:38:46 2022 +0200

    auth_saml: move add role action to authenticators app (#53442)

commit b24fad1bd2922b2ae4eb904d75f3191c1b2aea18
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 12:08:19 2022 +0200

    auth_saml: move related object code to authenticators app (#53442)

commit 700a5bb196770a1dd132e26d4eb773e8f9be3555
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Sep 21 11:40:27 2022 +0200

    auth_saml: switch related object foreign key to base model (#53442)

commit 2bd79c0b810bb1a2ec20c07bf8e958286561d46f
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Sep 21 11:09:25 2022 +0200

    auth_saml: genericize related object code (#53442)

commit c12438b5ee630f13a72f3517b0825597e8d325c1
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 11:51:05 2022 +0200

    auth_saml: move model form parameters to class (#53442)

commit fc093735ba6d57d986ef2a7be6a14137839e626a
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Tue Sep 20 11:33:06 2022 +0200

    authenticators: remove obsolete manager_form_class (#53442)
#17

Updated by Transition automatique about 2 years ago

  • Status changed from Résolu (à déployer) to Solution déployée
#18

Updated by Transition automatique almost 2 years ago

Automatic expiration

Also available in: Atom PDF