Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TECH] Dans Pix API supprimer les notions erronées ou obsolètes de scope et de target utilisées pour la vérification du droit d’accès d’un utilisateur à une application (PIX-15945) #11513

Open
wants to merge 8 commits into
base: dev
Choose a base branch
from

Conversation

lego-technix
Copy link
Contributor

@lego-technix lego-technix commented Feb 25, 2025

🥞 Problème

Les usecases authenticateUser et authenticateOidcUser se basent encore sur des notions de scope et de target qui sont erronées ou maintenant obsolètes et que nous voulons supprimer du code de Pix.

De plus, les usecases authenticateUser et authenticateOidcUser sont très proches mais ont du code légèrement différent, ce qui empêchent du travail de factorisation présent et futur.

🥓 Proposition

  • Rendre le code des 2 usecases authenticateUser et authenticateOidcUser plus cohérent en utilisant les mêmes noms de variables et les mêmes noms de fonction,
  • Utiliser une nouvelle notion générique de RequestedApplication, déduite à partir de l'origin, pour remplacer les notions de scope et de target.

PS : On aurait aimé utiliser un security prehandler en commun, mais ce n’est pas possible car dans le cas du usecase authenticateOidcUser l'utilisateur n'est trouvé qu'à l'intérieur du usecase lors des échanges OIDC.

🧃 Remarques

RAS

😋 Pour tester

Tester la connexion par login + mot de passe

Ces tests permettent de valider le bon fonctionnement du usecase authenticateUser.

  1. Se connecter sur Pix App avec un utilisateur ayant un compte et constater l'authentification réussie,

  2. Se connecter sur Pix Orga avec n'importe quel utilisateur n'ayant aucun droit sur des orgas (par exemple [email protected]) et constater l'échec de l'authentification avec l'affichage du message :

    L'accès à Pix Orga est limité aux membres invités. Chaque espace est géré par un administrateur Pix Orga propre à l'organisation qui l'utilise. Contactez-le pour qu'il vous y invite`

  3. Se connecter sur Pix Orga avec un utilisateur ayant des droits sur une orga (par exemple [email protected]) et constater l'authentification réussie,

  4. Se connecter sur Pix Admin avec n'importe quel utilisateur n'ayant aucun droit sur Pix Admin (par exemple [email protected]) et constater l'échec de l'authentification avec l'affichage du message :

    Vous n'avez pas les droits pour vous connecter.

  5. Se connecter sur Pix Admin avec un utilisateur SUPER_ADMIN (par exemple [email protected]) et constater l'authentification réussie.

Tester la connexion par SSO

Ces tests permettent de valider le bon fonctionnement du usecase authenticateOidcUser.

  1. Se connecter sur Pix App .fr par SSO avec un utilisateur approprié,
  2. Se connecter sur Pix App .org par SSO avec un utilisateur approprié,
  3. Se connecter sur Pix Admin par SSO avec un utilisateur approprié.

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@lego-technix lego-technix force-pushed the pix-15945-refactor-user-specific-application-authorization branch 2 times, most recently from f6bc8a3 to e0fe206 Compare February 25, 2025 14:21
@lego-technix lego-technix changed the title [TECH] Factoriser une partie de la vérification du droit d’accès d’un utilisateur à une application spécifique (PIX-15945) [TECH] Dans Pix API supprimer les notions de scope et de target utilisées pour la vérification du droit d’accès d’un utilisateur à une application (PIX-15945) Feb 25, 2025
@lego-technix lego-technix force-pushed the pix-15945-refactor-user-specific-application-authorization branch from e0fe206 to 0e00e87 Compare February 25, 2025 14:31
@lego-technix lego-technix force-pushed the pix-15945-refactor-user-specific-application-authorization branch from 0e00e87 to 2394a64 Compare February 26, 2025 11:29
@lego-technix lego-technix changed the title [TECH] Dans Pix API supprimer les notions de scope et de target utilisées pour la vérification du droit d’accès d’un utilisateur à une application (PIX-15945) [TECH] Dans Pix API supprimer les notions erronées ou obsolètes de scope et de target utilisées pour la vérification du droit d’accès d’un utilisateur à une application (PIX-15945) Feb 26, 2025
@lego-technix lego-technix force-pushed the pix-15945-refactor-user-specific-application-authorization branch 4 times, most recently from 07e685c to 8f225c7 Compare February 27, 2025 10:34
@lego-technix lego-technix force-pushed the pix-15945-refactor-user-specific-application-authorization branch from 8f225c7 to bf7e846 Compare February 28, 2025 08:22
@P-Jeremy
Copy link
Contributor

P-Jeremy commented Feb 28, 2025

Test func 1 OK ✅

Test func 2 KO ❌
Erreur 500 sur l'appel http://localhost:4201/api/token

Test func 3 KO ❌
TypeError: Cannot read properties of undefined (reading 'isLinkedToOrganizations'.  at _assertUserHasAccessToApplication (file:///Users/jeremypluquet/pix/api/src/identity-access-management/domain/usecases/authenticate-user.js:78:47))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants