تدفق تسجيل دخول مخصص: AWS Cognito SSO (عبر تسجيل الدخول بدون كلمة مرور) - هل هذا ممكن؟

تمكنت من تمكين SSO عبر AWS Cognito باتباع الخطوات الواردة هنا:

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

ومع ذلك، أنا أحاول البحث عن طرق لتمكين نفس تدفق المصادقة في Discourse الذي نمتلكه لتطبيقاتنا المحمولة وتطبيقات الويب. وهو تدفق مخصص للمصادقة عبر تسجيل الدخول بدون كلمة مرور (يقوم المستخدمون بإدخال بريدهم الإلكتروني، ثم يستقبلون رمز تحقق).

التوقع هو أن يعمل SSO عبر تدفق المصادقة بدون كلمة مرور هذا، بدلاً من البريد الإلكتروني/كلمة المرور. نظرًا لأن المستخدمين لا يستخدمون كلمات مرور في التطبيقات الرئيسية.

هل هناك أي إرشادات حول كيفية تمكين هذه الوظيفة؟ أو هل هذا ممكن من الأساس؟

شكرًا لكم.

ما لم أكن أفتقد شيئًا، يجب أن يعمل ذلك. فقط اطلب منهم الذهاب إلى المكان المطلوب لاستلام الرابط، وسيتم تسجيل دخولهم إلى Discourse. هل لا يعمل ذلك؟ أم أنك تريد من Discourse إرسالهم إلى المكان المطلوب لطلب الرابط؟

مرحبًا جاي،

شكرًا لك على الرد.

للتوضيح:

التدفق في تطبيقنا (وليس في Discourse) يعتمد على عدم استخدام كلمة المرور: يدخل المستخدم بريده الإلكتروني → يستقبل رمزًا مكونًا من 6 أرقام عبر البريد الإلكتروني → يدخل الرمز → يسجل الدخول.

لتفعيل هذه العملية، نستخدم محفزات Lambda لتحديد وإنشاء والتحقق من تحديات المصادقة. علاوة على ذلك، فإن واجهة المستخدم مخصصة (أي أنها ليست مقدمة من AWS Amplify).

ما نريده هو أن تكون عملية تسجيل الدخول في Discourse مماثلة لذلك. حاولت استخدام نفس إعدادات عميل Cognito في Discourse، لكنني حصلت على صفحة الخطأ هذه:

(المكالمة الشبكية من Cognito ليست مفيدة جدًا فيما يتعلق بهذا الخطأ).

كمتابعة لهذا، إذا كان أي شخص مهتمًا:

في الأساس، اضطررنا إلى إعداد خادم OAuth وسيط للتعامل مع الرموز، مستوحين من هذا المنشور:
https://medium.com/@scott_84836/adding-aws-cognito-authentication-to-discourse-using-oauth2-basic-f20209ba6162

لدينا واجهة خلفية باستخدام Flask/Python، لذا انتهينا باستخدام: python-oauth2 · PyPI

ملخص: لا يمكن إعداد نظام بدون كلمة مرور باستخدام Cognito بأي وسيلة افتراضية، واضطررنا إلى إعداد OAuth خفيف الوزن بأنفسنا.