PowerBI中的自定义身份验证

PowerBI中的自定义身份验证,powerbi,Powerbi,我正在寻找一种结合Power BI身份验证和web应用程序的解决方案。 我们使用现有的web应用程序对用户进行身份验证,并让他们查看Power BI portal中的仪表板和报告,现有用户是没有内部广告帐户的外部客户 以下解决方案将始终将用户重定向到登录页面。 但我需要的是,一旦用户使用我们的web应用程序进行了身份验证,Power BI就可以让用户查看仪表盘,而无需进行任何身份验证。您需要在应用程序中嵌入报告,实现“”场景。基本上,您的应用程序使用单个Power BI帐户(主帐户)来访问报告

我正在寻找一种结合Power BI身份验证和web应用程序的解决方案。 我们使用现有的web应用程序对用户进行身份验证,并让他们查看Power BI portal中的仪表板和报告,现有用户是没有内部广告帐户的外部客户

以下解决方案将始终将用户重定向到登录页面。


但我需要的是,一旦用户使用我们的web应用程序进行了身份验证,Power BI就可以让用户查看仪表盘,而无需进行任何身份验证。

您需要在应用程序中嵌入报告,实现“”场景。基本上,您的应用程序使用单个Power BI帐户(主帐户)来访问报告,而您的用户在应用程序中以另一种方式进行身份验证。微软提供了很好的解决方法


本质上,您需要使用来验证主帐户并获取访问令牌。有了此访问令牌,您可以使用枚举某些工作区中的报表、仪表板或互动程序(或枚举所有工作区),获取某些报表(或仪表板或互动程序)的访问令牌,并将其嵌入应用程序中。在这种情况下,您的用户根本不需要Power BI帐户。

我知道您正在使用PowerBI报表服务器,并希望将其更改为不使用AD身份验证,默认情况下是这样的

您链接的回购协议通过提示凭据并在内部进行验证来实现这一点

如果希望报表服务器继承应用程序身份验证,则需要修改CustomSecuritySample,以不提示用户登录并自行传递凭据

例如,您可以修改
Logon.aspx.cs
Page\u Load()
方法从共享cookie读取凭据,使用内部身份验证机制验证凭据,然后调用
FormsAuthentication.RedirectFromLoginPage(…)

AuthenticationUtilities.cs
实现凭证检查

您需要实现某种安全的用户身份验证方法,例如使用过期令牌。您可能需要为此扩展内部身份验证


除此之外,您还需要管理报表/文件夹权限。根据您拥有的用户数量,除非所有用户都可以访问相同的报告,否则您可能需要查看

谢谢Andrey,但我们的服务器和应用程序都是本地的,我们不能使用Azure或任何其他云,我可以在不使用Azure的情况下实施您的解决方案吗?我不明白。如果您不能使用Azure或任何云,那么Power BI门户中的这些仪表板和报告是什么?如果您需要内部解决方案,可以使用SSRS或Power BI Reporting Services。在这种情况下,嵌入报表更容易—只需将rs:embed=true参数添加到报表的URL中,即可将其嵌入到iFrame中。关于身份验证,我认为最好的选择是您的web应用程序使用Windows身份验证进行自身身份验证。请注意,使用单个主帐户向PowerBI报表服务器进行身份验证是不安全的,从技术上讲,将允许用户访问未分配给他们的报表。