Configuración de la autenticación de Windows en el servidor de informes

De manera predeterminada, Reporting Services acepta solicitudes que especifican la autenticación NTLM o Negotiate. Si la implementación incluye aplicaciones cliente y exploradores que utilizan estos proveedores de seguridad, puede utilizar los valores predeterminados sin necesidad de ninguna configuración adicional. Supongamos que quiere usar un proveedor de seguridad diferente para la seguridad integrada de Windows o si modifica los valores predeterminados y quiere restaurar la configuración original. Puede usar la información de este artículo para especificar la configuración de autenticación en el servidor de informes.

Para utilizar la seguridad integrada de Windows, cada usuario que requiera acceso a un servidor de informes debe tener una cuenta de usuario de dominio o local de Windows válida. O bien, deben ser miembros de una cuenta de grupo de dominio o local de Windows. Puede incluir cuentas de otros dominios siempre que sean de confianza. Las cuentas deben tener acceso al equipo del servidor de informes y deben asignarse posteriormente a roles con el fin de lograr acceso a operaciones específicas del servidor de informes.

Deben cumplirse los siguientes requisitos:

  • Los archivos RSReportServer.config deben tener AuthenticationType establecido en RSWindowsNegotiate, RSWindowsKerberos o RSWindowsNTLM. De forma predeterminada, el archivo RSReportServer.config incluye el valor RSWindowsNegotiate si la cuenta de servicio del servidor de informes es NetworkService o LocalSystem; de lo contrario, se usa el valor RSWindowsNTLM. Puede agregar RSWindowsKerberos si tiene aplicaciones que solo utilizan la autenticación Kerberos.

    Importante

    Al utilizar RSWindowsNegotiate, se producirá un error de autenticación Kerberos si configuró el servicio del servidor de informes para ejecutarse en una cuenta de usuario de dominio y no registró un nombre de la entidad de seguridad del servicio (SPN) para la cuenta. Para obtener más información, vea Resolver los errores de autenticación Kerberos al conectarse a un servidor de informes en este tema.

  • ASP.NET se debe configurar para la autenticación de Windows. De forma predeterminada, en los archivos Web.config del servicio web del servidor de informes se incluye el valor <authentication mode="Windows">. Si lo cambia a <authentication mode="Forms">, se producirá un error en la autenticación de Windows para Reporting Services.

  • Los archivos Web.config para el servicio web del servidor de informes deben tener <identity impersonate= "true" />.

  • La aplicación cliente o el explorador deben admitir la seguridad integrada de Windows.

  • El portal web no requiere configuración adicional.

Para cambiar la configuración de autenticación del servidor de informes, modifique los valores y los elementos XML en el archivo RSReportServer.config. Puede copiar y pegar los ejemplos de este artículo para implementar combinaciones concretas.

La configuración predeterminada funciona mejor si todos los equipos cliente y servidor se encuentran en el mismo dominio o en un dominio de confianza. Además, el servidor de informes se implementa para el acceso a la intranet detrás de un firewall corporativo. Los dominios únicos y de confianza son un requisito necesario para pasar credenciales de Windows. Las credenciales se pueden pasar más de una vez si se habilita la versión 5 del protocolo Kerberos para los servidores. De lo contrario, las credenciales se pueden pasar solo una vez antes de que expiren. Para más información sobre cómo configurar credenciales para conexiones a varios equipos, vea Especificar información de credenciales y conexión para los orígenes de datos de informes.

Las instrucciones siguientes están pensadas para un servidor de informes en modo nativo. Si el servidor de informes se implementa en modo integrado de SharePoint, se deben utilizar los valores de autenticación predeterminados que especifican la seguridad integrada de Windows. El servidor de informes utiliza las características internas de la extensión de autenticación de Windows predeterminada para admitir los servidores de informes en modo integrado de SharePoint.

Protección ampliada para la autenticación

A partir de SQL Server 2008 R2 (10.50.x), se admite la protección ampliada para la autenticación. La característica de SQL Server admite el uso del enlace de canal y del enlace de servicio para mejorar la protección de la autenticación. Las características de Reporting Services tienen que usarse con un sistema operativo que admita la protección ampliada. La configuración de Reporting Services para la protección extendida viene determinada por la configuración del archivo RSReportServer.config. El archivo puede actualizarse modificando el archivo o usando las API WMI. Para más información, consulte Protección ampliada para la autenticación con Reporting Services.

