Ajout du verif_orig dans settings.KNOWN_SERVICES

Mise en place du nouveau système de signature, basé sur #8580

On a un settings.KNOWN_SERVICES ainsi formaté :

# sur espace-usager.example.net, le settings_loaders.KnownServices génère cela :

settings.KNOWN_SERVICES = {

  "wcs": { 
    "wcs": {
      "url": "https://demarches.example.net/", 
      "orig": "espace-usager.example.net" 
      "verif_orig": "demarches.example.net", 
      "secret": "452b896499d919671d1369c159d844bc4344d1aee25c4ea5724944322e6eaebe",
           # à utiliser pour signer une URL vers https://demarches.example.net/
           # à utiliser pour vérifier une URL signée par orig=demarches.example.net
      "title": "Démarches en ligne", 
      "backoffice-menu-url": "https://demarches.example.net/backoffice/menu.json", 
      "variables": {}, 
    }
  },

  "combo": {
    "portail-agent": {
      "url": "https://portail-agent.example.net/", 
      "orig": "espace-usager.example.net" 
      "verif_orig": "portail-agent.example.net", 
      "secret": "dadd71c5f9a7c0669240844a0452ce8bbbeadc4be1f27ddc75dcf76eb6279348", 
           # à utiliser pour signer une URL vers https://portail-agent.example.net/
           # à utiliser pour vérifier une URL signée par orig=portail-agent.example.net
      "title": "Portail agent", 
      "backoffice-menu-url": "https://portail-agent.example.net/manage/menu.json", 
      "variables": {}, 
    }, 
    "espace-usager": {
      "url": "https://espace-usager.example.net/", 
      "orig": "espace-usager.example.net" 
      "verif_orig": "espace-usager.example.net", 
      # c'est le service local : pas de secret nécessaire
      "title": "Espace Usager", 
      "backoffice-menu-url": "https://espace-usager-alfortville.dev.entrouvert.org/manage/menu.json", 
      "variables": {}, 
    }
  }, 

  # les autres services

}

Sur wcs on a seulement les équivalents de verif_orig :

# extrait de demarches.example.net/site-options.cfg 

[api-secrets]
# utilisé par wcs pour vérifier une URL signée avec orig=espace-usager.example.net
espace-usager.example.net = 452b896499d919671d1369c159d844bc4344d1aee25c4ea5724944322e6eaebe

Tests après migration vers le nouveau code

Opérations à faire lors de l'installation du nouveau code (sur recette & prod)

Passerelle

Vérifier que les nouvelles clés sont bien visibles dans https://passerelle.example.net/manage/access/

w.c.s.

Vérifier que les nouvelles clés sont bien visibles dans /var/lib/wcs-au-quotidien/demarches.example.net/site-options.cfg

Il faut aussi regarder les wscall, si certains ont été configurés avec de la signature en utilisant les anciennes clés (typiquement vers passerelle). Inventaire à faire.

Inventaire des request_signature_key dans les workflows à modifier, éventuellement.

Recette : Prod :

Combo

Changement des clés FAMILY_SERVICE/signature_key dans les settings.json : prendre la clé de signature du combo visible dans passerelle (clé dupliquée)

Combo/Lingo

Changer les clés LINGO dans les settings.json :

Plus tard