处理 Power Query 连接器签名

在 Power BI 中,自定义连接器的加载受所选安全设置的限制。 一般情况下,当加载自定义连接器的安全性被设为“推荐”时,自定义连接器根本不会加载,而必须将其降级才能进行加载。

此异常涉及受信任的“已签名连接器”。 签名连接器是自定义连接器的特殊格式,即 .pqx 而不是 .mez 文件,该文件已使用证书进行签名。 签名者可向用户或用户的 IT 部门提供签名的指纹,而该指纹可放入注册表中,从而安全地指示信任某一给定连接器。

通过以下步骤可使用证书(附带如何生成证书的说明(假如没有可用证书)和“MakePQX”工具对自定义连接器进行签名。

注意

如需有关创建自签名证书以测试这些说明的帮助,请转到有关 PowerShell 中的新自签名证书的 Microsoft 文档。

注意

如需有关将证书导出为 PFX 的帮助,请转到导出 PFX 证书

  1. 下载 MakePQX

  2. 将包含的 zip 中的 MakePQX 文件夹提取到所需目标位置。

  3. 若要运行它,请在命令行中调用 MakePQX。 它需要文件夹中的其他库,因此不能只复制一个可执行文件。 在没有任何参数的情况下运行会返回帮助信息。

用法:MakePQX [选项] [命令]

选项:

选项 说明
-? | -h | --help 显示帮助信息

命令:

命令 说明
打包 创建 pqx 文件。
sign 对未签名的 pqx 进行签名。如果 pqx 已签名,则进行副署。 使用 --replace 选项替换现有签名。
验证 验证 pqx 文件中的签名状态。 如果签名无效,则返回值非零。

MakePQX 中有三个命令。 有关命令的详细信息,请使用 MakePQX [命令] --help

Pack

Pack 命令采用 mez 文件并将其打包到可签名的 pqx 文件中。 pqx 文件还支持未来会添加的某些功能。

用法:MakePQX pack [选项]

选项:

选项 说明
-? | -h | --help 显示帮助信息。
-mz | --mez 输入扩展文件。
-c | --certificate 用于对扩展文件进行签名的证书 (.pfx)。
-p | --password 证书文件的密码。
-t | --target 输出文件名。 默认为与输入文件同名。

示例

C:\Users\cpope\Downloads\MakePQX>MakePQX.exe pack -mz "C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom Connectors\HelloWorld.mez" -t "C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom Connectors\HelloWorldSigned.pqx"

签名

Sign 命令使用证书对 pqx 文件进行签名,并为其提供指纹,且该指纹可通过更高的安全设置检查其是否受到 Power BI 客户端的信任。 此命令采用 pqx 文件并返回同一已签名的 pqx 文件。

用法:MakePQX sign [参数] [选项]

参数:

参数 说明
<pqx 文件> pqx 文件的路径。

选项:

选项 说明
-c | --certificate 用于对扩展文件进行签名的证书 (.pfx)。
-p | --password 证书文件的密码。
-r | --replace 替换现有签名,而不是副签。
-? | -h | --help 显示帮助信息。

示例

C:\Users\cpope\Downloads\MakePQX>MakePQX sign "C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom Connectors\HelloWorldSigned.pqx" --certificate ContosoTestCertificate.pfx --password password

验证

Verify 命令可验证模块是否已正确签名,并显示证书状态。

用法:MakePQX verify [参数] [选项]

参数:

参数 说明
<pqx 文件> pqx 文件的路径。

选项:

选项 说明
-q | --quiet 隐藏签名验证输出。
-? | -h | --help 显示帮助信息。

示例

C:\Users\cpope\Downloads\MakePQX>MakePQX verify "C:\Users\cpope\OneDrive\Documents\Power BI Desktop\Custom Connectors\HelloWorldSigned.pqx"

{ 
  "SignatureStatus": "Success", 
  "CertificateStatus": [ 
    { 
      "Issuer": "CN=Colin Popell", 
      "Thumbprint": "16AF59E4BE5384CD860E230ED4AED474C2A3BC69", 
      "Subject": "CN=Colin Popell", 
      "NotBefore": "2019-02-14T22:47:42-08:00", 
      "NotAfter": "2020-02-14T23:07:42-08:00", 
      "Valid": false, 
      "Parent": null, 
      "Status": "UntrustedRoot" 
    } 
  ] 
} 

在 Power BI Desktop 中信任已签名的连接器

验证签名后,可向最终用户提供指纹以将其列为可信对象。 可在 Power BI 文档中阅读有关如何提供指纹的信息。