Projet

Général

Profil

Development #56819

Pouvoir fonctionner sans l'URL de l'IDP dans mellon_usersamlidentifier.issuer

Ajouté par Emmanuel Cazenave il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 septembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pour faciliter les changements de noms de domaine.


Fichiers

0003-drop-and-rename-issuer-field-56819.patch (13,3 ko) 0003-drop-and-rename-issuer-field-56819.patch Benjamin Dauvergne, 14 septembre 2021 22:59
0001-add-Issuer-model-56819.patch (3,37 ko) 0001-add-Issuer-model-56819.patch Benjamin Dauvergne, 14 septembre 2021 22:59
0002-migrate-issuer-data-56819.patch (4,43 ko) 0002-migrate-issuer-data-56819.patch Benjamin Dauvergne, 14 septembre 2021 22:59
0003-drop-and-rename-issuer-field-56819.patch (13,3 ko) 0003-drop-and-rename-issuer-field-56819.patch Benjamin Dauvergne, 15 septembre 2021 16:56
0001-add-Issuer-model-56819.patch (3,37 ko) 0001-add-Issuer-model-56819.patch Benjamin Dauvergne, 15 septembre 2021 16:56
0002-migrate-issuer-data-56819.patch (7,97 ko) 0002-migrate-issuer-data-56819.patch Benjamin Dauvergne, 15 septembre 2021 16:56

Demandes liées

Lié à Hobo - Development #57084: ValueError: invalid literal for int() with base 10: 'https://connexion-eurelien.test.entrouvert.org/idp/saml2...Fermé20 septembre 2021

Actions
Lié à Authentic 2 - Development #57101: Adapter auth_saml au changement de schéma dans django-mellonFermé20 septembre 2021

Actions
Lié à Publik - Support #57729: Migration d'instances de Publik : changement de nom de domaineFermé11 octobre 2021

Actions

Révisions associées

Révision ba312afc (diff)
Ajouté par Benjamin Dauvergne il y a plus de 2 ans

add Issuer model (#56819)

Révision a851b5b2 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 2 ans

migrate issuer data (#56819)

Révision 73bfa476 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 2 ans

drop and rename issuer field (#56819)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Assigné à mis à Benjamin Dauvergne
#2

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Avec le code actuel la commande SQL à faire serait :

UPDATE mellon_usersamlidentifier SET issuer = 'https://new-entity-id....' WHERE issuer = 'https://old-entity-id'

et ceci sur chaque tenant.
En transformant juste issuer en FK vers un table mellon_issuer, ça donnera ça :
UPDATE mellon_issuer SET entity_id = 'https://new-entity-id....' WHERE entity_id = 'https://old-entity-id'

le gain en terme de travail pour la migration est nul.

Ce qu'il faut chercher à obtenir c'est qu'en changeant les URLs dans hobo et en redéployant tout se reconfigure tout seul.

Pour cela je propose de généraliser la présence d'un identifiant pérenne et intelligible dans la configuration MELLON_IDENTITY_PROVIDERS (un slug) comme c'est déjà fait dans authentic2-auth-saml pour d'autres raisons (la possibilité de cible le bouton d'authentification lors de la configuration de la page de login).

On passerai donc à un modèle MellonIssuer(id, entity_id, slug), lors de la recherche d'un entity_id on cherche en premier l'issuer, si on ne le trouve pas, on le cherche la configuration si on le trouve on re-recherche un MellonIssuer en se basant sur le slug de la configuration et on met à jour l'entity_id. Voilà ma proposition au doigt mouillé.

#3

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Ça peut être poussé avant d'ajouter les slugs du coté du settings loader mellon.

#4

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Statut changé de Solution proposée à En cours

Dans le patch 0002, fonction migrate_issuer_forward:

issuer_instance = Issuer.objects.create(entity_id=issuer)

c'est pas plutôt get_or_create étant donné que entity_id a unique=True ?

dans migrate_issuer_backward:

UserSAMLIdentifier.objects.filter(issuer_fk=issuer).update(isuer=issuer.entity_id) <= isuer !
#5

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Serghei Mihai a écrit :

Dans le patch 0002, fonction migrate_issuer_forward:
[...]

c'est pas plutôt get_or_create étant donné que entity_id a unique=True ?

Normalement il n'y aucun issuer, et s'il y en a ça va être un problème.

dans migrate_issuer_backward:

[...]

Ça c'est bizarre que ça n'ait pas été détecté par le test de la migration vu qu'il commence par partir en arrière.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Forcément sans les tests c'est moins visible. Voilà, point soulevé corrigé et test adapté pour le détecter.

#7

Mis à jour par Serghei Mihai il y a plus de 2 ans

  • Statut changé de Solution proposée à Solution validée
#8

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 73bfa476efdf54c00999e525351ded9a9fad63ba
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Sep 14 21:34:50 2021 +0200

    drop and rename issuer field (#56819)

commit a851b5b2ca5c63053e3c2c52c21f63f6163c3e73
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Sep 14 21:03:16 2021 +0200

    migrate issuer data (#56819)

commit ba312afc3e9e293488deb2cc68004c347a3eab58
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Sep 14 20:54:18 2021 +0200

    add Issuer model (#56819)
#9

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#10

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Lié à Development #57084: ValueError: invalid literal for int() with base 10: 'https://connexion-eurelien.test.entrouvert.org/idp/saml2... ajouté
#11

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Lié à Development #57101: Adapter auth_saml au changement de schéma dans django-mellon ajouté
#12

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Lié à Support #57729: Migration d'instances de Publik : changement de nom de domaine ajouté

Formats disponibles : Atom PDF