Chamilo
Chamilo 1.11 - Español
Chamilo 1.11 - Español
  • Introduction
  • Manual del Profesor
    • Introducción
      • ¿Qué es Chamilo?
      • Acerca de esta guía
      • ¿A quién está dirigida esta guía?
      • Cómo utilizar esta guía.
      • Usabilidad general
    • ¿Por que Chamilo?
      • Paradigmas de la formación
      • Elementos comunes de la interfaz
    • La página de inicio de Chamilo
    • Registrarse en la plataforma
    • Encontrando el camino en Chamilo
    • Creación de cursos
    • Control del acceso al curso
    • Organizar los cursos
      • Categorías Personales
      • Suscribirse a otros cursos
      • Iconos de gestión del curso
    • Administración del curso
    • Editor en línea (teacher/WYSIWYG)
      • Herramientas variables
      • Subir una imagen
    • Página principal del curso
      • Texto de introducción
      • Herramientas de creación de contenidos
      • Herramientas de interacción
      • Herramientas de Administración
    • Primeros pasos: Documentos
      • Crear un directorio
      • Cambiar rápidamente de directorio
      • Importar un documento
      • Creación de contenido en Chamilo
      • Guardando documentos
      • Borrando un archivo o un directorio
      • Análisis de la cuota de espacio de un curso
      • Presentación de Imágenes
    • Interactividad: Ejercicios
      • Introducción
      • Creando un nuevo ejercicio
      • Retroalimentación, resultados y respuestas correctas
      • Tipos de ejercicios
      • Añadiendo preguntas a un ejercicio
      • Reuso de preguntas existentes
      • Importación: HotPotatoes, IMS/QTI2, Excel
      • Resultados de las pruebas
      • Ejercicios de tipo autoevaluación
    • Comunicación: Foros
      • Usando las vistas del foro
      • Añadir categorías al foro
      • Añadir foro
      • Gestionar las categorías de un foro
      • Gestionar foros
      • Comenzar un nuevo tema
      • Administrar hilos de discusión
      • Administrar mensajes
      • Evaluar los estudiantes
      • Dar una puntuación a un mensaje
      • Añadir mensajes a un hilo
      • Responder a un mensaje específico
      • Citar un mensaje anterior
      • Responder o Responder a este hilo
      • Buscar elementos en el foro
    • Estructura: Rutas de aprendizaje
      • Introducción
      • Crear una rutas de aprendizaje
      • Añadir Objetos de aprendizaje y Actividades
      • Importar AICC y SCORM
      • Gestión de lecciones
      • Prerrequisitos
      • Generar certificados
    • Informes
      • Seguimiento de los alumnos
      • Mostrar datos individuales de los alumnos
      • Informes del curso
      • Informe de recursos
      • Informe sobre Ejercicios/Pruebas
    • Tareas
      • Creación de tareas
      • Finalización de las tareas de los estudiantes
      • Administrar tareas
      • Configuración de la evaluación de tareas
      • Fechas de caducidad de la tarea
      • Marcar tareas
    • Usuarios
      • Inscribir usuarios
    • Evaluaciones
      • Pre-configuración de evaluaciones
      • Crear un componente de evaluación presencial
      • Añadir un componente de evaluación en línea
      • Vista plana
      • Gestionar actividades
      • Competencias
    • Wiki
      • Iniciando la wiki
      • Enlazar una nueva página
      • Añadir una página huérfana
      • Comentando una página
      • Otras características de la wiki
    • Enlaces
      • Categorías de Enlaces
      • Enlaces
      • Gestionar enlaces
      • Verificador de enlaces
    • Anuncios
      • Añadir un anuncio
      • Gestión de anuncios
    • Glosario
      • Nuevos términos
      • Gestión del glosario
    • Asistencias
      • Crear una hoja de asistencias
      • Registrar asistencias
    • Programación didáctica
      • Crear una unidad didáctica
      • Definir la programación
      • Crear etapas de avance temático
    • Agenda
      • Añadir un evento al agenda de curso
      • Importar y exportar eventos
      • Añadir un evento a la agenda personal
    • Compartir documentos (teacher/dropbox)
      • Carpetas
      • Enviar un archivo a usuarios específicos
      • Gestionar archivos compartidos
      • Leer y agregar comentarios sobre un archivo
    • Grupos
      • Crear un grupo
      • Parámetros de grupos
      • Auto-llenado de un grupo
      • Llenado manual de un grupo
      • Entrar dentro del espacio de grupo
      • Vista general y exportación de miembros del grupo
      • Gestión de grupos
    • Chat
      • Enviar un mensaje
      • Vaciar mensajes
    • Encuestas
      • Creación de encuestas
      • Añadir preguntas a la encuesta
      • Vista previa de la encuesta
      • Publicación de la encuesta
      • Resultados
      • Gestión de encuestas
    • Notas personales
      • Creación de notas
      • Ordenar notas
    • Blogs
      • Creación de un blog
      • Inscribir alumnos a un blog
      • Nuevo artículo/tarea
      • Administración de tareas y roles
      • Asignar una tarea o rol a un alumno
      • Indicar la ejecución de una tarea
      • Administración de permisos de los alumnos
    • Configuración del curso
      • Actualizar la configuración general de un curso
      • Visibilidad y acceso
      • Notificaciones por e-mail
      • Permisos de usuario
      • Configuración del chat
      • Configuración de las lecciones
      • Configuración de las programaciones didácticas
    • Mantenimiento del curso
      • Crear una copia de seguridad
      • Importar una copia de seguridad
      • Copiar el curso
      • Reciclar este curso
    • Informes
      • Informes de cursos y sesiones
    • Red Social
      • Información del perfil de usuario
      • Mensajería Interna
      • “Amigos”
      • Grupos
      • Mis archivos
    • Vista de sesiones
      • Pestaña Cursos
      • Pestaña lecciones
      • Mis pruebas
      • Pestaña Mis estadísticas
    • Apéndice
      • Glosario
      • Preguntas frecuentes
      • Licencia de uso de este manual
      • Índice de ilustraciones
      • Document history
  • Manual del Administrador
    • Introducción
    • Instalación y configuración
      • Servidor
      • Asistente de instalación
      • Actualización de la plataforma Chamilo.
    • Copias de seguridad
      • Copia de seguridad fuera de Chamilo
      • Copia de seguridad por la interfaz de Chamilo
      • Recuperando copias de seguridad
    • Administración
      • Administrar la plataforma
      • Administrar los « Usuarios »
      • Administrar los « Cursos »
      • Administrar las « Sesiones de formación »
      • Administrar la configuración del sistema
      • Administrar el RGPD
      • Cambios en esta versión
    • Informes
      • Lista de informes
    • Funcionalidades globales
      • Multi-URL
      • Videoconferencia
      • Chamilo Rapid (admin/conversion ppt)
      • Modificar estilos
      • Open Badges
      • Competencias y certificados
      • Plugin xAPI
    • Apéndice
      • Estándares soportados
      • Preguntas frecuentes
      • Licencia
      • Historial del documento
  • Manual del Desarrollador
    • Introducción
    • Estructura de archivos de Chamilo y base de datos
      • Estructura de base de datos de Camilo LMS hoy en día
        • Diccionario de datos
    • Plugins
    • Servicios web
      • SOAP, REST y XML-RPC
      • Conexión y llave de seguridad
      • Restricciones sobre la IP de llamada
      • Otros métodos
