Suplantación recursiva

Hola a todos,

Configuré un servidor de Discourse para un cliente y les permití crear cuentas de prueba, sabiendo que eventualmente quedarían obsoletas una vez implementado el SSO. Lo configuré todo, personalicé mi tema y escribí descripciones para todas las categorías usando mi cuenta de administrador A.

Una vez configurado DiscourseConnect (como única opción de registro), inicié sesión con mi cuenta de administrador desde el otro sistema y otorgué derechos de administrador a esa cuenta B. A partir de ese momento, realizaría cualquier acción bajo la cuenta B, ya que ya no podía iniciar sesión como A.

Luego, me encontré con el botón “Suplantar” y sentí curiosidad. Parecía que no tenía que eliminar la cuenta A si podía suplantarla para editar descripciones de categorías, preguntas frecuentes, etc. Así que usé B para suplantar a A y realicé varios cambios para probarlo; todo funcionó perfectamente.

Hasta que me pregunté si también podría suplantar la cuenta del bot del foro. Así que, mientras seguía suplantando a A (quien resultó ser un administrador), decidí suplantar a C. Funcionó, excelente, así que con diligencia cerré sesión y seguí con mi día.

Ahora, cuando inicio sesión como B, ya no puedo suplantar a A ni a C (otros usuarios están bien). El lugar donde debería aparecer el botón solo muestra el mensaje: “Los administradores y moderadores no pueden ser eliminados”.

Los registros indican que “B suplantó a A” y “A suplantó a C”.

No estaba seguro de si esto merece un informe de error, ya que actualmente no tengo forma de reproducir mis pasos, o si existe una manera sencilla de solucionarlo.

Gracias de antemano,
Flo

¡Hola Flo, bienvenido a la comunidad :waving_hand:t2:!

El botón de Suplantar sigue ahí y yo estoy en la última versión.

¿Es posible iniciar sesión en la cuenta Admin A utilizando /users/admin-login para acceder mediante correo electrónico? ¿Eso podría ayudarte a desatrar el nudo?

2 Me gusta

Hola Gavin,

¿Cómo puedo saber en qué versión estoy a través de la interfaz? En el Panel de control dice que la última actualización fue el 3 de agosto, pero no veo ningún número de versión.

Gracias

¡Hola JammyDoger!

¡No sabía que existía esa ruta! Sin duda, eso resuelve el problema de eludir DiscourseConnect, aunque no he logrado desenredar el nudo, por así decirlo. Sin embargo, aparecen los botones de “Suplantar” para el usuario A, así que asumo que actualmente no están suplantando a nadie.

Puedes ver el código fuente. No es difícil de encontrar.

Visita /u/admin-login y cambia el correo electrónico de la cuenta de administrador por uno que permita iniciar sesión mediante SSO. También podrías cambiar la dirección desde la consola de Rails.

1 me gusta

Hola Jay,

Simplemente asumí por error que, si estabas ocultando deliberadamente la información a los administradores, entonces no sería pública. Que sea la 2.8.0.beta4.

En cuanto a tu segunda sugerencia, no quiero hacer eso, ya que el usuario A no tiene un equivalente en mi otro sistema; sin embargo, cualquier usuario podría tener potencialmente una cuenta en el foro.

¿Puedes cerrar sesión ahora en la cuenta Admin A para asegurarte de que se haya restablecido a administrador y no esté suplantando a nadie?

(y cierra sesión en Admin B también, por si acaso :slightly_smiling_face:)

¡Hola JammyDodger!

Sí, cerré sesión en ambas y volví a entrar en B, pero nada :upside_down_face:

¿El tuyo se ve así?

Eso es todo lo que tengo en mi pequeño barril de conocimientos. :slightly_smiling_face: No estaba seguro de si los administradores podían hacerse pasar por otros administradores (pensé que solo los desarrolladores podían). ¿Eliminaste al Administrador B de esta lista?

Espero que alguien con conocimientos más profundos pueda aportar algo más relevante. :slightly_smiling_face::crossed_fingers:

1 me gusta

Hola Gavin,

No, no veo una sección de Versión.

Entonces, tu cuenta no es de Administrador.

Te sugiero agregar tu Cuenta B a la sección de Desarrolladores en el archivo app.yml, como mencionó @JammyDodger.

  ## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
  ## en el registro inicial, ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
  DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'
2 Me gusta

Parece que, al final, ibas por buen camino, ¡gracias!
Tu aportación fue muy apreciada ˆˆ

2 Me gusta

¡Eso funcionó, los botones de suplantación han vuelto! Gracias, Gavin ˆˆ

Aunque todavía no veo la sección de Versiones del panel de control y sigue sin quedar claro por qué pude suplantarme a alguien en primer lugar.

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.