Development #55858
auth http basic pour l'API de création de demande
0%
Description
Pour le moment cette API impose encore la signature.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Mikaël Ates (de retour le 29 avril) il y a plus de 2 ans
- Lié à Development #20624: Permettre l'accès http/auth à la plupart des API ajouté
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Sujet changé de auth http basic pour l'API de création de demande/fiche à auth http basic pour l'API de création de demande
- Description mis à jour (diff)
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0001-api-add-basic-auth-support-to-forms-submit-55858.patch 0001-api-add-basic-auth-support-to-forms-submit-55858.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution proposée à En cours
Est-ce qu'on a écrit quelque part les règles d'accès implicites qu'on souhaite pour les api-user ? Est-ce que c'est juste équivalent aux signatures ou bien on cherche à avoir des règles d'accès plus fin ?
Parce que je vois que ceux-ci ont des rôles, que dans le cas de submit()
ces rôles ne sont contrôlés que dans le cas de la soumission backoffice, reproduisant le comportement en utilisant les signatures. Sauf que les signatures permettent de se faire passer pour n'importe qui sans contrôle, donc c'est un contrôle purement logique qui est fait, pour ne pas simuler une soumission avec un utilisateur qui ne pourrait pas le faire directement en BO.
Si meta.get('backoffice-submission')
alors aucun contrôle n'est fait, et donc on a aucun contrôle d'accès sur les ApiUser faisant des submit qui peuvent donc simuler des soumissions en front en prenant l'identité de n'importe qui (via json_input['user']
).
Le code m'a l'air ok, ma question porte plus sur l'objectif qui aurait du être discuté avant de passer à l'implémentation.
Dans le fond je me demande si c'est ce qu'on veut, sachant que les ApiUser ont été introduit pour justement rendre plus fin le contrôle d'accès, malheureusement dans un cas très restreint qui est celui du chatbot du CD06 devant avoir accès uniquement aux données anonymisés de tous les formulaires d'un utilisateur. Mais si je prends ce cas, on va donner la possibilité au chatbot de faire des soumissions, et je sais qu'on ne veut pas ou alors seulement sur certains (ça n'a pas été évoqué).
Mis à jour par Frédéric Péters il y a plus de 2 ans
Je dirais le premier truc facile, c'est que s'il y a des rôles posés sur l'ApiAccess il faut alors les prendre en compte. Sur la situation ici je dirais que ça signifie les regarder par rapport à backoffice_submission_roles, et ne pas autoriser autre chose que l'enregistrement "saisie backoffice".
Par contre, s'il n'y a pas de rôles posés, je ne sais pas encore trop si ça doit être tout autoriser, ou pas. Je tendrais à pencher pour l'option de ne rien autoriser de particulier, parce que ce sera plus facile de changer ça pour finalement accepter des trucs que de fermer une API qui aurait été trop ouverte.
Pour moi donc, ici, l'accès HTTP auth Basic pour la création de demande, on lui pose comme limite que le paramétrage de l'accès API doit préciser ces rôles en accord avec formdef.backoffice_submission_roles, je dirais aussi qu'on peut dans ce cas ne pas avoir meta/backoffice-submission, i.e. avoir quelque chose comme :
meta = json_input.get('meta') or {} - if meta.get('backoffice-submission'): + if meta.get('backoffice-submission') or (user and user.is_api_user):
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Fichier 0001-api-add-basic-auth-support-to-forms-submit-55858.patch 0001-api-add-basic-auth-support-to-forms-submit-55858.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit e44cf60a88fc81fc9221f879b9f83a75d1b5253d Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Sep 14 15:49:48 2021 +0200 api: add basic auth support to forms submit (#55858)
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
api: add basic auth support to forms submit (#55858)