test du proxy #47
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Construction_PA/PA_Communautaire#47
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
proxy en mod test:
https://pp.esalink.pdplibre.org/
issue pour échanger
Je ne créé pas de ticket à part, mais je souhaiterais utiliser l'instance de preprod pour mes tests avec Factur-e. J'ai fait l'analyse des deux branches n7w (le code et la doc de Camille) avec Claude.
Pour avancer, il faudrait charger mon client id (distributeur).
Titre : [Proxy EsaLink] Seeder le distributeur Factur-e (mode proxy)
Instance : proxy
pp(https://pp.esalink.pdplibre.org/— à confirmer), connectée à EsaLink PPD (https://ppd.hubtimize.fr/api/orchestrator).Demande : allow-lister le
client_iddistributeur de Factur-e, en mode proxy, sans secret stocké (Factur-e envoie son secret à chaque appel).Commandes à exécuter (compte superadmin) :
Forme conteneur (depuis
podman/proxy_mode/) :Vérifications demandées à l'opérateur :
Hostattendu (routage vendor par en-têteHost).client_id(éviter un doublon ambigu).hubtimize-api-keyPPD (clé de test communea3e49892-260f-4a3f-b497-3c9b68ee85d1) est configurée côté router (N7W_VENDOR__ESALINK__API_KEY).Tenant created: id=facture-e …puisCredential created: id=… vendor=esalink.Test de bout en bout (après seed), côté Factur-e :
Je viens d'ajouter ton accès, tu devrais pouvoir tester.
Ok résultat des tests, le proxy ne voit que le client distributeur EsaLink qui permet d'accéder à EsaLink.
Mais pour discriminer les flux de plusieurs clients (Factur-e = SaaS), il faut utiliser les identifications de chaque client. Or elles ne sont pas connues du proxy.
Donc ca marche si distributeur = client, mais pour distributeur = {client} si on fait porter par le token distributeur mais on n'est pas conforme avec les consignes EsaLink (le distributeur va voir toutes les factures de ses clients...)
Faudrait-il un endpoint de provisionning équivalent à
Mais cela veut dire que le proxy doit connaitre tous les clients ?
Je joins la prose de Claude (pas celle de Claudel :) )
Je serai la jeudi mais si vous avez des précisions je rejoue les tests avant.
Maii peut etre que j'ai loupé quelque chose, vous parlez de username et pwd, ce sont les credentiel qu'on met dans l'IHM ? Mais ce sont des identifiants IHM, qui ne peuvent pas être utilisés pour les appel en API (j'ai vérifié).
@xt0ph @teddy.morel
Si j'ai bien compris le besoin de base qui était de pouvoir compter et contrôler (dans le sens s'assurer que le client qui utilise le proxy est valide avec le minimum d'info stockée) l'utilisation du proxy, j'ai pensé qu'utiliser le client_id était une façon élégante de le faire.
Alors effectivement pour faire ça il faut que le proxy connaisse les client_id de tout le monde :-)
Il est possible aussi d'ajouter la notion d'utilisateur, sur lequel faire porter le client_id qui nous ajouterait la couche nécessaire au fonctionnement en mode SaaS
mais cela ne change pas le le proxy doit connaître tous les client_id.
PS : ce dernier mode je ne l'ai pas tester (encore) avec les dernière modifications du code.
L'ambiguité est dans le client :
Client distributeur = adhérent distributeur PDPLibre -> On veut compter les factures et vérifier qu'il est légitime
Clients du client distributeur = porte l'authent par un identifiant technique API de EsaLink -> utiliser pour isoler les requêtes entre clients du distributeur
On veut donc utiliser le même objet credentials pour deux usages différents.
IMO : il faut garder une identification du distributeur disjoint de l'authent de EsaLink (et de celle bientot de SuperPDP)
On en revient au sujet du trackingId décrit dans la norme XP Z12-013
On pourrait tester si EsaLink accepte ce champ (il doit le faire selon la norme), du coup on aurait un tracking Id vérifié par le proxy qui fait la collecte des flow.
Avec une valeur par distributeur. Pas très sécurisé car un distributeur peut prendre une la valeur d'un autre distributeur. Mais c'est auditable, si le proxy trace le couple {trakingId, client-Id}, çà va se voir ! un client-id qui apparait avec deux valeurs de trackingId, c'est louche, sauf si il a deux logiciels différents pour sa facturation électronique.
A suivre