【问题标题】:PowerBi: Encryption of streaming Data (REST API)PowerBi:流数据加密(REST API)
【发布时间】:2019-05-03 13:42:18
【问题描述】:

https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming

我正在使用 REST API 将实时数据发送到 PowerBi。 (来自 Windows 上的本机应用程序)

在将数据流式传输到 PowerBi 时,如何处理身份验证、加密和其他安全功能?

我能以某种方式使用 powerBI 网关吗?

我目前看到以下问题:

  • 如果有人获取到数据集的 REST Api 链接,他们可能会得出错误的数据。
  • 我流式传输的 json 数据未加密

【问题讨论】:

    标签: azure powerbi


    【解决方案1】:

    正如@silent 在他的回答中所说,通信是完全加密的。将数据推送到流数据集如下所示(PowerShell 中的示例代码):

    $endpoint = "https://api.powerbi.com/beta/08bbc04c-a46d-4c45-b587-9dec9454fc2d/datasets/15e4b6c3-4697-442f-91f9-2ad056eef2a8/rows?key=QINNGFRYZnWHHFA51G6VCDeL%2FYyfh0oDZ0qsV1qwzIh18tNfs2POjWgFIJdnWxxA3bjqJqfMhWPOhzQ6bK3vgw%3D%3D"
    $payload = @{
    "datetime" ="2019-05-03T17:17:05.830Z"
    "somevalue" =98.6
    }
    Invoke-RestMethod -Method Post -Uri "$endpoint" -Body (ConvertTo-Json @($payload))
    

    请注意,端点使用 HTTPS 协议,即它是加密的。但是,将数据推送到流式数据集和将数据推送到“普通”推送数据集之间的区别在于,通过流式传输,您不使用针对 Azure AD 进行身份验证时生成的访问令牌,而是使用端点 URL 中的密钥。您必须像保护帐户密码一样保护此密钥。如果有人可以访问它们,他可能会伤害您。所以在认证方面,并没有太大的区别。此外,由于通信是加密的,因此您不必担心流数据。

    您不能使用网关,因为您不需要它。首先,它用于启用从 Power BI 服务到您的前提的通信(而在您的情况下,它是在另一个方向,可以直接建立)其次,即使您通过网关进行通信,数据也会被加密方式(所以没有区别)。

    【讨论】:

    • 所以 URL 中的密钥和数据都被加密了。只要整个 URL 不落入坏人之手,它就是安全的。感谢您的明确答复
    【解决方案2】:

    不确定我是否正确理解了您的问题,但 REST API 都只能通过 TLS 加密访问,并且身份验证基于 Azure AD。

    使用 Azure AD OAuth 保护对 REST API 的所有请求。

    https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming#using-power-bi-rest-apis-to-push-data

    【讨论】:

    • TLS - 是,OAuth - 否。将数据推送到流数据集使用嵌入在 URL 中的密钥,而不是像“正常”Power BI REST API 调用那样使用 AD OAuth 身份验证(例如,将数据推送到推送数据集)。
    猜你喜欢
    • 1970-01-01
    • 2021-07-15
    • 2021-05-20
    • 2023-02-24
    • 2022-12-04
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    相关资源
    最近更新 更多