Introducción a las extensiones de seguridad: Reporting Services (SSRS)

Una extensión de seguridad de Reporting Services permite la autenticación y autorización de usuarios o grupos; es decir, permite a distintos usuarios iniciar sesión en un servidor de informes y, en función de sus identidades, realizar diferentes tareas o operaciones. De forma predeterminada, Reporting Services utiliza una extensión de autenticación basada en Windows que utiliza los protocolos de cuenta de Windows para comprobar las identidades de los usuarios que indican que tienen cuentas en el sistema. Reporting Services utiliza un sistema de seguridad basada en roles para autorizar a los usuarios. El modelo de seguridad basado en roles Reporting Services es similar a los modelos de seguridad basados en roles de otras tecnologías.

Dado que las extensiones de seguridad están basadas en una API abierta y extensible, puede crear nuevas extensiones de autenticación y de autorización en Reporting Services. En el ejemplo siguiente se muestra una implementación típica de extensión de seguridad que usa la autenticación y autorización basada en formularios:

Screenshot of the Reporting Services security extension process.

Como se muestra en la ilustración, la autenticación y autorización se producen como sigue:

  1. Un usuario intenta acceder al portal web mediante una dirección URL y se le redirige a un formulario que recopila las credenciales del usuario para la aplicación cliente.

  2. El usuario envía las credenciales al formulario.

  3. Las credenciales del usuario se envían al servicio web de Reporting Services a través del método LogonUser.

  4. El servicio web llama la extensión de seguridad proporcionada por el cliente y comprueba que el nombre de usuario y la contraseña existen en la entidad de seguridad personalizada.

  5. Después de la autenticación, el servicio web crea un vale de autenticación (conocido como una "cookie"), lo administra y comprueba el rol del usuario para la página Inicio del portal web.

  6. El servicio web devuelve la cookie al explorador y muestra la interfaz de usuario adecuada en el portal web.

  7. Una vez autenticado el usuario, el explorador realiza las solicitudes al portal web a la vez que transmite la cookie en el encabezado HTTP. Estas solicitudes son una respuesta a las acciones del usuario dentro del portal web.

  8. La cookie se transmite en el encabezado HTTP al servicio web junto con la operación del usuario solicitada.

  9. La cookie se valida y, si es válida, el servidor de informes devuelve el descriptor de seguridad y otra información relacionada con la operación solicitada desde la base de datos del servidor de informes.

  10. Si la cookie es válida, el servidor de informes realiza una llamada a la extensión de seguridad para comprobar si el usuario está autorizado para realizar la operación concreta.

  11. Si el usuario está autorizado, el servidor de informes realiza la operación solicitada y devuelve el control al autor de las llamadas.

  12. Una vez autenticado el usuario, el acceso URL al servidor de informes utiliza la misma cookie. La cookie se transmite en el encabezado HTTP.

  13. El usuario continúa solicitando operaciones en el servidor de informes hasta que finaliza la sesión.

Cuándo implementar una extensión de seguridad

Se recomienda que, siempre que sea posible, se use la autenticación de Windows. Sin embargo, la autenticación y autorización personalizadas para Reporting Services podrían ser adecuadas en los dos casos siguientes:

  • Tiene una aplicación de Internet o extranet que no puede usar cuentas de Windows.

  • Tiene usuarios y roles personalizados y necesita proporcionar un esquema de autorización correspondiente en Reporting Services.