Project

General

Profile

Development #35302

auth_saml : avoir une action de mapping pour ajouter/retirer un rôle

Added by Thomas Noël about 1 month ago. Updated 12 days ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
08 Aug 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Lorsqu'Authentic est SP d'un IdP tiers, il serait bien qu'on ai la possibilité d'avoir un set_mandatory_roles comme ce qui existe pour la synchro LDAP.

Quelque chose qui permette une configuration de l'IdP du genre :

  "MELLON_IDENTITY_PROVIDERS": [
    {
      "METADATA": "/var/lib/authentic2-multitenant/tenants/whatever.test.entrouvert.org/idp.xml",
      "PROVISION": true,
      "SET_MANDATORY_ROLES": ["Agent"]     <-- et tous les comptes qui se logent par cet IdP gagnent ce rôle
      ...
    }

0004-auth_saml-add-more-mapping-actions-in-A2_ATTRIBUTE_M.patch View (14.5 KB) Benjamin Dauvergne, 09 Aug 2019 12:20 PM

0001-log_filters-get-user-and-ip-from-record-if-present-3.patch View (1.86 KB) Benjamin Dauvergne, 09 Aug 2019 12:20 PM

0003-utils-add-module-to-evaluate-condition-expressions-s.patch View (9.33 KB) Benjamin Dauvergne, 09 Aug 2019 12:20 PM

0002-create-authentic2.utils-package-35302.patch View (978 Bytes) Benjamin Dauvergne, 09 Aug 2019 12:20 PM

0004-auth_saml-add-more-mapping-actions-in-A2_ATTRIBUTE_M.patch View (14.5 KB) Benjamin Dauvergne, 09 Aug 2019 02:39 PM

0001-log_filters-get-user-and-ip-from-record-if-present-3.patch View (1.86 KB) Benjamin Dauvergne, 09 Aug 2019 02:39 PM

0003-utils-add-module-to-evaluate-condition-expressions-s.patch View (9.33 KB) Benjamin Dauvergne, 09 Aug 2019 02:39 PM

0002-create-authentic2.utils-package-35302.patch View (3.97 KB) Benjamin Dauvergne, 09 Aug 2019 02:39 PM

0004-auth_saml-add-more-mapping-actions-in-A2_ATTRIBUTE_M.patch View (14.5 KB) Benjamin Dauvergne, 19 Aug 2019 04:49 PM

0001-log_filters-get-user-and-ip-from-record-if-present-3.patch View (1.86 KB) Benjamin Dauvergne, 19 Aug 2019 04:49 PM

0003-utils-add-module-to-evaluate-condition-expressions-s.patch View (9.34 KB) Benjamin Dauvergne, 19 Aug 2019 04:49 PM

0002-create-authentic2.utils-package-35302.patch View (3.97 KB) Benjamin Dauvergne, 19 Aug 2019 04:49 PM

Associated revisions

Revision 0f17a562 (diff)
Added by Benjamin Dauvergne 28 days ago

log_filters: get user and ip from record if present (#35302)

Revision 5cb84716 (diff)
Added by Benjamin Dauvergne 28 days ago

create authentic2.utils package (#35302)

Revision 94486a72 (diff)
Added by Benjamin Dauvergne 28 days ago

utils: add module to evaluate condition expressions safely (#35302)

Revision 40307f51 (diff)
Added by Benjamin Dauvergne 28 days ago

auth_saml: add more mapping actions in A2_ATTRIBUTE_MAPPING (#35302)

History

#2 Updated by Benjamin Dauvergne about 1 month ago

  • Assignee set to Benjamin Dauvergne
  • Subject changed from adapter mellon: avoir la possibilité d'imposer des rôles (set_mandatory_roles) to auth_saml : avoir la possibilité d'imposer des rôles (set_mandatory_roles)

Ok mais ça doit s'appeler A2_SET_MANDATORY_ROLES pour faire propre.

#3 Updated by Benjamin Dauvergne about 1 month ago

Bon plutôt que d'ajouter un nouveau setting j'ai ajouté de nouvelles actions.

#4 Updated by Benjamin Dauvergne about 1 month ago

Le patch 0001 c'est pour que le filtre de log de base dans A2 soit plus proche de celui de hobo (notamment en pouvant poser directement un user dans logger.log().

Le 0002/0003 ça introduit un premier validateur d'expression pour des conditions simples qui ne peuvent pas créer de DOS ou de trou de sécu (normalement), pour l'instant je n'utiliser que dans de la config mais ça sera utiliser dans les modèles bientôt. Au passage je déplacer utils pour le découper dans le futur.

Le 0004 réorganise et introduit de nouvelles actions :
  • par défaut set-attribute, l'action de base
  • rename qui permet de renommer un attribut pour quelque chose d'utilisable plus simplement notamment dans des expressions
  • toggle-role qui permet d'ajouter/retirer un rôle selon une condition ou pas (dans ce cas ça ne fait qu'ajouter)

#5 Updated by Benjamin Dauvergne about 1 month ago

  • Subject changed from auth_saml : avoir la possibilité d'imposer des rôles (set_mandatory_roles) to auth_saml : avoir une action de mapping pour ajouter/retirer un rôle

#7 Updated by Thomas Noël about 1 month ago

Je ne pige pas trop l'ajout de la gestion des conditions... quel besoin imagines-tu ? Perso j'en ai pas besoin, un "add-role" me suffirait très bien. Mais surtout si on a ici la gestion de condition, alors il la faudrait aussi dans la synchro LDAP (et autres systèmes de pré-provisioning).

#8 Updated by Benjamin Dauvergne about 1 month ago

Thomas Noël a écrit :

Je ne pige pas trop l'ajout de la gestion des conditions... quel besoin imagines-tu ? Perso j'en ai pas besoin, un "add-role" me suffirait très bien. Mais surtout si on a ici la gestion de condition, alors il la faudrait aussi dans la synchro LDAP (et autres systèmes de pré-provisioning).

Oui c'est un peu l'idée mais c'est un galop d'essai, l'idée c'est d'avoir ça partout sous la même forme, mais comme auth_saml ne sert pas beaucoup je préfère commencer ici.

Je vois assez bien dans une autre ville avec un ADFS :

{
    'action': 'toggle-role',
    'role': { 'name': 'Agent', 'ou': {'name': 'Ville'}},
    'condition': "'cn=Agent,ou=groups,dc=ville,dc=fr' in memberOf",
}

Et je vais avoir besoin des conditions pour le filtrage des modes d'authentification en front.

#9 Updated by Thomas Noël about 1 month ago

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

Benjamin Dauvergne a écrit :

Thomas Noël a écrit :

Je ne pige pas trop l'ajout de la gestion des conditions... quel besoin imagines-tu ? Perso j'en ai pas besoin, un "add-role" me suffirait très bien. Mais surtout si on a ici la gestion de condition, alors il la faudrait aussi dans la synchro LDAP (et autres systèmes de pré-provisioning).

Oui c'est un peu l'idée mais c'est un galop d'essai, l'idée c'est d'avoir ça partout sous la même forme, mais comme auth_saml ne sert pas beaucoup je préfère commencer ici.

Okaye. Bon, ça ne sert tellement pas beaucoup que ça ne va en pratique service nulle part (je parle des conditions).

Aussi, je ne suis pas très fan du nom "toggle-role" (surtout quand il n'y a pas de condition), mais comme j'ai pas mieux à proposer, go.

#11 Updated by Benjamin Dauvergne 28 days ago

  • Status changed from Solution proposée to Résolu (à déployer)
commit 40307f519cb690bbdc22608f9431b2726bcdc5c0
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Aug 8 17:38:37 2019 +0200

    auth_saml: add more mapping actions in A2_ATTRIBUTE_MAPPING (#35302)

commit 94486a726bb0014f28840e9015cd4b75e2fa0cda
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Aug 9 10:33:52 2019 +0200

    utils: add module to evaluate condition expressions safely (#35302)

commit 5cb84716c8041492ecef18d21347efbf196ec47b
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Aug 8 17:53:28 2019 +0200

    create authentic2.utils package (#35302)

commit 0f17a5620249c68775a5a8bea2c3e27fda95b8db
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Aug 9 12:14:26 2019 +0200

    log_filters: get user and ip from record if present (#35302)

#12 Updated by Frédéric Péters 12 days ago

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

Also available in: Atom PDF