Flux de connexion personnalisé : AWS Cognito SSO (via connexion sans mot de passe) - Est-ce possible ?

J’ai pu activer l’authentification unique (SSO) via AWS Cognito en suivant les étapes ci-dessous :

  1. Discourse OpenID Connect (OIDC)
  2. Anyone have a working AWS Cognito configuration w/ ouath2, openid or sso?

Cependant, je cherche à mettre en place dans Discourse le même flux d’authentification que celui utilisé pour nos applications mobile et web, à savoir un flux d’authentification personnalisé sans mot de passe (les utilisateurs saisissent leur adresse e-mail et reçoivent un code de vérification).

L’objectif est que le SSO fonctionne via ce flux d’authentification sans mot de passe, plutôt que par e-mail/mot de passe, puisque les utilisateurs n’utilisent pas de mots de passe dans nos applications principales.

Auriez-vous des pistes pour activer cette fonctionnalité ? Ou bien savez-vous si cela est possible ?

Merci.

1 « J'aime »

À moins que je n’oublie quelque chose, cela devrait fonctionner. Demandez-leur simplement de se rendre à l’endroit où le lien est envoyé, et vous devriez être connecté à Discourse. Est-ce que cela ne fonctionne pas ? Ou souhaitez-vous que Discourse les redirige vers l’endroit où ils peuvent demander le lien ?

Bonjour Jay,

Merci pour ta réponse.

Pour clarifier les choses :

Le flux de notre application (et non de Discourse) est sans mot de passe : l’utilisateur saisit son adresse e-mail → reçoit un code à 6 chiffres par e-mail → saisit le code → se connecte.

Pour activer cela, nous utilisons des déclencheurs Lambda qui définissent/créent et vérifient les défis d’authentification. De plus, l’interface utilisateur est personnalisée (c’est-à-dire qu’elle n’est pas fournie par AWS Amplify).

Ce que nous souhaitons, c’est que le processus de connexion de Discourse soit identique. J’ai essayé d’utiliser la même configuration de client d’application Cognito pour Discourse, mais j’obtiens cette page d’erreur :


(l’appel réseau n’est pas très utile de la part de Cognito concernant cette erreur)

En complément de ce qui précède, si cela intéresse quelqu’un :

Nous avons essentiellement dû mettre en place un serveur OAuth intermédiaire pour gérer les jetons, en nous inspirant de ce post :
https://medium.com/@scott_84836/adding-aws-cognito-authentication-to-discourse-using-oauth2-basic-f20209ba6162

Notre backend étant basé sur Flask/Python, nous avons fini par utiliser : python-oauth2 · PyPI

TL;DR : il n’est pas possible de configurer une authentification sans mot de passe avec Cognito via les méthodes par défaut ; nous avons dû mettre en place notre propre OAuth léger.

2 « J'aime »