Secure Single Sign-On Developer Guide

Frank Carmona Sin categorizar, SSO @es

INTRODUCCION

Este documento explica el funcionamiento de la Aplicación de Single-Sign-On (SSO) para acceso a los contenidos de la plataforma webcaStudio

A efectos de comprensión de este documento:

  • Master Account: o Cuenta Master, Empresa que tiene una sbscripción activa en webcaStudio
  • Workspace o Espacio de trabajo: Espacio de trabajo independiente para cada una de los clientes finales que pueda tener un subscriptor de webcaStudio
  • webcaStudio: Plataforma mediante la cual una organización puede organizar y publicar presentaciones, en formato “Rich-Media webcast” en directo o bajo demanda, dirigidos a un elevado número de usuarios finales que de este modo pueden acceder y participar en una presentación profesional de alta calidad on-line.
  • Aplicación de SSO Segura: Dado que en muchas ocasiones los contenidos producidos por el Cliente y servidos por la plataforma son confidenciales y /o tienen un alto valor económico, o simplemente para evitar al usuario la necesidad de logarse dos veces, Vancast propone un sistema de Single Sign On  Seguro” para que nuestros Clientes puedan integrar el acceso y datos de los usuarios finales de “Plataformas Internas de Cliente”  con  webcaStudio
  • Plataforma Interna de Cliente: Se refiere a el portal interno, intranet, portal de empleado, plataforma de e-learning, aplicación de gestión de inscripciones on-line a congresos, etc., que ya tiene el Cliente y que incluye las prestaciones de autenticación de usuarios y las de gestión de los permisos de acceso a unos u otros contenidos  

La Aplicación SSO segura es el sistema ideal para organizaciones que quieran facilitar el acceso conveniente y seguro a contenidos, en directo o bajo demanda, producidos en webcaStudio  a partir de un portal interno, intranet o plataforma de e-learning. También es conveniente este sistema para organizaciones que comercialicen conferencias on-line de pago y ya dispongan de plataforma de inscripción y gestión del pago on-line.

El sistema se basa en las siguientes premisas:

  1. Autenticación delegada: La autenticación del usuario la realiza el sistema del cliente, es decir la intranet, plataforma de e-learning o sistema de acceso a conferencias on-line.
  2. SSO (Single Sign On): El usuario una vez se ha identificado y ha sido aceptado por el sistema de origen ya no deberá volver a identificarse en la plataforma webcaStudio
  3. Acceso Seguro: La plataforma webcaStudio  debe  validar el correcto acceso del usuario desde la plataforma del cliente y garantizar que de ningún modo un usuario no autorizado pueda acceder a los contenidos servidos por la plataforma.

 

IMPLEMENTACION

La solución técnica, requerirá de una sencilla implementación  por parte del Cliente de una “aplicación interna de acceso”.  Ésta a partir de los requisitos explicados anteriormente se basa en los siguientes conceptos:

  1. Conexión URL: Para cada conjunto de contenidos en directo o bajo demanda que se conceptualiza como “evento” dentro de la plataforma webcaStudio, se genera una URL de acceso. (A partir de esta URL se puede acceder, por ejemplo, a  todos los contenidos de un congreso de varios días)
  2. Código de Idioma: Un evento puede ser retransmitido, simultáneamente, en varios idiomas. La “aplicación interna de acceso” debe enviar como parámetro el idioma al que el usuario desea acceder.
  3. Parámetros asociados a la URL enviados por “POST”: la plataforma webcaStudio requiere los datos del usuario para su correcta identificación en las funciones de interacción ponente-audiencia y también para las funciones de registro estadístico de acceso y tiempos de permanencia on-line de los usuarios, asi como para poder trazar  la actividad del usuario dentro del evento. Además, como se verá a continuación, la “aplicación interna de acceso”  deberá enviar como parámetro un HASH SHA1 para que la plataforma pueda validar que el acceso es correcto.
  4. Hash HMAC/SHA1 y PSK: La “aplicación interna de acceso “deberá producir una clave resumida y encriptada mediante HMAC/SHA1 de la siguiente forma:
    1. Vancast y cliente acordarán una clave privada (PSK)  por ejemplo “clavesecreta123”
    2. La aplicación interna de acceso realizará la concatenación de los siguientes datos 
      •  e-mail del usuario
      • account
      • PSK
      • time (en formato: UNIX)
      • URL evento

… y construirá una cadena resumen encriptada (HASH) usando el algoritmo HMAC/SHA1:

 Hash= HMAC_SHA1[( email + account+ url evento + time) , PSK]

 La “aplicación interna de acceso” se puede implementar con cualquier tecnología que sea capaz de enviar peticiones HTTPS con variables POST hacia la plataforma cloud webcaStudio.