Configurar un servidor de informes para usar la seguridad integrada de Windows

  1. Abra RSReportServer.config en un editor de texto.

  2. Busque <Authentication>.

  3. De las estructuras XML siguientes, copie la que mejor se ajuste a sus necesidades. Puede especificar RSWindowsNegotiate, RSWindowsNTLM y RSWindowsKerberos en cualquier orden. Debe habilitar la persistencia de autenticación si desea autenticar la conexión en lugar de cada solicitud individual. Con la persistencia de autenticación, todas las solicitudes que requieren autenticación se permiten durante la conexión.

    La primera estructura XML es la configuración predeterminada cuando la cuenta de servicio del servidor de informes es NetworkService o LocalSystem:

    <Authentication>
        <AuthenticationTypes>
            <RSWindowsNegotiate />
        </AuthenticationTypes>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

    La segunda estructura XML es la configuración predeterminada cuando la cuenta de servicio del servidor de informes no es NetworkService o LocalSystem:

    <Authentication>
        <AuthenticationTypes>
                <RSWindowsNTLM />
        </AuthenticationTypes>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

    La tercera estructura XML especifica todos los paquetes de seguridad que se utilizan en la seguridad integrada de Windows:

    <AuthenticationTypes>
        <RSWindowsNegotiate />
        <RSWindowsKerberos />
        <RSWindowsNTLM />
    </AuthenticationTypes>
    

    La cuarta estructura XML solo especifica NTLM para las implementaciones que no admiten Kerberos o para solucionar los errores de autenticación Kerberos:

    <AuthenticationTypes>
        <RSWindowsNTLM />
    </AuthenticationTypes>
    
  4. Péguela sobre las entradas existentes para <Authentication>.

    No puede utilizar Custom con los tipos RSWindows.

  5. Modifique los valores para la protección ampliada según corresponda. La protección ampliada está deshabilitada de forma predeterminada. Si estas entradas no están presentes, el equipo actual puede no estar ejecutando ninguna versión de Reporting Services que admita la protección ampliada. Para obtener más información, vea Protección ampliada para la autenticación con Reporting Services

    <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
    <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
    
  6. Guarde el archivo.

  7. Si configuró una implementación escalada, repita estos pasos con los demás servidores de informes de la implementación.

  8. Reinicie el servidor de informes para borrar las sesiones que estén abiertas en ese momento.

Resolver los errores de autenticación Kerberos al conectarse a un servidor de informes

En un servidor de informes que esté configurado para usar la autenticación Kerberos o Negotiate, se produce un error en una conexión de cliente con el servidor de informes si hay un error de autenticación Kerberos. Se producen errores de autenticación Kerberos cuando:

  • El servicio del servidor de informes se ejecuta como una cuenta de usuario de dominio de Windows y no se registró un nombre de la entidad de seguridad del servicio (SPN) para la cuenta.

  • El servidor de informes se configura con el valor RSWindowsNegotiate.

  • El explorador elige Kerberos sobre NTLM en el encabezado de autenticación en la solicitud que envía al servidor de informes.

Puede detectar el error si habilitó el registro de Kerberos. Otro síntoma del error es que se solicitan varias veces las credenciales y, a continuación, aparece una ventana del explorador vacía.

Para confirmar si hay un error de autenticación Kerberos, quite <RSWindowsNegotiate> del archivo de configuración y vuelva a intentar establecer la conexión.

Después de confirmar el problema, puede abordarlo de las maneras siguientes:

  • Registre un SPN para el servicio del servidor de informes en la cuenta de usuario de dominio. Para más información, consulte Registrar un nombre principal de servicio (SPN) para un servidor de informes.

  • Cambie la cuenta de servicio para que se ejecute en una cuenta integrada como servicio de red. Las cuentas integradas asignan el SPN HTTP al SPN de host, que se define al unir un equipo a la red. Para más información, consulta Configurar una cuenta de servicio (Administrador de configuración del servidor de informes).

  • Use NTLM. Generalmente, NTLM funciona en los casos en que no lo haga la autenticación Kerberos. Para utilizar NTLM, quite RSWindowsNegotiate del archivo RSReportServer.config y compruebe que solo se especifica RSWindowsNTLM. Si elige esta solución, puede continuar utilizando una cuenta de usuario de dominio para el servicio del servidor de informes aunque no defina un SPN para él.

En resumen, debe ejecutar comandos similares al ejemplo siguiente. Reemplace los valores según corresponda.

setspn -S HTTP/<SSRS Server FDQN> <SSRS Service Account>
setspn -S HTTP/<host header for Report server web site> <SSRS Service Account>
setspn -S HTTP/<SharePoint Server FDQN> <SharePoint Application Pool Account>
setspn -S HTTP/<host header for SharePoint site>  <SharePoint Application Pool Account>
setspn -S HTTP/Dummy <Claims to Windows Taken Service Account>

Información de registro

