为本地数据网关配置代理设置

你的工作环境可能要求你通过代理访问 Internet。 此要求会阻止 Microsoft 本地数据网关连接到该服务。

superuser.com 上的以下帖子讨论了如何尝试确定你在网络上是否有代理:如何确定我正在使用的代理服务器?(SuperUser.com)

尽管可以使用本地数据网关应用更改大多数网关配置设置,但代理信息是在 .NET 配置文件中配置的。 位置和文件名将因所用网关而异。

有三个配置文件与将代理与本地数据网关一起使用有关。 以下两个主要配置文件适用于网关及其配置流程。

  • 第一个文件用于实际配置网关的配置屏幕。 如果在配置网关期间遇到问题,请查看以下文件:C:\Program Files\On-premises data gateway\enterprisegatewayconfigurator.exe.config。在本地数据网关(个人模式)中,相应的文件为%LocalAppData%\Microsoft\On-premises data gateway (personal mode)\PersonalGatewayConfigurator.exe.config
  • 第二个文件用于使用网关与云服务交互的实际 Windows 服务。 此文件可处理请求:C:\Program Files\On-premises data gateway\Microsoft.PowerBI.EnterpriseGateway.exe.config。在本地数据网关(个人模式)中,相应的文件是 %LocalAppData%\Microsoft\On-premises data gateway (personal mode)\Microsoft.PowerBI.DataMovement.PersonalGateway.exe.config

如果要对代理配置进行更改,必须编辑这些文件,以使两个文件中的代理配置完全相同。

需要编辑第三个配置文件,以便网关通过代理连接到云数据源。

  • C:\Program Files\On-premises data gateway\m\Microsoft.Mashup.Container.NetFX45.exe.config

在本地数据网关(个人模式)中,相应的文件是%LocalAppData%\Microsoft\On-premises data gateway (personal mode)\m\Microsoft.Mashup.Container.NetFX45.exe.config

下一节将介绍如何编辑这些文件。

配置代理设置

以下示例显示了在两个主要配置文件中都可以找到的默认代理配置。

<system.net>
    <defaultProxy useDefaultCredentials="true" />
</system.net>

默认配置适用于 Windows 身份验证。 如果你的代理服务器使用另一种形式的身份验证,则必须更改设置。 如果你不确定,请与你的网络管理员联系。

不建议采用基本代理身份验证。 使用基本代理身份验证可能会导致代理身份验证错误,从而导致网关配置不正确。 若要解决此问题,请使用更强大的代理身份验证机制。

除使用默认凭据外,还可以添加 <proxy> 元素以更详细地定义代理服务器设置。 例如,可以通过将 bypassonlocal 参数设为 false,指定本地数据网关应始终使用代理,即使对于本地资源也是如此。 此设置有助于排除故障,以便在代理日志文件中跟踪源自网关的所有 HTTPS 请求。 下面的示例配置指定所有请求都必须通过 IP 地址为 192.168.1.10 的特定代理。

<system.net>
    <defaultProxy useDefaultCredentials="true">
        <proxy  
            autoDetect="false"  
            proxyaddress="http://192.168.1.10:3128"  
            bypassonlocal="false"  
            usesystemdefault="false"
        />  
    </defaultProxy>
</system.net>

如果希望网关通过网关连接到云数据源,则还需要编辑 Microsoft.Mashup.Container.NetFX45.exe.config 文件。

在文件中,展开 <configurations> 部分以包含以下内容,并使用自己的代理信息更新 proxyaddress 属性。 以下示例通过 IP 地址为 192.168.1.10 的特定代理路由所有云请求。

<configuration>
    <system.net>
        <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy proxyaddress="http://192.168.1.10:3128" bypassonlocal="true" />
        </defaultProxy>
    </system.net>
</configuration>

如果所有 Internet 通信都需要你的代理,则可能需要配置第三个文件,尤其是对于网络安全且被锁定的企业使用场景。 如果网关通信需要代理,来自容器的任何 Internet 流量也可能需要代理。 在这种情况下,网关可能会成功运行,直到任何容器进行任何外部 (Internet) 查询。 此问题特别适用于数据流,此流会试图将本地数据的结果查询推送到 Azure Data Lake Storage。 但是,当网关查询将本地语义模型与面向 Internet 的语义模型合并时,它也适用。

要了解有关 .NET 配置文件代理元素配置的详细信息,请转到 defaultProxy 元素(网络设置)

为输出目标配置网关

此外,要将网关与输出目标配合使用,可能需要将网关配置为能够通过防火墙或代理访问目标数据源。 如果使用代理服务器,则这种直通可能需要启用指向适当目标的列表 URL,例如用于湖屋的 *.datawarehouse.pbidedicated.windows.net、用于数据湖的 *.dfs.core.windows.net 等。

注意

如果使用 LakeHouse 目标,则必须至少运行 2023 年 5 月版本的网关。 此版本之前的网关版本中不提供 Lakehouse 连接器。

将网关服务帐户更改为域用户

如前所述,当你将代理设置配置为使用默认凭据时,你可能会遇到代理身份验证问题。 当默认服务帐户是服务 SID 而不是经过身份验证的域用户时,会出现这种情况。 如果组织中的代理需要域帐户才能对请求进行身份验证,则可以将网关的服务帐户更改为域服务帐户。 此更改允许使用代理进行适当的身份验证。 有关如何更改网关服务帐户的详细信息,请转到更改本地数据网关服务帐户

注意

建议使用托管的服务帐户以避免重置密码。 了解如何通过 Active Directory 创建托管服务帐户

后续步骤