Fluxo de Login Personalizado: AWS Cognito SSO (via Login Sem Senha) - É possível?

Consegui ativar o SSO via AWS Cognito seguindo os passos aqui:

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

No entanto, estou tentando encontrar maneiras de ativar o mesmo fluxo de autenticação no Discourse que temos para nosso aplicativo móvel e web. Trata-se de um fluxo de autenticação personalizado via login sem senha (os usuários inserem seu e-mail e recebem um código de verificação).

A expectativa é que o SSO funcione por meio desse fluxo de autenticação sem senha, em vez de e-mail/senha. Isso porque os usuários não usam senhas nos aplicativos principais.

Alguma orientação sobre como ativar essa funcionalidade? Ou se isso é possível?

Obrigado.

A menos que eu esteja perdendo algo, isso deve funcionar. Basta direcioná-los ao local onde podem solicitar o link, e você deverá estar logado no Discourse. Isso não funciona? Ou você deseja que o Discourse os direcione ao local para solicitar o link?

Olá Jay,

Obrigado pela resposta.

Para esclarecer:

O fluxo do nosso aplicativo (não o Discourse) é sem senha: o usuário insere o e-mail → recebe um código de 6 dígitos no e-mail → insere o código → faz login.

Para habilitar isso, temos gatilhos Lambda que definem/criam e verificam os desafios de autenticação. Além disso, a interface do usuário é personalizada (ou seja, não fornecida pelo AWS Amplify).

O que queremos é que o processo de login do Discourse seja o mesmo. Tentei usar a mesma configuração do cliente de aplicativo Cognito para o Discourse, mas recebo esta página de erro:


(a chamada de rede não é muito útil por parte do Cognito sobre esse erro)

Como um acompanhamento a isso, caso alguém esteja interessado:

Essencialmente, tivemos que configurar um servidor OAuth intermediário para lidar com os tokens, inspirados neste post:
https://medium.com/@scott_84836/adding-aws-cognito-authentication-to-discourse-using-oauth2-basic-f20209ba6162

Temos um backend em Flask/Python, então acabamos usando: python-oauth2 · PyPI

TLDR: não é possível fazer uma configuração sem senha usando o Cognito por meio de métodos padrão; tivemos que configurar nosso próprio OAuth leve.