none
SSRS Error 401 Unauthorized RRS feed

  • Pregunta

  • Buen dia, tengo un problema bastante intrincado con reporting services 2014. He configurado una arquitectura full windows para que desde el internet se pueda acceder a este. Sin embargo cuando entro al directorio virtual Reports (Report manager) me bota el error 401 Unauthorized, y no asi cuando entro al directorio virtual ReportServer. Revisando el log del SSRS me bota esto en particular:

    Log File

    Sobre todo la linea:

    appdomainmanager!ReportManager_0-1!1268!10/28/2016-20:46:47:: e ERROR: Remote certificate error RemoteCertificateNameMismatch encountered for url https://reporter.midominio.com/ReportServer/ReportService2010.asmx.

    Sin embargo yo no estoy utilizando https en la configuración del SSRS

    Ahora, a partir de aqui voy a extenderme un poco con el post para ir acotando puntos que derepente ya han sido tocados en anteriores preguntas que puedan parecerse a esta, yo recomiendo que se lea esta información ya que puede dar mayor perspectiva respecto al problema.

    Sucede que tengo dos entornos virtuales muy parecidos. En el entorno virtual local monte una arquitectura full windows server 2012 R2 (DNS, AD, CA, ADFS, IIS y SQL server 2008 R2). Ahora esto con el propósito de montar una app web que utilice la característica OnPremises  de cuentas organizativas. Cabe destacar que en el mismo servidor donde se encuentra IIS esta el SQL Server y, por ende, el reporting services. Hasta aquí todo muy bien ya que incluso monte el reporting services del 2008 R2 y no tuve problema alguno, seguí las instrucciones de configuración al pie de la letra:

    • Uso una cuenta dominio (Administrator / pass) para iniciar el servicio, con su respectivo backup de llaves.
    • La base de datos fue creada así:
          autenticación : SQL server Account / sa / pass
          credenciales : Service Account / cuenta dominio (Administrator / pass)

    • No estoy usando https (tanto en Web Service URL como en Report Manager URL) y ambos han sido configurados en hostheader (botón avanzados) con el dominio interno que he registrado como un registro A en mi DNS apuntando a dicho server. Las direcciones se ven así : http://reporter.dominio.com:80/Reports y http://reporter.dominio.com:80/ReportServer

    • Ademas configure mi cuenta dominio Administrator con permisos en seguridad COM y WMI en:
      -    Herramientas Administ. -> Servicios de Componentes -> Equipos -> Mi Equipo -> click derecho -> Propiedades -> Tab Seguridad COM -> Permisos de inicio y activación -> Editar Limites:  inicio Local / inicio Remoto / Activación Remota
      -    Herramientas Administ. -> Administ. de Equipo -> Servicios y Aplicaciones -> Control WMI -> Mas acciones -> Propiedades -> Tab Seguridad -> carpeta Admin del Reporting Services -> boton seguridad : Habilitar Cuenta / Acesso Remoto Habilitado / seguridad de lectura

    • El archivo rsreportserver.config tiene esta configuración
          SecureConnectionLevel  : 0
          AuthenticationTypes : RSWindowsNTLM
          Service -> UrlRoot : ""
          UI -> ReportServerUrl : ""

    • He concedido permisos a la cuenta Administrativa a las tablas db_master (db_owner, public, RSExecRole), msdb (db_owner, public, RSExecRole, y los 3 roles SQLAgent) y a ambas tablas de reporting service (db_owner, public, RSExecRole, db_datareader, db_datawriter).

    • No he tocado el registro (regedit) para desactivar el loopback ni para crear una lista de hosts, como lo he leido en paginas con problema similares a este, ya que Microsoft no recomienda esta practica. Ademas por experiencia meterse con registro puede afectar a otras aplicaciones que tengo (ADFS, CA) y no deseo correr ese riesgo.


    Ahora para probar que el reporting services funcionaba, cambié la configuración de red de la tarjeta y apunté al dominio interno que tengo en mi red, el reporting pide mis credenciales, pongo las de la cuenta dominio Administrator y entra sin problema.

    Esta misma configuración la he hecho en mi VPS que he alquilado con 3 "pequeñas" diferencias:

    1. Por un tema de presupuesto por ahora solo tenemos dos servidores físicos en el cual uno tiene AD, DNS y DHCP y el otro RRAS, CA, ADFS, IIS y SQL Server. Este servidor tiene 2 NICs la cual con RRAS permite habilitar una VPN (para acceder a los servicios internos desde la oficina) y NAT (para comunicar nuestros servidores con el exterior). Ya dentro de pronto dividiremos este último en dos, ya que esta supercargado.

    2. El nombre de dominio lo hemos adquirido aparte y con un nameserver apuntamos a la ip publica que tenemos en el VPS y, en el DNS de este mismo, hemos creado la zona primaria (y su respectiva reversa) con el nombre del dominio comprado para que apunte a nuestro IIS y así poder dar salida a nuestros servicios al exterior.

    3. La versión de SQL server que nos vendió el proveedor de VPS es 2014 y la licencia es Web Edition. Si no mal recuerdo vi que ambas versiones utilizan el mismo endpoint: ReportService2010.asmx

    ¿Alguna idea del por qué puede estar pasando esto? muchas gracias de antemano por el tiempo invertido :D


    A world for better ideas. That's the angle that probably we forgot over the time.







    sábado, 29 de octubre de 2016 16:10

