He estado intentando esto durante meses y todavía no encontré ninguna solución sobre cómo autenticar al usuario con el servicio PowerBI junto con la autenticación de Microsoft usando MSAL.
Probé con https://analysis.windows.net/powerbi/api/ esta URL también en el punto final de powerBI
export const protectedResources = { powerBI: { endpoint: "https://graph.microsoft.com/.default", scopes: ["Report.Read.All"], }, graphMe: { endpoint: "https://graph.microsoft.com/v1.0/me", scopes: ["User.Read"], }, armTenants: { endpoint: "https://management.azure.com/tenants", scopes: ["https://management.azure.com/user_impersonation"], } }Encima del código de los ámbitos en la configuración y debajo está el código obtenido de la documentación de Microsoft que funciona perfectamente bien para autenticar al usuario con la API gráfica y puede obtener detalles del usuario.
export function MSALInstanceFactory(): IPublicClientApplication { return new PublicClientApplication(msalConfig); } export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration { const protectedResourceMap = new Map<string, Array<string>>(); protectedResourceMap.set(protectedResources.graphMe.endpoint, protectedResources.graphMe.scopes); protectedResourceMap.set(protectedResources.armTenants.endpoint, protectedResources.armTenants.scopes); protectedResourceMap.set(protectedResources.powerBI.endpoint, protectedResources.powerBI.scopes); return { interactionType: InteractionType.Redirect, protectedResourceMap }; } export function MSALGuardConfigFactory(): MsalGuardConfiguration { return { interactionType: InteractionType.Redirect, authRequest: loginRequest }; }Pero el problema es que después de que el usuario se autentica, el usuario aún tiene que hacer clic en el botón de inicio de sesión adicional dentro del iframe para volver a autenticarse con PowerBI.
Ver la imagen.
Proporcione una forma de autenticar al usuario de una sola vez con un solo inicio de sesión. Debería poder iniciar sesión como usuario tanto en mi aplicación como en el servicio powerBI.
Puede encontrar instrucciones para las API de Power BI aquí: https://docs.microsoft.com/rest/api/power-bi/
Tenga en cuenta que las API de Power BI están en https://api.powerbi.com/v1.0/ (no en graph.microsoft.com) y los ámbitos serán similares a https://analysis.windows.net/powerbi/api/<scope name>
Siga las instrucciones para agregar PowerBI a su aplicación en el Portal y luego debería poder configurar MSAL para adquirir tokens con ámbitos relevantes para cada extremo de PowerBI que use.
Por ejemplo:
powerBI: { endpoint: "https://api.powerbi.com/v1.0/myorg/reports", scopes: ["https://analysis.windows.net/powerbi/api/Report.Read.All"], }