
Quote from Ivanes82 on August 13, 2022, 5:26 pmEsoy intentando comprender como trabajar con este plugin, y no hay manera. No entiendo el uso de los token, como añadirlo a la app de visualneo, sin comprometer la seguridad, ya que entiendo que el token estaria visible en el codigo. No entiendo como hacer que los usuarios puedan registrarse en el sistema desde la app sin comprometer la seguridad. Siento una frustación enorme de no encontrar documentacion para poder usarlo en visualneo.
I am trying to understand how to work with this plugin, and there is no way. I do not understand the use of tokens, how to add it to the visualneo app, without compromising security, since I understand that the token would be visible in the code. I don't understand how to make it possible for users to log into the system from the app without compromising security. I feel a huge frustration of not finding documentation to be able to use it in visualneo.
Esoy intentando comprender como trabajar con este plugin, y no hay manera. No entiendo el uso de los token, como añadirlo a la app de visualneo, sin comprometer la seguridad, ya que entiendo que el token estaria visible en el codigo. No entiendo como hacer que los usuarios puedan registrarse en el sistema desde la app sin comprometer la seguridad. Siento una frustación enorme de no encontrar documentacion para poder usarlo en visualneo.
I am trying to understand how to work with this plugin, and there is no way. I do not understand the use of tokens, how to add it to the visualneo app, without compromising security, since I understand that the token would be visible in the code. I don't understand how to make it possible for users to log into the system from the app without compromising security. I feel a huge frustration of not finding documentation to be able to use it in visualneo.
Quote from Juancasev on August 13, 2022, 6:42 pm@ivanes82
Me parece interesantísimo el hilo que acabas de abrir.
Yo había entendido que debo usar un token restringido únicamente
a la autentificacion y adición de usuario registrado (auth y save) para poder operar con las
colecciones ya que según entendi, al registrar al usuario el token pasa a ser el del
usuario.(Según los privilegios que este tenga)El problema es que he interconectado varias de mis aplicaciones (incluso de Neoedge)
que comparten datos a traves de neoCMS.
A mi no se me ocurre como hacer para leer y subir datos a las colecciones, en los
casos en los que no tenga porque mediar registro de usuario (precisaria un token
que no deberia estar expuesto, por el mismo motivo que comentas...)Un saludo.
I had understood that I must use a restricted token only
to the registered user authentication (auth and save) to be able to operate with the
collections since as I understood, when registering the user the token becomes that of the
user. (According to the privileges that this has)The problem is that I have interconnected several of my applications (including Neoedge)
that share data through neoCMS.
I can't think of how to read and upload data to the collections, in the
cases in which you do not have to mediate user registration (you would need a token
that should not be exposed, for the same reason you comment...)Regards.
Me parece interesantísimo el hilo que acabas de abrir.
Yo había entendido que debo usar un token restringido únicamente
a la autentificacion y adición de usuario registrado (auth y save) para poder operar con las
colecciones ya que según entendi, al registrar al usuario el token pasa a ser el del
usuario.(Según los privilegios que este tenga)
El problema es que he interconectado varias de mis aplicaciones (incluso de Neoedge)
que comparten datos a traves de neoCMS.
A mi no se me ocurre como hacer para leer y subir datos a las colecciones, en los
casos en los que no tenga porque mediar registro de usuario (precisaria un token
que no deberia estar expuesto, por el mismo motivo que comentas...)
Un saludo.
I had understood that I must use a restricted token only
to the registered user authentication (auth and save) to be able to operate with the
collections since as I understood, when registering the user the token becomes that of the
user. (According to the privileges that this has)
The problem is that I have interconnected several of my applications (including Neoedge)
that share data through neoCMS.
I can't think of how to read and upload data to the collections, in the
cases in which you do not have to mediate user registration (you would need a token
that should not be exposed, for the same reason you comment...)
Regards.

Quote from luishp on August 14, 2022, 11:33 am@ivanes82 @juancasev, vamos a ir por partes:
- En neoCMS tenemos la posibilidad de crear API keys con diferentes permisos, como por ejemplo leer los contenidos de una colección o hacer login desde nuestra aplicación. Hemos de ser muy cuidadosos con esa API key, ya que será visible en nuestra aplicación y, si esta es pública y los permisos son de escritura sería un problema de seguridad.
- Lo normal (aunque existen más posibilidades) es dar de alta a los usuarios desde el backend de neoCMS igual que se hace por ejemplo en WordPress. Podemos tener diferentes grupos de usuarios con diferentes permisos.
Imaginemos que queremos que los usuarios puedean loguearse en nuestra aplicación. Lo primero que necesitamos es asignar un token "por defecto" que permita loguearse utilizando neoCmsSetToken y una API key con permisos para este end-point: /api/cockpit/authUser
Esta API key puede verse en el código fuente por lo que debe tener los permisos justos.
Una vez el usuario se loguea correctamente, el token es sustituido automáticamente por el suyo propio (se le envía desde el servidor) que le da permisos para operar de acuerdo al grupo al que pertenece. Este token no es visible en el código fuente y queda almacenado temporalmente en una variable. Sólo es enviado al cliente una vez que el usuario ha sido reconocido con su usuario y contraseña.
Cuando el usuario hace log-out (sale) su token se borra y se sustituye autométicamente por la API key que inicialmente definimos utilizando neoCmsSetToken.
Si quieres que los usuarios se den da alta desde tu aplicación y no hacerlo desde neoCms, hay que ser muy cuidadosos. Puedes por ejemplo hacer que se den de alta en un grupo sin permisos o con permisos muy restringidos y después validarlos a mano para cambiarles de grupo a uno con más permisos.
Espero haberos aclarado algunas dudas.
Saludos!
@ivanes82 @juancasev, vamos a ir por partes:
Imaginemos que queremos que los usuarios puedean loguearse en nuestra aplicación. Lo primero que necesitamos es asignar un token "por defecto" que permita loguearse utilizando neoCmsSetToken y una API key con permisos para este end-point: /api/cockpit/authUser
Esta API key puede verse en el código fuente por lo que debe tener los permisos justos.
Una vez el usuario se loguea correctamente, el token es sustituido automáticamente por el suyo propio (se le envía desde el servidor) que le da permisos para operar de acuerdo al grupo al que pertenece. Este token no es visible en el código fuente y queda almacenado temporalmente en una variable. Sólo es enviado al cliente una vez que el usuario ha sido reconocido con su usuario y contraseña.
Cuando el usuario hace log-out (sale) su token se borra y se sustituye autométicamente por la API key que inicialmente definimos utilizando neoCmsSetToken.
Si quieres que los usuarios se den da alta desde tu aplicación y no hacerlo desde neoCms, hay que ser muy cuidadosos. Puedes por ejemplo hacer que se den de alta en un grupo sin permisos o con permisos muy restringidos y después validarlos a mano para cambiarles de grupo a uno con más permisos.
Espero haberos aclarado algunas dudas.
Saludos!

Quote from Ivanes82 on August 14, 2022, 1:17 pmMuchas gracias @luishp por la explicación, ahora me han quedado mas claros los conceptos, creo que con los años voy perdiendo facultades :)
Tengo una duda más. De que manera puedo crear un token que solo tenga permisos crear usuarios ( que no puedan ni editarlos ni borrarlos) y que esos usuarios
creados puedan añadir contenido, pero no borrarlo o editarlo, o ya seria genial que pudiesen editarlo pero solo los creados por ellos mismos.Otra consulta sería si al codigo que se sube al servidor tiene modificaciones para que funcione con visualneo o es igual al original, lo pregunto, porque se ha ido actualizando y queria saber si vale con subir la nueva versión que hay en la web oficial, y podria funcionar con visualneo.
Muchas gracias por tu tiempo Luis.
Muchas gracias @luishp por la explicación, ahora me han quedado mas claros los conceptos, creo que con los años voy perdiendo facultades :)
Tengo una duda más. De que manera puedo crear un token que solo tenga permisos crear usuarios ( que no puedan ni editarlos ni borrarlos) y que esos usuarios
creados puedan añadir contenido, pero no borrarlo o editarlo, o ya seria genial que pudiesen editarlo pero solo los creados por ellos mismos.
Otra consulta sería si al codigo que se sube al servidor tiene modificaciones para que funcione con visualneo o es igual al original, lo pregunto, porque se ha ido actualizando y queria saber si vale con subir la nueva versión que hay en la web oficial, y podria funcionar con visualneo.
Muchas gracias por tu tiempo Luis.

Quote from Ivanes82 on August 14, 2022, 1:22 pmOtra consulta que se me habia pasado realizarte, es a la hora de crear las claves para la api donde está la documentacion para crear las reglas.
Otra consulta que se me habia pasado realizarte, es a la hora de crear las claves para la api donde está la documentacion para crear las reglas.

