Drupal SSO genera sesiones de usuario incorrectas

Hola,
Estamos utilizando SSO desde Drupal y un comportamiento no intencional aquí es que todos los usuarios ven nuestro servidor de Drupal como iniciado sesión, además de su sesión actual. Esto está causando mucha preocupación y confusión en nuestra comunidad, ya que ven otro dispositivo iniciado sesión que no es el suyo.

¿Se puede desactivar esta función? O mejor aún, ¿podemos excluir ciertas direcciones IP para ocultar nuestro servidor de la lista de dispositivos utilizados recientemente?

5 Me gusta

El uso de un proveedor de SSO externo no hace que se liste en esta lista.

Lo que ves puede ser un artefacto de otra cosa, como la creación de claves de API para usuarios, etc.

5 Me gusta

He visto este problema antes cuando un sitio Drupal actúa como proveedor de SSO para Discourse. No he visto problemas similares con otros proveedores de SSO. ¿Estás utilizando algún módulo de Drupal para SSO? De ser así, ¿podrías indicarnos dónde encontrarlo?

Puedes ocultar la sección “Dispositivos utilizados recientemente” con CSS. Esto podría ser una buena solución temporal para el problema.

.control-group.pref-auth-tokens {
    display: none;
}
8 Me gusta

Estamos utilizando el módulo contrib Discourse Forum Integration https://www.drupal.org/project/discourse

Gracias por el consejo; temporalmente lo ocultamos usando CSS. Sin embargo, sería bueno saber si es configurable para ocultar solo nuestro servidor de la lista, permitiendo que los usuarios sigan viendo sus dispositivos utilizados recientemente.

3 Me gusta

Te sugiero que te pongas en contacto con el desarrollador de Drupal: la última actualización de ese módulo parece ser de 2015, con el soporte listado para la versión de Discourse 1.2.0.beta5 (lanzada por nosotros en enero de 2015). Aunque me alegra ver que todavía funciona, no es sorprendente que haya algunos problemas menores.

4 Me gusta

También vale la pena mencionar que el módulo de Drupal enlazado anteriormente solo está disponible para Drupal 7, el cual alcanzará su fin de vida útil en noviembre de 2021. (No es mañana, pero es lo suficientemente pronto.)

5 Me gusta

Sí, gracias, somos conscientes de ello (y no estamos muy contentos, ya que nuestro sitio se lanzó recientemente :disappointed_relieved: )

4 Me gusta

He echado un vistazo rápido al módulo Drupal Discourse. No tengo claro qué está causando el problema, pero por alguna razón, el User Agent y la IP del cliente se están estableciendo con los valores del servidor de Drupal en lugar de los del usuario durante el inicio de sesión SSO. Esto podría estar relacionado con el funcionamiento del método drupal_goto.

Una cosa que noté en el módulo es que ofrece cierta funcionalidad para mostrar contenido de Discourse en Drupal. Para ello, realiza solicitudes a la API de Discourse incluyendo las credenciales de la API en la cadena de consulta. Este tipo de autenticación de API ha sido obsoleto por Discourse. En algún momento cercano, este tipo de solicitudes dejarán de funcionar. Si estás utilizando el módulo para mostrar contenido de Discourse en tu sitio Drupal, es posible que debas investigar más a fondo este aspecto.

Este módulo se actualizó por última vez en 2015. Existe un módulo de SSO de Drupal Discourse que se ha actualizado más recientemente: https://www.drupal.org/project/discourse_sso. Creo que solo ofrece funcionalidad SSO, ya que no parece tener código que añada contenido de Discourse a un sitio Drupal.

6 Me gusta

Gracias por la información adicional, Simon. De hecho, estamos haciendo exactamente eso: nuestra sección de comentarios del blog utiliza un tema de Discourse para que los usuarios tengan su discusión, y el contenido de este tema también se muestra en el artículo del blog de vuelta en Drupal.

¿Sería este el lugar adecuado para obtener más información sobre la depreciación de la autenticación de la API? Discourse REST API Documentation

¡Gracias de nuevo!

1 me gusta

Sí, la solicitud POST de ejemplo que se proporciona al inicio de ese tema contiene la información que necesitas. Para corregir el módulo Drupal Discourse y que utilice autenticación basada en encabezados, solo sería necesario realizar un pequeño cambio en su código.

Asumiendo que tu sitio de Discourse está actualizado, probablemente haya una advertencia sobre el uso de métodos de autenticación obsoletos para las solicitudes de la API en tu panel de administración de Discourse.

4 Me gusta