Suponga el siguiente escenario. Usted posee un sistema web en el que los usuario se loguean y consultan una serie de cursos disponibles. Cada curso esta asociado con un grupo de la plataforma y los usuarios se encuentran replicados en ambos sistemas.

Surge el requerimiento de que el usuario pueda hacer clic en un determinado curso y automáticamente sea redirigido a la plataforma de e-learning sin volver a pasar por las validaciones de login, porque ya lo hizo la primera vez que ingresó en su sistema.

Para este caso, la plataforma brinda el servicio web autenticar_usuario_confiable(). Este servicio web funciona de manera similar a autenticar_usuario(), y genera la URL de características ya mencionadas.


Este servicio puede ser alimentado sólo con el parámetro id_usuario o con ambos parámetros id_usuario + id_grupo.


Declaración:

autenticar_usuario_confiable ( string id_usuario, int id_grupo )

Genera una URL de login automatico para un usuario en un determinado grupo


Parámetros:

id_usuario

Requerido.
Identificación del usuario

id_grupo

Opcional.
Identificación del grupo al que será ingresado el usuario


Excepciones:

Educativa::Aula::Error::UsuarioInexistente

Esta excepción se lanza cuando el usuario indicado en el parámetro no existe

Educativa::Aula::Error::GrupoInexistente

Ocurre cuando el parámetro id_grupo esta establecido pero el grupo es inexistente.

Educativa::Aula::Error::UsuarioInexistenteEnGrupo

Ocurre si se especifica el parámetros id_grupo pero este no se encuentra asignado al usuario o el grupo se encuentra desactivo.

Educativa::Aula::Error::UsuarioDesactivo

Si el usuario esta desactivo en el grupo especificado o esta desactivo en todos los grupos y no se especifica el parámetro id_grupo


Devuelve:

Una URL donde el cliente deberá hacer un redirect para completar el login


SOAP Request

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aula="urn:Educativa/Aula/">

  <soapenv:Header/>

  <soapenv:Body>

     <aula:autenticar_usuario_confiable>

        <aula:id_usuario>?</aula:id_usuario>

        <aula:id_grupo>?</aula:id_grupo>

     </aula:autenticar_usuario_confiable>

  </soapenv:Body>

</soapenv:Envelope>