Respuestas

  • Hola.

    Yo tuve un par de situaciones similares configurando SSRS para que se pudiese ver desde Internet y este artículo, Understanding SQL Server Reporting Services Authentication, me ayudó mucho.

    En esencia, debes usar autenticación RSWindowsBasic y configurar como te dice ahí.

    Si el Web Service te responde, SSRS está bien instalado. Es un tema de configuración de autenticación.

    Ahora bien, en mis casos, la autenticación básica me funcionó porque era necesario indicarle a SSRS quien iba a usar el servicio y como debía ingresar al Report Manager. Pero para esto, se requiere que le indiques a SSRS quien es dicho usuario y por esto debes configurar la autenticación para que el pase las credenciales. Algo similar a cuando se le presenta el tema del doble salto en donde si un servicio requiere unas credenciales que vienen desde SSRS, el IIS no alcanza a pasar las credenciales y hay que usar Kerberos, por ejemplo.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    • Marcado como respuesta Oliver Melendez lunes, 31 de octubre de 2016 18:43
    sábado, 29 de octubre de 2016 22:54

Todas las respuestas

  • Hola.

    Yo tuve un par de situaciones similares configurando SSRS para que se pudiese ver desde Internet y este artículo, Understanding SQL Server Reporting Services Authentication, me ayudó mucho.

    En esencia, debes usar autenticación RSWindowsBasic y configurar como te dice ahí.

    Si el Web Service te responde, SSRS está bien instalado. Es un tema de configuración de autenticación.

    Ahora bien, en mis casos, la autenticación básica me funcionó porque era necesario indicarle a SSRS quien iba a usar el servicio y como debía ingresar al Report Manager. Pero para esto, se requiere que le indiques a SSRS quien es dicho usuario y por esto debes configurar la autenticación para que el pase las credenciales. Algo similar a cuando se le presenta el tema del doble salto en donde si un servicio requiere unas credenciales que vienen desde SSRS, el IIS no alcanza a pasar las credenciales y hay que usar Kerberos, por ejemplo.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    • Marcado como respuesta Oliver Melendez lunes, 31 de octubre de 2016 18:43
    sábado, 29 de octubre de 2016 22:54
  • Funciono!!! seguí el enlace que había para delegación del usuario y el configurar los spn para usar el negotiate pero tampoco funciono y probé finalmente hacerlo por windows basic. Me salvaste el proyecto de reportería, muchas gracias Guillermo!!! 

    A world for better ideas. That's the angle that probably we forgot over the time.

    lunes, 31 de octubre de 2016 18:47
  • Hola.

    Con todo gusto. Me alegra haber sido de utilidad.

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    martes, 1 de noviembre de 2016 16:09
  • Oliver buenos dias.

    Tengo un servidor virtual con una direccion IP en una maquina con SQL Server Developer 2017. Mi aplicacion en VS2017 usa Reportviewer 14. Ya he configurado mi SSRS y todo funciona perfectamente pero <localhost>. Estoy claro que al correr en una maquina remota tendre un error.  Cambie <localhost> con mi IP en el Reportviewer y el resultado es un error HTTP status 401 Unauthorized.

    Pienso que se solocionaria el problema con el cambio de tipo de autorizacion,  por lo que te solicito me guies con la configuracion en el RSReportServer.config.

    <Authentication> <AuthenticationTypes> <RSWindowsBasic> <LogonMethod>3</LogonMethod> <Realm></Realm> <DefaultDomain></DefaultDomain> </RSWindowsBasic> </AuthenticationTypes> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>

    donde: Realm seria mi IP? DefaultDomain = Nombre de mi servidor+Usuario ?

    En fin, tu ayuda por favor.

    Saludos,

    Jaime.



    saludos.

    sábado, 22 de septiembre de 2018 15:04