Quote from luishp on August 15, 2022, 10:01 amTengo una duda más. De que manera puedo crear un token que solo tenga permisos crear usuarios ( que no puedan ni editarlos ni borrarlos)
@ivanes82 Fíjate que cada comando tiene en su descripción un "endpoint" al que debes dar permiso en su correspondiente token o API key.
En el caso de neoCmsAddUser sería este: /api/cockpit/saveUsery que esos usuarios creados puedan añadir contenido, pero no borrarlo o editarlo, o ya seria genial que pudiesen editarlo pero solo los creados por ellos mismos.
Para eso tienes que definir un grupo y asignarle los permisos adecuados, en este caso al endpoint: /api/collections/save
Esto les permitirá añadir contenidos (y modificarlos en caso de saber el "id" de ese contenido, que no es fácil de saber si no tienes acceso a él)Otra consulta sería si al codigo que se sube al servidor tiene modificaciones para que funcione con visualneo o es igual al original, lo pregunto, porque se ha ido actualizando y queria saber si vale con subir la nueva versión que hay en la web oficial, y podria funcionar con visualneo.
neoCms es Cockpit CMS en su versión anterior pero con una configuración previa y varios "add-ons" preinstalados. La versión actual de Cockpit CMS salió hace muy poco y es bastante diferente, por lo que el plugin neoCms no funcionará directamente con ella. De momento mi impresión es que esta nueva versión incluye muchas menos funcionalidades (apenas tiene "endpoints") y que no merece la pena actualizar nuestro plugin o sacar uno nuevo (al menos de momento).
Otra consulta que se me habia pasado realizarte, es a la hora de crear las claves para la api donde está la documentacion para crear las reglas.
Cada comando del plugin neoCms incluye en su descripción el "endpoint" que debes habilitar.
Ahora fíjate en las captura de pantalla que adjunto, donde se ven permisos que pueden definirse a tres niveles:
- A nivel de API key (no asignada a ningún usuario)
- A nivel de grupo de usuarios.
- A nivel de colección (puedes definir permisos para cada colección y grupo)
Si le coges el truco, las posibilidades son enormes :)
Tengo una duda más. De que manera puedo crear un token que solo tenga permisos crear usuarios ( que no puedan ni editarlos ni borrarlos)
@ivanes82 Fíjate que cada comando tiene en su descripción un "endpoint" al que debes dar permiso en su correspondiente token o API key.
En el caso de neoCmsAddUser sería este: /api/cockpit/saveUser
y que esos usuarios creados puedan añadir contenido, pero no borrarlo o editarlo, o ya seria genial que pudiesen editarlo pero solo los creados por ellos mismos.
Para eso tienes que definir un grupo y asignarle los permisos adecuados, en este caso al endpoint: /api/collections/save
Esto les permitirá añadir contenidos (y modificarlos en caso de saber el "id" de ese contenido, que no es fácil de saber si no tienes acceso a él)
Otra consulta sería si al codigo que se sube al servidor tiene modificaciones para que funcione con visualneo o es igual al original, lo pregunto, porque se ha ido actualizando y queria saber si vale con subir la nueva versión que hay en la web oficial, y podria funcionar con visualneo.
neoCms es Cockpit CMS en su versión anterior pero con una configuración previa y varios "add-ons" preinstalados. La versión actual de Cockpit CMS salió hace muy poco y es bastante diferente, por lo que el plugin neoCms no funcionará directamente con ella. De momento mi impresión es que esta nueva versión incluye muchas menos funcionalidades (apenas tiene "endpoints") y que no merece la pena actualizar nuestro plugin o sacar uno nuevo (al menos de momento).
Otra consulta que se me habia pasado realizarte, es a la hora de crear las claves para la api donde está la documentacion para crear las reglas.
Cada comando del plugin neoCms incluye en su descripción el "endpoint" que debes habilitar.
Ahora fíjate en las captura de pantalla que adjunto, donde se ven permisos que pueden definirse a tres niveles:
Si le coges el truco, las posibilidades son enormes :)
Uploaded files:
Quote from Ivanes82 on August 15, 2022, 11:46 pmMuchisimas gracias Luis por tu tiempo, ahora si que entiendo como funciona, he estado bastante torpe, y no habia manera de enterarme de cono funcionaba. Por fin puedo echarlo a andar. Sobre lo de usar la ultima versión era curiosidad, por si solo cambiando los archivos del servidor a la ultima version funcionaba pues lo hacía, pero que no es algo que me preocupara.
Muchisimas gracias Luis por tu tiempo, ahora si que entiendo como funciona, he estado bastante torpe, y no habia manera de enterarme de cono funcionaba. Por fin puedo echarlo a andar. Sobre lo de usar la ultima versión era curiosidad, por si solo cambiando los archivos del servidor a la ultima version funcionaba pues lo hacía, pero que no es algo que me preocupara.