A continuación se muestra un ejemplo de resultado que podría generar dinámicamente la “aplicación interna de acceso” una vez que el usuario está autentificado:


<form action="http://vancast.webcaStudio.net/...." method="post">
<input type="hidden" name="firstname" value="Juan" />
<input type="hidden" name="secondname" value="Díaz López" />
<input type="hidden" name="email" value="jdiaz@ascommunication.com" />
<input type="hidden" name="organization" value="ACMEComunicacion" />
<input type="hidden" name="account" value="99" />
<input type="hidden" name="lang" value="es" />
<input type="hidden" name="proxy" value="192.168.10.4" />
<input type="hidden" name="ref_id" value="customer999" />
<input type="hidden" name="time" value="1288083386" />
<input type="hidden" name="hash" value="258a9f03643b83226de02e99c3a95a41" />
<input type="submit" value="Acceder al Webcast" />
</form>

Este es el resultado del código que genera un ejemplo de “aplicación interna de acceso”. Consiste en un formulario que se configura para enviar los datos por POST a la URL del Proxy (atributo “action” del tag <form>). Esta URL se genera concatenando la variable URL Evento.

A continuación se generan unos campos invisibles que contienen las variables y sus valores

  • Los valores de Nombre, Apellidos, email, organización (en caso de que todos los usuarios pertenezcan a la misma organización se puede utilizar como campo auxiliar para determinar el departamento, la ubicación, etc.) y fecha los debe proveer la plataforma Interna de cliente. La fecha estará en formato UNIX.
  • El valor Idioma, es el código de idioma según el standard (ISO 639-1).
  • El valor de cuenta (account) corresponde al identificador de la cuenta asignado por la plataforma webcaStudio  Será provista por Vancast al cliente.
  • El valor de proxy, solo se debe usar si el Cliente usa proxy(s) internos y facilita la dirección IP del proxy que debe servir el video a ese usuario.
  • El valor ref_id es opcional i se usa para mantener una referencia al id del usuario en la plataforma interna del cliente.
  • La construcción de la variable Hash se ha explicado ya anteriormente. La PSK (Pre-Shared Key) se acordará entre Vancast y Cliente

 

Prestaciones de Seguridad porporcionadas

Una vez integrada la conexión del Cliente con webcaStudio mediante la Aplicación SSO segura los sistemas implementados por Vancast proveen las siguientes prestaciones:

  1. Aunque no se usara el protocolo HTTPS (opcional) para realizar la petición correspondiente al sistema webcaStudio,  el envío y posterior  resolución del “Hash“ por parte de la plataforma webcaStudio impiden el robo, suplantación o compartición de la identidad del usuario válido que se conecta.
  2. La ejecución de la aplicación webcaStudio  está restringida a los dominios de Vancast; así pues, ningún usuario puede intentar emular la ejecución de esta plataforma desde otro dominio para intentar saltarse el circuito de autentificación.
  3. La aplicación a las que accede un usuario genera una sesión que debe estar activa y ser válida para poder ejecutar webcaStudio.
  4. El sistema puede no aceptar simultáneamente 2 usuarios con las mismas credenciales de acceso.
  5. La plataforma webcaStudio puede realizar conexiones HTTPS para las páginas de acceso y contenidos estáticos y usar protocolo RTMPE (RTMP encriptado) para la distribución de video. (Estos requerimientos son opcionales y deben ser solicitados y especificados por el Cliente)

 

SSO no seguro 

Si el acceso seguro no es un requerimiento imprescindible, la plataforma webcaStudio facilita una manera más simple para desarrollar la “aplicación interna de acceso” de cliente. La diferencia respecto al método seguro es que no se tiene que enviar el parámetro hash|token.

 

Especificaciones y requisitos para acceso desde redes locales

Encoder

se deberán permitir las conexiones RTMP/RTMPE (puerto 1935) salientes por el Encoder que esté codificando la señal audiovisual.

Uso de Proxy(s) FMSS (Flash Media Streaming Server) en las dependencias del cliente

Se deberán permitir las conexiones RTMP/RTMPE (puerto 1935) entrantes desde los FMIS (Flash Media Interactive Servers) situados en el DataCenter de Vancast

Recepción de los streams de video desde servicios CDN provistos por la plataforma webcaStudio

Se conveniente permitir las conexiones RTMP/RTMPE (puerto 1935)  en general, aunque con el puerto http (80) abierto se puede realizar la visualización.