Terms of Service
Before you proceed to ILIAS you accept the following Terms of Service.
También ocurre lanzando el consumidor LTI mediante nueva ventana o ventana propia.
Este problema ocurre específicamente al actuar ILIAS como proveedor, y ocurre consumiendo tanto desde otra plataforma ILIAS como desde una plataforma Moodle.
Es debido al comportamiento de los navegadores al tratar las cookies, ya que por defecto la cookie de sesión de ILIAS (PHPSESSID) se establece con el parámetro "SameSite" en Lax.
Este problema impide establecer la sesión de usuario, ya que el navegador detecta esta cookie como "Cookie de terceros" y es bloqueada, impidiendo su funcionamiento.
Una vez detectado el problema hemos tratado de encontrar una solución que permitiera corregir este comportamiento sin modificar los archivos ajenos al componente LTI. Efectivamente, encontramos, siguiendo las indicaciones de @Fred una posibilidad: Establecer el parámetro "SameSite" en None desde el método "launch" en la clase "ilLTIConsumerContentGUI".
El problema de dicha solución es que solo corrige el error en los casos en los que se muestra el contenido en la misma ventana o en una nueva, persistiendo el error en los casos en los que empleamos un iFrame. Tras encontrarnos con este obstáculo hemos investigando y el punto concreto en el que debemos establecer la cookie de sesión con el parámetro "SameSite" en None es en el método "doLTIAuthentication" perteneciente a la clase "ilStartUpGUI", ya que es debido al flujo en el código, modificar este parámetro en un punto posterior implica (explicar el problema del token de sesión y que es modificado posteriormente, haciendo que ya no se válido para establecer la sesión del usuario).
Después de haber indagado en el código de ILIAS, hemos observado que el método "doLTIAuthentication" solamente se emplea en aquellos casos en los que se accede a la plataforma mediante LTI, por lo que entendemos que no debería implicar ningún tipo de contratiempo en el comportamiento de la plataforma cuando está siendo consumida mediante LTI.
De manera adicional, establecemos el path base para la cookie en "/" ya que (explicar el por qué).