Powered by GitBook
On this page
Export as PDF
  1. Manual del Desarrollador
  2. Servicios web

Conexión y llave de seguridad

El mecanismo de autenticación de los servicios web es un poco raro, así que dejenos darle un ejemplo de como haríamos para llamar un servicio que cree un usuario en Chamilo desde otra aplicación en PHP... luego explicaremos las distintas partes.

$url = 'https://chamilo.net/main/webservices/';
$soap = new SoapClient($url.'registration.soap.php?wsdl');

// obtiene su propia IP, tal como la ve el servidor de Chamilo (necesaria
// para elaborar la clave de seguridad)
$myIp = file_get_contents($url.'testip.php');

// usa la security_key como definida en main/inc/conf/configuration.php
$key = '23534f3223a3cb234234324208';

// ahora podemos construir la clave que necesitamos
$finalKey = sha1($myIp.$key);

// prepara los detalles para mandar al servicio (en forma de array)
$params = array(
    'secret_key' => $finalKey,
    'firstname' => 'Yannick',
    'lastname' => 'Warnier',
    'status' => 5,
    'loginname' => 'ywarnier',
    'password' => '243fvsdfvs6dfv657dfvs32dfvs34dfv',
    'encrypt_method' => 'sha1',
    'email' => 'y@chamilo.org',
    'language' => 'spanish',
    'phone' => '',
    'expiration_date' => '2015-01-01',
    'original_user_id_name' => 'external_user_id',
    'original_user_id_value' => 34, 
    'official_code' => 34, 
    'extra' => array()
);

// finalmente, llamamos al servicio
$soap->WSCreateUserPasswordCrypted($params);

Al inicio, hemos formado una URL para acceder al WSDL. La mayoría de los archivos en main/webservices/ (casi todos) pueden ser llamados con un sufijo “?wsdl” para mostrar el WSDL (la presentación estructurada de las funciones disponibles). Esto debería ser suficiente para que cualquier cliente SOAP sepa qué funciones están disponibles para una llamada.

Luego hemos buscado una IP como el contenido del script testip.php. Este script está ahí específicamente para ayudarnos a formar la llave secreta: necesitamos mostrar al servidor que sabemos desde qué IP estamos llamando. Usando file_get_contents(), podemos obtener esta información directamente dentro de una variable.

Luego definimos una clave ($key)… Esta solamente la podemos obtener a través de un acceso directo al servidor web. Actua como una clave compartida (“shared key”) entre los dos servidores. Tenemos que abrir el archivo app/config/configuration.php, buscar la línea con $_configuration['security_key'], y luego copiar su valor dentro de nuestro script para formar nuestra clave secreta final. Esta es la que mandaremos al servicio web.

Finalmente, hemos preparado el array $params y llamado el servicio WSCreateUserPasswordCrypted(). Este servicio es una versión especial de WSCreateUser() que solo funciona si usamos el mismo método de cifrado de contraseñas de ambos lados (se tiene que mencionar en el parámetro encrypt_method que por ahora solo acepta 'md5' y 'sha1').

El parámetro original_user_id_name es lo que permite hacer el enlace entre Chamilo y nuestro servicio externo. Basta con darle un nombre constante que represente nuestro sistema y el hecho que se trata de un ID de usuario (por ejemplo joomla_uid sería un buen nombre para una conexión con un sistema Joomla, si es que este es el único sistema Joomla con el cual lo conectamos).Luego podemos darle el valor del ID del usuario en nuestro sistema externo dentro del parámetro original_user_id_value. Con este par de valores, podrá volver a editar o borrar cualquier usuario anteriormente creado via el servicio web : Chamilo mantendrá una relación entre el mismo y su sistema externo gracias al almacenamiento de estos datos.

La misma lógica funciona con los cursos y las sesiones: mantenemos, dentro de la base de datos de Chamilo, el dato del ID externo de esta entidad.

PreviousSOAP, REST y XML-RPCNextRestricciones sobre la IP de llamada

Last updated 4 years ago