Настраиваемый процесс входа: 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 тот же процесс аутентификации, который используется в наших мобильных и веб-приложениях. Речь идёт о кастомном потоке аутентификации без пароля (пользователи вводят свой email и получают код подтверждения).

Ожидается, что SSO будет работать через этот поток аутентификации без пароля вместо входа по email/паролю, поскольку пользователи не используют пароли в основных приложениях.

Есть ли какие-либо рекомендации по включению этой функциональности? Или возможно ли это вообще?

Спасибо.

Если я чего-то не упустил, это должно сработать. Просто отправьте их туда, где можно получить ссылку, и вы должны будете войти в систему на Discourse. Это не работает? Или вы хотите, чтобы Discourse сам отправлял их туда, где можно запросить ссылку?

Привет, Джей,

Спасибо за ответ.

Для уточнения.

Поток в нашем приложении (не Discourse) работает без пароля: пользователь вводит email → получает 6-значный код на email → вводит код → входит в систему.

Чтобы это реализовать, мы используем триггеры 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, поэтому мы использовали: Client Challenge

Кратко: нельзя настроить вход без пароля через Cognito стандартными средствами, пришлось самостоятельно создать легковесный OAuth.