Development #63729
auth_oidc : avoir une stratégie de fédération sur l'email, mais sans création
0%
Description
On a une STRATEGY_CREATE qui, si l'OU est configurer avec unicité de mail, va rechercher si un utilisateur avec le même mail existe, et sinon le créer.
Cette création peut ne pas être désirée, typiquement dans le cas d'un OIDC avec un annuaire qui est déjà pré-provisionné par LDAP
Il serait intéressant d'avoir une STRATEGY_FIND_EMAIL, qui fasse la réconciliation selon l'attribut email, mais n'aille pas plus loin (pas de création de compte).
Fichiers
Révisions associées
Historique
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Sujet changé de OIDC : avoir une stratégie de fédération sur l'email, mais sans création à auth_oidc : avoir une stratégie de fédération sur l'email, mais sans création
- Statut changé de Nouveau à En cours
- Assigné à mis à Paul Marillonnet
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Fichier 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Avec un peu de churn car il faut inverser la logique du backend : résoudre les claims avant de tenter l’appairage, car on a besoin de l’email pour appairer.
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Statut changé de Solution proposée à En cours
Et en fait, à travailler sur #64626 je réalise que ce n’est pas la bonne façon d’aborder les différents cas d’unicité du courriel. Je revois ma copie.
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Fichier 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Benjamin Dauvergne il y a presque 2 ans
Du coté FC j'ai viré toute considération concernant l'unicité du mail au niveau de l'OU considérant que c'est implicite avec FC, je ferai de même ici si la stratégie choisie est de rechercher par email (et globalement je pense que ça permettra de déprécier A2_EMAIL_IS_UNIQUE, ça n'a aucun usage à ma connaissance, c'était juste pour pallier à l'absence de ou.email_is_unique dans le passé). Coté FC ça a bien simplifié le code :
def get_or_create_user_with_email(self, email): ou = get_default_ou() qs = User.objects.filter(email__iexact=email) if not a2_app_settings.A2_EMAIL_IS_UNIQUE: qs = qs.filter(ou=ou) Lock.lock_email(email) try: user = qs.get() except User.DoesNotExist: return User.objects.create(ou=ou, email=email), True if user.ou != ou: raise UserOutsideDefaultOu return user, False
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Statut changé de Solution proposée à En cours
Ok, très bien, ça me va, je vais proposer un nouveau patch qui emprunte cette direction.
Mis à jour par Paul Marillonnet il y a presque 2 ans
- Fichier 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch 0001-auth_oidc-add-a-STRATEGY_FIND_EMAIL-user-matching-pr.patch ajouté
Ok, c’est mieux ainsi, en effet.
Je peux couper en deux patches avec 0001 qui serait purement le churn, i.e. déplacer la résolution des claims avant la tentative d’appairage, si ça peut faire gagner en clarté.
Mis à jour par Benjamin Dauvergne il y a presque 2 ans
- Statut changé de En cours à Solution validée
Mis à jour par Benjamin Dauvergne il y a presque 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit a6ab8a2624e1ec8d6a92a4c3dd1662ed76de7fd6 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Apr 27 18:00:51 2022 +0200 auth_oidc: add a STRATEGY_FIND_EMAIL user-matching provider option (#63729)
Mis à jour par Transition automatique il y a presque 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
auth_oidc: add a STRATEGY_FIND_EMAIL user-matching provider option (#63729)