Benutzerdefinierter Anmeldeflow: AWS Cognito SSO (über passwortlose Anmeldung) - Ist das möglich?

Ich konnte SSO über AWS Cognito aktivieren, indem ich die Schritte hier befolgt habe:

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

Allerdings versuche ich nun herauszufinden, wie ich denselben Authentifizierungsablauf in Discourse aktivieren kann, den wir für unsere mobile und Web-App nutzen. Dabei handelt es sich um einen benutzerdefinierten Authentifizierungsablauf über eine passwortlose Anmeldung (Nutzer geben ihre E-Mail-Adresse ein und erhalten einen Bestätigungscode).

Die Erwartung ist, dass das SSO über diesen passwortlosen Authentifizierungsablauf funktioniert, anstelle von E-Mail/Passwort, da Nutzer in den Haupt-Apps keine Passwörter verwenden.

Gibt es Hinweise dazu, wie man diese Funktionalität aktivieren kann? Oder ist dies überhaupt möglich?

Vielen Dank.

Sofern ich nichts übersehe, sollte das funktionieren. Lass sie einfach dorthin gehen, wo der Link angefordert wird, und du solltest in Discourse eingeloggt sein. Funktioniert das nicht? Oder möchtest du, dass Discourse sie dorthin leitet, wo sie den Link anfordern können?

Hallo Jay,

danke für die Rückmeldung.

Zur Klarstellung:

Der Ablauf in unserer App (nicht Discourse) ist passwortlos – der Benutzer gibt seine E-Mail-Adresse ein → erhält einen 6-stelligen Code per E-Mail → gibt den Code ein → meldet sich an.

Um dies zu ermöglichen, nutzen wir Lambda-Trigger, die die Auth-Herausforderungen definieren, erstellen und verifizieren. Zudem ist die Benutzeroberfläche individuell gestaltet (d. h. sie wird nicht von AWS Amplify bereitgestellt).

Unser Ziel ist es, dass der Discourse-Anmeldeprozess genau so abläuft. Ich habe versucht, dieselbe Cognito-App-Client-Konfiguration für Discourse zu verwenden, erhalte jedoch diese Fehlerseite:

(Die Netzwerkaufrufe von Cognito liefern zu diesem Fehler keine besonders hilfreichen Informationen.)

Als Ergänzung dazu, falls jemand Interesse hat:

Wir mussten im Wesentlichen einen intermediären OAuth-Server einrichten, um die Tokens zu verarbeiten, inspiriert von diesem Beitrag:
https://medium.com/@scott_84836/adding-aws-cognito-authentication-to-discourse-using-oauth2-basic-f20209ba6162

Da wir ein Flask/Python-Backend haben, haben wir schließlich folgendes verwendet: python-oauth2 · PyPI

TL;DR: Eine passwortlose Einrichtung mit Cognito ist mit den Standardmethoden nicht möglich; wir mussten ein leichtgewichtiges OAuth selbst einrichten.