Skip to content

Conversation

@bpetetot
Copy link
Contributor

@bpetetot bpetetot commented May 27, 2025

🌸 Problème

Afin de réduire le nombre de tickets au support liés aux comptes bloqués, nous souhaitons améliorer les messages d'erreur retournés à l'utilisateur lors de tentatives de connexion échouées (notamment pour les utilisateurs du sco).

🌳 Proposition

Côté API, ajout de meta attributs sur les erreurs remontées au front.

MissingOrInvalidCredentialsError

  • isLoginFailureWithUsername: indique si l'échec de login a été réalisé via un username.
  • remainingAttempts: nombre d'échec de connexion. (null si moins de 10 restants)

UserIsTemporaryBlocked

  • isLoginFailureWithUsername: indique si l'échec de login a été réalisé via un username.
  • blockingDurationMs: durée du blocage

UserIsBlocked

  • isLoginFailureWithUsername: indique si l'échec de login a été réalisé via un username.

Côté Frontend, Modification et factorisation de la gestion des erreurs de la route /api/token. Utilisation du service error-messages, avec les fonctions:

  • getHttpErrorMessage: permet de récupérer les messages par défaut en fonction des codes erreurs HTTP
  • getAuthenticationError: permet de récupérer les messages d'erreur en fonction des erreurs d'authentification (code erreur ou http)

🐝 Remarques

