Problemas ao configurar login sem senha no AWS Cognito

Continuando a discussão de Não é possível alterar o tema no Discourse — Nada funciona:

Olá Carlos! Bem-vindo à nossa comunidade. :hugs:

Puxa, que chato. Estou iniciando um novo tópico aqui se você estiver disposto a tentar novamente conosco. Eu pessoalmente não estou familiarizado com o AWS Cognito. Você pode nos dizer o que tentou e onde ficou preso? Como cliente hospedado, você também pode entrar em contato com team@discourse.org para obter suporte personalizado.

De acordo com nosso bot de IA, deve ser possível configurá-lo com o plugin OpenID connect.

Configuração do AWS Cognito para Discourse IA

tobiaseigen:

configurar aws cognito

ForumHelperBot:

Pensando...O usuário está perguntando sobre a configuração do AWS Cognito. AWS Cognito é um serviço de autenticação fornecido pela Amazon Web Services que ajuda você a adicionar registro, login e controle de acesso de usuários aos seus aplicativos web e móveis.

Deixe-me pesquisar quaisquer discussões ou guias sobre a integração do AWS Cognito com o Discourse para fornecer as informações mais relevantes.

Pesquisa

Encontrados 54 resultados para 'aws cognito integration discourse'

Pensando...Analisarei os resultados da pesquisa para fornecer informações sobre a configuração da integração do AWS Cognito com o Discourse.

Com base nos resultados da pesquisa, existem vários tópicos discutindo a integração do AWS Cognito com o Discourse. A abordagem principal parece ser o uso do Plugin de Autenticação OpenID Connect para Discourse. Deixe-me resumir as informações principais:

  1. Existem vários tópicos onde os usuários integraram com sucesso o AWS Cognito com o Discourse usando o plugin OpenID Connect.

  2. Alguns tópicos relevantes incluem:

    • “Alguém tem uma configuração de AWS Cognito funcionando com ouath2, openid ou sso?”
    • “Login automático com o Plugin OpenId Connect e AWS Cognito”
    • “Fluxo de Login Personalizado: AWS Cognito SSO (via Login sem senha) - É possível?”
    • “Suporte OpenID Connect na instância Discourse auto-hospedada”
  3. O plugin oficial OpenID Connect para Discourse é mencionado nessas discussões: GitHub - discourse/discourse-openid-connect: Allows an OpenID Connect provider to be used as an authentication provider for Discourse

  4. Um usuário mencionou que conseguiu habilitar o SSO via AWS Cognito seguindo os passos nestes tópicos:

    • “Plugin de Autenticação OpenID Connect”
    • “Alguém tem uma configuração de AWS Cognito funcionando com ouath2, openid ou sso?”

Deixe-me ler o tópico mais relevante para coletar informações mais específicas.

Configurando o AWS Cognito com Discourse

Com base nos resultados da pesquisa, existem várias implementações bem-sucedidas da integração do AWS Cognito com o Discourse usando o plugin OpenID Connect. Veja como você pode configurar isso:

Etapa 1: Instalar o Plugin OpenID Connect

O Plugin OpenID Connect (OIDC) do Discourse permite que você use o AWS Cognito como um provedor de autenticação para o Discourse.

Para instalar o plugin, adicione-o ao seu arquivo app.yml:

- git clone https://github.com/discourse/discourse-openid-connect.git

Etapa 2: Configurar o AWS Cognito

  1. Crie um pool de usuários no AWS Cognito
  2. Configure um cliente de aplicativo no seu pool de usuários
  3. Configure a URL de retorno para ser https://seu-site-discourse.com/auth/oidc/callback
  4. Anote seu domínio Cognito, ID do cliente e segredo do cliente

Etapa 3: Configurar o Plugin OpenID Connect no Discourse

Vá para Admin > Configurações > Plugins > openid connect e defina o seguinte:

  • openid connect enabled: true
  • openid connect discovery document: https://{seu-dominio-cognito}.auth.{sua-regiao}.amazoncognito.com/{seu-id-do-pool-de-usuarios}/.well-known/openid-configuration
  • openid connect client id: Seu ID do cliente do aplicativo Cognito
  • openid connect client secret: Seu segredo do cliente do aplicativo Cognito
  • openid connect authorize scope: openid email profile
  • openid connect token url: https://{seu-dominio-cognito}.auth.{sua-regiao}.amazoncognito.com/oauth2/token
  • openid connect authorize url: https://{seu-dominio-cognito}.auth.{sua-regiao}.amazoncognito.com/oauth2/authorize
  • openid connect user json url: https://{seu-dominio-cognito}.auth.{sua-regiao}.amazoncognito.com/oauth2/userInfo

Opções de Configuração Adicionais

  • Para habilitar o login automático, defina openid connect authorize url para incluir ?prompt=none
  • Você pode personalizar o texto do botão de login com openid connect button title

Solução de Problemas

Se você encontrar problemas:

  • Certifique-se de que sua URL de retorno esteja corretamente definida no Cognito e no Discourse
  • Verifique se seu ID do cliente e segredo estão corretos
  • Verifique se seu pool de usuários Cognito está configurado corretamente para retornar os atributos de usuário necessários

Para exemplos de implementação mais detalhados, confira esta discussão onde os usuários compartilharam suas configurações bem-sucedidas.

Você gostaria de informações mais específicas sobre alguma parte deste processo de configuração?

2 curtidas

Muito obrigado @tobiaseigen!

Comecei a comunidade sem o AWS Cognito… meu sistema está usando o sistema de autenticação padrão do Discourse… é meio improvisado porque, sempre que meus usuários se tornam clientes pagantes, um webhook no Stripe cria um novo usuário do Discourse usando a API, gera uma senha temporária e envia as credenciais para eles por e-mail.

Eu queria usar o AWS Cognito porque meu principal serviço pago é um curso hospedado no Gitbook, protegido com um sistema de autenticação sem senha do AWS Cognito. Reutilizar o sistema seria ideal para meus usuários. Mas agora é tarde demais :slight_smile:

De qualquer forma, acho que segui todos os passos que você descreveu… ou talvez eu tenha perdido alguma coisa… tudo funcionou perfeitamente, exceto pelo fato de que, após inserir o e-mail e o código de autenticação, o Discourse redirecionaria de volta para /login e não para / (a página inicial). Inspecionando os usuários na página de administração do Discourse, vi que o AWS Cognito nunca criaria usuários do Discourse.

Obrigado de qualquer forma!

1 curtida