我想要实现的目标是将现有的 PowerBI 报告嵌入到我的 Angular 应用程序中。为了获取 PowerBI 嵌入令牌,我使用此 URL 中共享的 NODEJS 代码 [https://github.com/microsoft/PowerBI-Developer-Samples/tree/master/NodeJS]。
当我通过本地计算机作为 API 运行并通过 Angular 调用时,它会抛出以下错误: 错误:'ClientAuthError:端点_分辨率_错误:错误:无法解析端点。请检查网络并重试。详细信息:ClientAuthError:openid_config_error:无法检索端点。检查您的权限并验证 .well-known/openid-configuration 端点返回所需的端点。尝试从以下位置检索终结点:https://login.microsoftonline.com/##TENANTID##/v2.0/.well-known/openid-configuration'。 当我通过 AWS EC2 使用我们的内部公司代理运行时,情况是一样的。
但是,如果我使用弹性 IP(没有企业代理)运行 EC2,则一切正常。我有限制,必须使用企业代理运行。
我真正关心的是,我们在 PYTHON 中有相同的代码(相同的 GITHUB 链接),可以在所有环境中使用公司代理,并且无需麻烦即可获取令牌。
我正在寻求有关 NODEJS 的帮助,并指出它与 Python 代码的行为有何不同。由于我无法使用直接弹性 IP,因此我如何能够使用内部公司代理运行此代码。
注意:我按原样使用 GITHUB 中的代码,并根据需要仅添加了配置详细信息。
对于服务主体身份验证,我们需要使用客户端 Secret 进行身份验证。 MSAL Angular 目前不支持机密客户端应用程序。
因此,我们需要使用能够保密并获取嵌入令牌的后端,我尝试的一种解决方法是使用在我的 GitHub 存储库中实现的 Azure Function App。 获得函数 URL 后,您可以通过从 URL 获取详细信息来嵌入任何语言的报告。
在我的存储库中,使用
powerbi-client-react
嵌入报告。
您可以实施相同的操作并使用 powerbi-client-angular
嵌入报告。