Problemas para configurar el inicio de sesión sin contraseña en AWS Cognito

Continuando la discusión de No se puede cambiar el tema en Discourse — No funciona nada:

¡Hola Carlos! Bienvenido a nuestra comunidad. :hugs:

Uf, eso es molesto. Estoy iniciando un nuevo tema aquí si estás dispuesto a intentarlo de nuevo con nosotros. Personalmente, no estoy familiarizado con AWS Cognito. ¿Puedes decirnos qué intentaste y dónde te quedaste atascado? Como cliente alojado, también puedes contactar a team@discourse.org para obtener soporte personalizado.

Según nuestro bot de IA, debería ser posible configurarlo con el plugin de OpenID Connect.

Configuración de AWS Cognito para Discourse AI

tobiaseigen:

configurar aws cognito

ForumHelperBot:

Pensando...El usuario está preguntando sobre la configuración de AWS Cognito. AWS Cognito es un servicio de autenticación proporcionado por Amazon Web Services que te ayuda a agregar registro, inicio de sesión y control de acceso de usuarios a tus aplicaciones web y móviles.

Permíteme buscar discusiones o guías sobre la integración de AWS Cognito con Discourse para proporcionar la información más relevante.

Búsqueda

Encontré 54 resultados para 'aws cognito integration discourse'

Pensando...Analizaré los resultados de la búsqueda para proporcionar información sobre la configuración de la integración de AWS Cognito con Discourse.

Según los resultados de la búsqueda, hay varios temas que discuten la integración de AWS Cognito con Discourse. El enfoque principal parece ser el uso del Plugin de Autenticación OpenID Connect para Discourse. Permíteme resumir la información clave:

  1. Hay varios temas donde los usuarios han integrado con éxito AWS Cognito con Discourse utilizando el plugin OpenID Connect.

  2. Algunos temas relevantes incluyen:

    • “¿Alguien tiene una configuración de AWS Cognito que funcione con ouath2, openid o sso?”
    • “Inicio de sesión automático con el plugin OpenId Connect y AWS Cognito”
    • “Flujo de inicio de sesión personalizado: SSO de AWS Cognito (a través de inicio de sesión sin contraseña) - ¿Es esto posible?”
    • “Soporte de OpenID Connect en la instancia de Discourse autoalojada”
  3. El plugin oficial OpenID Connect para Discourse se menciona en estas discusiones: GitHub - discourse/discourse-openid-connect: Allows an OpenID Connect provider to be used as an authentication provider for Discourse

  4. Un usuario mencionó que pudo habilitar el SSO a través de AWS Cognito siguiendo los pasos de estos temas:

    • “Plugin de autenticación OpenID Connect”
    • “¿Alguien tiene una configuración de AWS Cognito que funcione con ouath2, openid o sso?”

Permíteme leer el tema más relevante para recopilar instrucciones más específicas.

Configuración de AWS Cognito con Discourse

Según los resultados de la búsqueda, existen varias implementaciones exitosas de la integración de AWS Cognito con Discourse utilizando el plugin OpenID Connect. Aquí te explicamos cómo configurarlo:

Paso 1: Instalar el Plugin OpenID Connect

El plugin Discourse OpenID Connect (OIDC) te permite usar AWS Cognito como proveedor de autenticación para Discourse.

Para instalar el plugin, agrégalo a tu archivo app.yml:

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

Paso 2: Configurar AWS Cognito

  1. Crea un grupo de usuarios en AWS Cognito
  2. Configura un cliente de aplicación en tu grupo de usuarios
  3. Configura la URL de devolución de llamada a https://tu-sitio-discourse.com/auth/oidc/callback
  4. Anota tu dominio de Cognito, ID de cliente y secreto de cliente

Paso 3: Configurar el Plugin OpenID Connect en Discourse

Ve a Administración > Configuración > Plugins > openid connect y configura lo siguiente:

  • openid connect enabled: true
  • openid connect discovery document: https://{dominio-cognito}.auth.{region}.amazoncognito.com/{id-grupo-usuarios}/.well-known/openid-configuration
  • openid connect client id: Tu ID de cliente de aplicación de Cognito
  • openid connect client secret: Tu secreto de cliente de aplicación de Cognito
  • openid connect authorize scope: openid email profile
  • openid connect token url: https://{dominio-cognito}.auth.{region}.amazoncognito.com/oauth2/token
  • openid connect authorize url: https://{dominio-cognito}.auth.{region}.amazoncognito.com/oauth2/authorize
  • openid connect user json url: https://{dominio-cognito}.auth.{region}.amazoncognito.com/oauth2/userInfo

Opciones de Configuración Adicionales

  • Para habilitar el inicio de sesión automático, configura openid connect authorize url para incluir ?prompt=none
  • Puedes personalizar el texto del botón de inicio de sesión con openid connect button title

Solución de Problemas

Si encuentras problemas:

  • Asegúrate de que tu URL de devolución de llamada esté configurada correctamente tanto en Cognito como en Discourse
  • Verifica que tu ID de cliente y secreto sean correctos
  • Comprueba que tu grupo de usuarios de Cognito esté configurado correctamente para devolver los atributos de usuario requeridos

Para obtener ejemplos de implementación más detallados, consulta esta discusión donde los usuarios han compartido sus configuraciones exitosas.

¿Te gustaría información más específica sobre alguna parte de este proceso de configuración?

2 Me gusta

¡Muchas gracias @tobiaseigen!

Comencé la comunidad sin AWS Cognito… mi sistema está usando el sistema de autenticación predeterminado de Discourse… es un poco improvisado porque, cada vez que mis usuarios se convierten en clientes de pago, un webhook en Stripe crea un nuevo usuario de Discourse usando la API, genera una contraseña temporal y les envía las credenciales por correo electrónico.

Quería usar AWS Cognito porque mi principal servicio de pago es un curso alojado en Gitbook, protegido con un sistema de autenticación sin contraseña de AWS Cognito. Reutilizar el sistema sería ideal para mis usuarios. Pero ahora es demasiado tarde :slight_smile:

De todos modos, creo que seguí todos los pasos que describiste… o tal vez me perdí algo… todo funcionó perfectamente, excepto por el hecho de que después de ingresar el correo electrónico y el código de autenticación, Discourse redirigiría de regreso a /login y no a / (la página de inicio). Al inspeccionar los usuarios en la página de administración de Discourse, vi que AWS Cognito nunca crearía usuarios de Discourse.

¡Gracias de todos modos!

1 me gusta