🏴‍☠️ On a profité de cette PR pour supprimer le mapping de PasswordNotMatching dans api/src/identity-access-management/application/http-error-mapper-configuration.js (suppression qui aurait dû être faite dans #11400, mais nous n’y avons pas pensé à l’époque). En effet pour ne pas faire fuiter l’information d’existence ou d’inexistence d’un compte utilisateur, l’erreur PasswordNotMatching ne doit jamais être propagée aux clients de l’API, c’est l’erreur MissingOrInvalidCredentialsError (ne divulguant pas l’existence ou d’inexistence d’un compte utilisateur) que l’on veut renvoyer à la place.

🤧 Pour tester

Tentatives de connexion avec email sur Pix App, utiliser un email et un mauvais mot de passe:

  • 10 premières tentatives : L'adresse e-mail ou l'identifiant et/ou le mot de passe saisis sont incorrects.
  • À la 11ᵉ tentative : Vous avez effectué trop de tentatives de connexion, votre compte Pix est bloqué temporairement pendant 2 minutes. Réessayez plus tard ou cliquez sur mot de passe oublié pour le réinitialiser.
  • 10 tentatives suivantes : L'adresse e-mail ou l'identifiant et/ou le mot de passe saisis sont incorrects.
  • À la 21ᵉ tentative : Vous avez effectué trop de tentatives de connexion, votre compte Pix est bloqué temporairement pendant 4 minutes. Réessayez plus tard ou cliquez sur mot de passe oublié pour le réinitialiser.
  • 10 tentatives suivantes : Attention : il vous reste tentatives avant le blocage définitif de votre compte Pix.
  • À la 31ᵉ tentative : Votre compte est bloqué car vous avez effectué trop de tentatives de connexion. Pour le débloquer, contactez-nous.

Tentatives de connexion avec email sur Pix App, utiliser un username et un mauvais mot de passe:

  • 10 premières tentatives : L'identifiant et/ou le mot de passe saisis sont incorrects. En cas d’oubli, contactez votre enseignant pour récupérer votre identifiant et/ou réinitialiser votre mot de passe.
  • À la 11ᵉ tentative : Vous avez effectué trop de tentatives de connexion, votre compte Pix est bloqué temporairement pendant 2 minutes. En cas d’oubli, contactez votre enseignant pour récupérer votre identifiant et/ou réinitialiser votre mot de passe.
  • 10 tentatives suivantes :L'identifiant et/ou le mot de passe saisis sont incorrects. En cas d’oubli, contactez votre enseignant pour récupérer votre identifiant et/ou réinitialiser votre mot de passe.
  • À la 21ᵉ tentative : Vous avez effectué trop de tentatives de connexion, votre compte Pix est bloqué temporairement pendant 4 minutes. En cas d’oubli, contactez votre enseignant pour récupérer votre identifiant et/ou réinitialiser votre mot de passe.
  • 10 tentatives suivantes : Attention : il vous reste tentatives avant le blocage définitif de votre compte Pix. En cas d’oubli, contactez votre enseignant pour récupérer votre identifiant et/ou réinitialiser votre mot de passe.
  • À la 31ᵉ tentative : Votre compte est bloqué car vous avez effectué trop de tentatives de connexion. Pour le débloquer, contactez-nous.

Tester de la même manière pour le cas d’une authentification OIDC et pour le cas d’une authentification SAML

Se connecter avec un email et mot de passe corrects pour vérifier la non régression.

Se connecter avec un username et mot de passe corrects pour vérifier la non régression.

@bpetetot bpetetot self-assigned this May 27, 2025
@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 :

@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch from 277b486 to 90e714a Compare May 27, 2025 14:03
@bpetetot bpetetot marked this pull request as ready for review May 27, 2025 14:03
@bpetetot bpetetot requested a review from a team as a code owner May 27, 2025 14:03
@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch 2 times, most recently from 8632afa to b23302c Compare May 27, 2025 14:42
@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch from b23302c to bfef675 Compare June 2, 2025 07:59
@bpetetot bpetetot changed the title [FEAT] nouveaux messages d'erreur lors d'une tentative de connexion (PIX-17949) [FEATURE] Nouveaux messages d'erreur lors d'une tentative de connexion (PIX-17949) Jun 2, 2025
@P-Jeremy P-Jeremy force-pushed the pix-17949-improve-connexion-attempts-messages branch from c341649 to 4f72dc3 Compare June 2, 2025 14:57
@P-Jeremy P-Jeremy force-pushed the pix-17949-improve-connexion-attempts-messages branch from 4f72dc3 to 93f720f Compare June 2, 2025 15:21
@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch from 93f720f to 2578b9c Compare June 6, 2025 08:59
@P-Jeremy P-Jeremy force-pushed the pix-17949-improve-connexion-attempts-messages branch 2 times, most recently from b0d6927 to e3d2324 Compare June 6, 2025 12:50
@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch 11 times, most recently from 9d3fbf8 to d1aa49f Compare June 11, 2025 15:58
lego-technix

This comment was marked as resolved.

lego-technix

This comment was marked as resolved.

@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch 3 times, most recently from 61259b2 to cf8fc6a Compare June 17, 2025 08:22
lego-technix

This comment was marked as resolved.

@bpetetot
Copy link
Contributor Author

Est-ce que les choses à faire dans la section « Notes / Todo: » sont toujours d’actualité ou bien tout a bien été fait ?

Tout a été fait, je les supprime.

@bpetetot bpetetot force-pushed the pix-17949-improve-connexion-attempts-messages branch from cf8fc6a to a7181d6 Compare June 17, 2025 09:19
Copy link
Contributor

@lego-technix lego-technix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Lu et testé fonctionnellement avec succès avec Firefox 🦊

❤️❤️❤️

@bpetetot bpetetot added Tech Review OK 🚀 Ready to Merge Func Review OK PO validated functionally the PR and removed 👀 Tech Review Needed 👀 Func Review Needed Need PO validation for this functionally labels Jun 17, 2025
@pix-service-auto-merge pix-service-auto-merge force-pushed the pix-17949-improve-connexion-attempts-messages branch from a7181d6 to a8bc37c Compare June 17, 2025 09:45
@pix-service-auto-merge pix-service-auto-merge merged commit 0cb2294 into dev Jun 17, 2025
11 checks passed
@pix-service-auto-merge pix-service-auto-merge deleted the pix-17949-improve-connexion-attempts-messages branch June 17, 2025 09:58
pix-service pushed a commit that referenced this pull request Jun 17, 2025
# [5.136.0](v5.135.0...v5.136.0) (2025-06-17)

### 🚀 Amélioration

- [#12514](#12514) Ajouter la suppression de participations / assessment / badge / trainings lors de la suppression d'un import SUP (PIX-18074)
- [#12513](#12513) Faire disparaître les élements du toaster automatiquement lors du changement de page sur Pix Admin (PIX-18169).
- [#12387](#12387) Nouveaux messages d'erreur lors d'une tentative de connexion (PIX-17949)
- [#12554](#12554) Support des web-components Vue >=3.5.15 (PIX-18219)

### 🐛 Correction

- [#12547](#12547) Éviter d'appeller le LLM en mode preview (PIX-18295)

### 🏗️ Tech

- [#12555](#12555) Suppression d'un script inutilisé.
- [#12542](#12542) Suppression du service Campaign Media Compliance (PIX-18206).

### ⬆️ Montée de version

- [#12551](#12551) Update dependency @1024pix/epreuves-components to ^0.4.0 (junior)
- [#12552](#12552) Update dependency @1024pix/epreuves-components to ^0.4.0 (mon-pix)
- [#12553](#12553) Update dependency ember-source to ~6.5.0 (junior)
- [#12539](#12539) Update slackapi/slack-github-action action to v2.1.0 (workflows)
@pix-service
Copy link
Contributor

🎉 This PR is included in version 5.136.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@MathGuich
Copy link
Contributor

Pourquoi la 33ème tentative alors que le compte doit être bloqué à la 30ème tentative ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants