处理 Power Query 连接器签名
在 Power BI 中,自定义连接器的加载受所选安全设置的限制。 一般情况下,当加载自定义连接器的安全性被设为“推荐”时,自定义连接器根本不会加载,而必须将其降级才能进行加载。
此异常涉及受信任的“已签名连接器”。 签名连接器是自定义连接器的特殊格式,即 .pqx 而不是 .mez 文件,该文件已使用证书进行签名。 签名者可向用户或用户的 IT 部门提供签名的指纹,而该指纹可放入注册表中,从而安全地指示信任某一给定连接器。
通过以下步骤可使用证书(附带如何生成证书的说明(假如没有可用证书)和“MakePQX”工具对自定义连接器进行签名。
注意
如需有关创建自签名证书以测试这些说明的帮助,请转到有关 PowerShell 中的新自签名证书的 Microsoft 文档。
注意
如需有关将证书导出为 PFX 的帮助,请转到导出 PFX 证书。
下载 MakePQX。
将包含的 zip 中的 MakePQX 文件夹提取到所需目标位置。
若要运行它,请在命令行中调用 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 文档中阅读有关如何提供指纹的信息。