Autentificación externa con webservice

Autentificación externa con webservice

de Ana Caballero -
Número de respuestas: 2

Hola

Lo primero decir que soy novata en Moodle, asi que cualquier ayuda será bienvenida.

Nosotros tenemos un Moodle 3.2 con Cursos, y desde una web se quiere dar acceso a unos usuarios que están dados de alta en esa web externa a nuestros cursos.

Desde esta web los usuarios se identifican y acceden a sus cursos que les redirige a nuestro moodle. 

Ellos me han dado la definición de unos servicios web que me dan para la autentificación de usuario y contraseña, y para el listado de cursos. Todo esto mediante un token que tiene una hora de validez.

Como datos, me han proporcionado una URL y un usuario y contraseña para utilizar los WebService.

¿Me podéis ayudar, porque sinceramente no tengo nada claro como abordarlo?

Muchas gracias

Un saludo

Promedio de valoraciones: -
En respuesta a Ana Caballero

Re: Autentificación externa con webservice

de Francisco Gutierrez -

Hola Ana.

Básicamente tienes que generar algo de lógica de tu lado para parsear la salida generada por el web service, que usualmente es XML.

En cierta universidad hemos implementado un esquema similar usando la autenticación de moodle basada en una db externa, algo así:

  1. Un archivo php de lógica propia se conecta N veces al día al servicio web y actualiza una db con estructura propia (no es la de Moodle).  Esta db contiene usuarios y cursos.

  2. El cron de Moodle se encarga de tomar los datos de esta db intermedia e insertar o actualizar lo que considere necesario en la db de Moodle.

  3. Se debe realizar el mapeo entre las tablas de la db propia y la db de moodle para que sepa qué campo corresponde a qué otro.  También otras varias cosas que configurar del lado de Moodle.

Ahora bien, el tema del token podría complicarte un poco ya que tal vez deberías consultar el servicio web cada vez que el usuario se autentica, por si el token ya haya caducado...

Por otra parte tengo mis serias dudas acerca de la conveniencia de exponer contraseñas usando un servicio web (aunque esté protegido).

Es lo que hay sonrisa

Saludos,
En respuesta a Francisco Gutierrez

Re: Autentificación externa con webservice

de Ana Caballero -

Hola Francisco

Lo primero muchas gracias por tu respuesta.

Para que se entienda mejor el proceso es el siguiente:

 1.- Un usuario entra en esa web externa y se autentifica.

 2.- Desde esa web donde tiene su listado de cursos, tiene un botón que le redirige a nuestro moodle. (https://.../login.php)

 3.- En login.php, le pide al usuario a el nombre y la contraseña, y cuando pulse al botón de acceder, entiendo que se debe consultar con los WebService si este usuario, con esta contraseña puede acceder a este curso.

 4.- si todo es correcto tendría que acceder a nuestro curso de moodle.

Mis dudas son:

1.- ¿Esto no requiere que yo también tenga registrados estos usuarios en mi entorno?

2.- Yo ya tengo mi login.php normal, pero no tengo claro como añadir la consulta al otro sistema. 

Gracias de antemano