Hay varios orígenes de información de registro que pueden servir de ayuda para resolver problemas relacionados con Kerberos.

Atributo User-Account-Control

Determine si la cuenta de servicio de Reporting Services tiene el atributo suficiente establecido en Active Directory. Revise el archivo de registro del seguimiento del servicio de informe de errores para encontrar el valor registrado para el atributo UserAccountControl. El valor registrado está en formato decimal. Necesita convertir el valor decimal al formato hexadecimal y, a continuación, buscar ese valor en el artículo MSDN que describe el atributo User-Account-Control.

  • La entrada del registro de seguimiento del servicio de informe de errores será similar a la siguiente:

    appdomainmanager!DefaultDomain!8f8!01/14/2010-14:42:28:: i INFO: The UserAccountControl value for the service account is 590336
    
  • Una opción para convertir el valor decimal al formato hexadecimal es usar la Calculadora de Microsoft Windows. La Calculadora de Windows admite varios modos que muestran las opciones Dec y Hex. Seleccione la opción Dec, pegue o escriba en ella el valor decimal que encuentre en el archivo de registro y, a continuación, seleccione la opción 'Hex'.

  • Después, consulte el artículo User-Account-Control attribute (Atributo User-Account-Control) para derivar el atributo para la cuenta de servicio.

SPN configurados en Active Directory para la cuenta de servicio de Reporting Services.

Para registrar los SPN en el archivo de registro de seguimiento del servicio de Reporting Services, puede habilitar temporalmente la característica Protección ampliada de Reporting Services.

  • Modifique el archivo de configuración de rsreportserver.config estableciendo lo siguiente:

    <RSWindowsExtendedProtectionLevel>Allow</RSWindowsExtendedProtectionLevel>
    <RSWindowsExtendedProtectionScenario>Any</RSWindowsExtendedProtectionScenario>
    
  • Reinicie el servicio Reporting Services .

Si no quiere seguir usando la protección ampliada, establezca de nuevo los valores de configuración predeterminados y reinicie la cuenta de servicio de Reporting Services.

<RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
<RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>

Para más información, consulte Protección ampliada para la autenticación con Reporting Services.

Cómo el explorador elige Kerberos negociado o NTLM negociado

Cuando se utiliza Internet Explorer para conectarse al servidor de informes, se especifica Kerberos negociado o NTLM negociado en el encabezado de autenticación. NTLM se utiliza en lugar de Kerberos cuando:

  • La solicitud se envía a un servidor de informes local.

  • La solicitud se envía a una dirección IP del equipo del servidor de informes en lugar de a un nombre de servidor o encabezado de host.

  • El software de firewall bloquea los puertos que se usan para la autenticación Kerberos.

  • El sistema operativo de un servidor determinado no tiene habilitado Kerberos.

  • El dominio incluye versiones antiguas de los sistemas operativos Windows de servidor y de cliente que no admiten la característica de autenticación Kerberos integrada en las versiones más recientes del sistema operativo.

Además, Internet Explorer puede elegir Kerberos negociado o NTLM negociado, dependiendo de cómo se hayan configurado los valores de dirección URL, LAN y proxy.

Dirección URL del servidor de informes

Si la dirección URL incluye un nombre de dominio completo, Internet Explorer selecciona NTLM. Si la dirección URL especifica el host local, Internet Explorer selecciona NTLM. Si la dirección URL especifica el nombre de red del equipo, Internet Explorer selecciona Negotiate; esto tiene éxito o no dependiendo de que exista un SPN para la cuenta de servicio del servidor de informes.

Configuración de LAN y proxy en el cliente

La configuración de LAN y proxy que se establece en Internet Explorer puede determinar si se elige NTLM antes que Kerberos. Sin embargo, dado que la configuración de LAN y proxy varía a través de las organizaciones, no es posible determinar con precisión los valores exactos que contribuyen a los errores de autenticación Kerberos. Por ejemplo, una organización puede exigir una configuración de proxy que transforme las direcciones URL de una intranet en direcciones URL de nombre de dominio completo que se resuelven a través de las conexiones a Internet. Si se usan proveedores de autenticación diferentes para tipos distintos de direcciones URL, puede suceder que algunas conexiones tengan éxito cuando se esperaba lo contrario.

Es posible que encuentre errores de conexión que cree que se deben a errores de autenticación. Si es así, puede probar diferentes combinaciones de configuración de LAN y proxy para aislar el problema. En Internet Explorer, la configuración de LAN y proxy se encuentra en el cuadro de diálogo Configuración de la red de área local (LAN), que se abre al seleccionar Configuración de LAN en la pestaña Conexión de Opciones de Internet.

Información adicional para Kerberos y servidores de informes