Proxy inverso del servidor PowerBI

Un usuario Pregunto ✅

CodificadorCodificaciónCódigo

¿Alguien ha configurado con éxito un proxy inverso para un servidor Power BI interno? Estoy tratando de usar IIS10 y URL Rewrite. Quiero que algunos informes sean de acceso público sin exponer todo el servidor PowerBI.

Básicamente, quiero que los usuarios visiten una URL en mi servidor web público y mostrará un informe específico en mi servidor Power BI Rerport interno privado.

Solo por curiosidad si alguien ha configurado esto antes.

fimiki

Agregué una clase de middleware personalizada a nuestro sitio web que hace esto para nuestro PowerBI Report Server utilizando el código proporcionado en este artículo como plantilla. Hace algunas cosas más, como inyectar credenciales de autenticación básicas para acceso anónimo y manipular el contenido de la respuesta para ocultar o deshabilitar los elementos de navegación de PowerBI. Me llevó una semana sólida de esfuerzo, pero no había tenido mucha exposición previa a los proxies o al trabajo con encabezados y contenido de cookies.

Xriz

En respuesta a fimiki

Hola y bienvenido @fimiki,

Eso suena bien. Desafortunadamente, no entiendo mucho de las clases de codificación. Tal vez puedas escribir una nota técnica o una guía sobre cómo hacer esto.

Saludos Xriz

rks

En respuesta a Xriz

Hola, pude configurar mi proxy inverso. Ahora IIS envía la solicitud a la URL externa a mi servidor local en el que instalé PBI Reporting Service.

Produje los siguientes pasos:

* Dentro del sitio web predeterminado, he agregado una nueva aplicación con la misma ruta que configuré para la URL del portal web

* Creé una regla de reescritura:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                    <action type="Rewrite" url="http://localhost/Reports/{R:1}" appendQueryString="true" />
                </rule>
                <rule name="ReverseProxyInboundRule2" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}://localhost/Reports/{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <!-- <staticContent> -->
            <!-- <mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" /> -->
        <!-- </staticContent> -->
    </system.webServer>
</configuration>

(Reemplace localhost con cualquier IP o URL del servidor que aloja el portal web).

Luego, funcionó… Pude navegar por el portal web y hacer clic aquí y allá… Sin embargo, al intentar abrir un informe me encontré con otro problema:

Anmerkung 2020-06-29 095605.png

Al abrir un informe, se realiza una nueva solicitud a www.url.de/powerbi/?queryblabla

Al abrir el mismo informe localmente funciona, pero la solicitud muestra esta url: http://localhost/Reports/powerbi/?queryblabla

Aparentemente, la URL reescrita se omite en esta etapa y no soy lo suficientemente fluido con IIS para volver a escribir la URL en www.url.de/Reports/powerbi/?queryblabla

No estoy seguro de si esta es o no la razón real del error. Pero me gustaría averiguarlo.

Xriz

Hola,

Estoy tratando de configurar lo mismo. ¿Logró realizar su solicitud @CoderCodingCode?

joseddg

En respuesta a Xriz

También tratando de hacer lo mismo. ¿Fueron capaces de lograr esto?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *