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

feat(user): basculer l'authentification vers ProConnect #731

Merged
merged 11 commits into from
Nov 14, 2024

Conversation

vincentporte
Copy link
Contributor

@vincentporte vincentporte commented Jul 31, 2024

Description

🎸 Inclusion Connect est remplacé par Pro Connect (https://moncomptepro.beta.gouv.fr/) en tant que fournisseur d'identité
🎸 La migration des comptes est réalisée au fil de l'eau, lors de chaque première connection d'un utilisateur précédemment inscrit via Inclusion Connect.

Type de changement

🚧 technique

Points d'attention

🦺 renommage de l'app django
🦺 mise à jour des urls
🦺 ajout du paramètre "acr_values": "eidas1" lors de l'appel au end-point authorize
🦺 remplacement de family_name par usual_name lors de l'appel au end-point user-info
🦺 decoder user_data à l'aide de la lib PyJWT

@vincentporte vincentporte linked an issue Jul 31, 2024 that may be closed by this pull request
7 tasks
@vincentporte vincentporte added the python Pull requests that update Python code label Jul 31, 2024
@vincentporte vincentporte force-pushed the 729-user-bascule-ic-proc branch 3 times, most recently from e8f1f04 to f71c504 Compare July 31, 2024 14:13
@vincentporte vincentporte requested a review from tonial July 31, 2024 14:16
Copy link

@tonial tonial left a comment

Choose a reason for hiding this comment

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

J'ai l'impression que tu n'as pas mis à jour le template du bouton de connexion.

Sinon, ça m'a l'air bien (il faudrait peut être faire une recherche d'inclusion.*connect dans le repo de code pour vérifier qu'il n'en reste pas quelque part comme le commentaire repéré.

Est-ce que tu as moyen de désactiver temporairement la connexion (le temps de mettre à jour les subs le jour J) ?

.env.template Outdated Show resolved Hide resolved
lacommunaute/openid_connect/models.py Show resolved Hide resolved
@vincentporte vincentporte force-pushed the 729-user-bascule-ic-proc branch from f71c504 to 850e0f9 Compare August 27, 2024 11:28
@vincentporte vincentporte added the recette-jetable review_app label Aug 27, 2024
@vincentporte vincentporte marked this pull request as ready for review August 27, 2024 12:04
@vincentporte vincentporte force-pushed the 729-user-bascule-ic-proc branch from 9ddadb1 to 5133aa3 Compare August 27, 2024 12:59
@vincentporte vincentporte added recette-jetable review_app and removed recette-jetable review_app labels Aug 27, 2024
Copy link
Contributor

🥁 La recette jetable est prête ! 👉 Je veux tester cette PR !

@vincentporte vincentporte removed the recette-jetable review_app label Aug 28, 2024
@vincentporte
Copy link
Contributor Author

vincentporte commented Aug 28, 2024

  • ajout des variables d'environnement OPENID_CONNECT_BASE_URL , OPENID_CONNECT_CLIENT_ID et OPENID_CONNECT_CLIENT_SECRET
  • installation du sous-domaine staging.communaute.inclusion.beta.gouv.fr

Echec en code erreur Y000404

@vincentporte vincentporte added the recette-jetable review_app label Aug 28, 2024
Copy link
Contributor

🥁 La recette jetable est prête ! 👉 Je veux tester cette PR !

@vincentporte
Copy link
Contributor Author

@vincentporte
Copy link
Contributor Author

vincentporte commented Aug 29, 2024

@vincentporte vincentporte force-pushed the 729-user-bascule-ic-proc branch 5 times, most recently from 8da1b8f to 985ebfe Compare August 29, 2024 13:02
@vincentporte vincentporte requested a review from tonial August 29, 2024 13:10
@vincentporte vincentporte removed the recette-jetable review_app label Aug 29, 2024
@tonial tonial changed the title feat(user): basculer l'authentification vers Mon Compte Pro feat(user): basculer l'authentification vers ProConnect Nov 4, 2024
@vincentporte vincentporte changed the title feat(user): basculer l'authentification vers ProConnect feat(user): basculer l'authentification vers ProConnect (1/3) Nov 4, 2024
@vincentporte vincentporte changed the title feat(user): basculer l'authentification vers ProConnect (1/3) feat(user): basculer l'authentification vers ProConnect Nov 4, 2024
@vincentporte vincentporte force-pushed the 729-user-bascule-ic-proc branch from ecddeb6 to cc563ae Compare November 4, 2024 14:19
@vincentporte vincentporte requested a review from tonial November 4, 2024 15:09
@vincentporte vincentporte marked this pull request as ready for review November 4, 2024 15:09
lacommunaute/openid_connect/models.py Show resolved Hide resolved
lacommunaute/openid_connect/tests/tests_model.py Outdated Show resolved Hide resolved
@vincentporte vincentporte merged commit 5429fce into master Nov 14, 2024
8 checks passed
@vincentporte vincentporte deleted the 729-user-bascule-ic-proc branch November 14, 2024 12:17
vincentporte added a commit that referenced this pull request Nov 14, 2024
## Description

🎸 mailhog devient inutile en env de dev avec le deploiement de la #731 

## Type de changement

🚧 technique
vincentporte added a commit that referenced this pull request Nov 14, 2024
## Description

🎸 En complément de l'authentification via `Pro Connect` (#731),
permettre à un utlisateur de s'authentifier via un lien magique envoyé
par email.
🎸 Nécessaire pour les utilisateurs n'appartenant pas à une organisation,
car ils ne peuvent pas utiliser `Pro Connect`

🐻 La vue principale de connexion est désormais `LoginView`. Elle permet
de recevoir un magic link ou de se connecter avec ProConnect.
🐻 Si l'utilisateur se connecte avec un lien magic, une variable est
positionnée dans sa session pour determiner le mécanisme de déconnection
à actionner.
🐻 `LoginView` n'est plus accessible si l'utilisateur est authentifié.

⚠️ edge case 
Un utilisateur demande un magic link, puis se connecter avec ProConnect,
puis clique sur le magic link. La déconnection pourrait être celle du
magic link (pas de déco ProConnect). Pas d'effet de bord catastrophique
attendu.

## Type de changement

🎢 Nouvelle fonctionnalité (changement non cassant qui ajoute une
fonctionnalité).
🚧 technique

### Points d'attention

🦺 ajout de la méthode `clean_next_url` pour limiter les risques sur les
redirections
🦺 en dev, les magic link sont enregistrés dans `EmailSentTrack`
🦺 ref
https://www.honeybadger.io/blog/options-for-passwordless-authentication-in-django/
🦺 ref https://stackoverflow.com/a/46236585

🦺 pour une PR suivante : ajouter le contrôle sur `BlockedEmail` et sur
`BlockedDomainName` pour prévenir d'eventuels spammers


### Captures d'écran (optionnel)

LoginView

![image](https://github.com/user-attachments/assets/85b209f4-2ee3-4294-9499-a5bf89d69374)

CreateUserView

![image](https://github.com/user-attachments/assets/f1434872-fcf0-42ca-9f3c-7143232a4788)

Login Link Sent

![image](https://github.com/user-attachments/assets/a0e26f6d-bf13-4f13-8aee-60e6e684b42f)
vincentporte pushed a commit that referenced this pull request Nov 14, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.17.0](v2.16.0...v2.17.0)
(2024-11-14)


### Features

* ajout d'une balise youtube dans le markdown
([#810](#810))
([adbff17](adbff17))
* **forum_conversation:** suppression du triage avant de pouvoir poser
une question
([#818](#818))
([f1b64c6](f1b64c6))
* **stats:** ajout de la colonne categorie dans les stats des fiches
pratiques
([#812](#812))
([c072b5f](c072b5f))
* **user:** authentification via un lien magique envoyé par email
([#804](#804))
([64e04a3](64e04a3))
* **user:** basculer l'authentification vers ProConnect
([#731](#731))
([5429fce](5429fce))


### Bug Fixes

* **attachment:** affichage des liens vers les fichiers des messages
([#806](#806))
([7c34605](7c34605))
* **metabase:** deplanification d'une tâche résiduelle
([#808](#808))
([692a274](692a274))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[USER] bascule IC > ProC
2 participants