通过代理服务器连接 Azure Sphere

可以使用 Azure Sphere SDK 应用程序库 (Applibs) 或 CLI 将 Azure Sphere 设备配置为通过代理服务器连接到 Internet。 启用此功能后,所有设备流量都会流经代理。 可以将设备配置为标识要使用的代理服务器、服务器类型和身份验证方法。

目前仅支持 HTTP 代理。

身份验证方法

支持以下身份验证方法:

  • 基本:提示用户输入用户名和密码以对连接进行身份验证。
  • 匿名:允许用户匿名连接,以便在使用代理服务器连接时不需要用户名和密码。

使用 CLI 的代理配置

以下命令管理用于网络连接的代理地址。 有关详细信息,请参阅 azsphere device network proxy

操作 描述
proxy apply 在连接的设备上配置网络代理。
代理删除 删除附加设备上的代理连接。
proxy show 显示附加设备上的代理连接。

使用 Applibs 的代理配置

若要设置代理配置,应用程序必须使用 Applibs 网络 API,其中包括对获取和设置代理配置属性的支持。

在应用程序中包括此头文件:

#include <applibs/networking.h>

如果在应用程序中使用 cURL并通过代理服务器连接到 Internet,则还必须包含此头文件:

#include <applibs/networking_curl.h>

有关使用cURL的详细信息,请参阅连接到 Web 服务

代理配置支持的 Applibs

支持以下 AppLib:

应用程序清单要求

应用程序清单必须包含 NetworkConfigReadNetworkProxyConfig 功能。 该功能确定应用程序对代理设置的访问程度。

NetworkConfig 功能授予对所有网络配置设置的完全访问权限。 它允许应用程序配置、检索以及启用或禁用代理设置。

"Capabilities": {
  "NetworkConfig": true
}

ReadNetworkProxyConfig 功能仅允许应用程序检索代理设置。 此功能用于拒绝对网络设置进行常规访问但需要代理配置信息的应用程序。

"Capabilities": {
  "ReadNetworkProxyConfig": true
}

使用 MQTT 连接到Azure IoT 中心

Azure IoT 应用程序使用基于 TCP/IP 的 MQTT 连接到 Azure IoT 中心。 必须将应用程序配置为使用基于 WebSocket 的 MQTT,以便通过代理正确重定向流量。

可以将应用程序配置为直接与IoT 中心通信,或使用 Azure 设备预配服务 (DPS) :

有关添加代理支持的详细信息,请参阅 READMEAddWebProxy.md

样品

代理代码片段演示了以下内容:

HTTPS 示例演示如何使用 HTTPS_Curl_Easy 和 HTTPS_Curl_Multi API 通过 HTTPS 提取内容。 默认情况下,他们将cURL句柄配置为使用代理。

AzureIoT 示例包含有关向示例添加 Web 代理支持的说明和代码。