Verbinden von Azure Sphere über einen Proxyserver
Sie können ein Azure Sphere-Gerät so konfigurieren, dass es über einen Proxyserver mithilfe der Azure Sphere SDK-Anwendungsbibliotheken (Applibs) oder der CLI eine Verbindung mit dem Internet herstellt. Wenn dieses Feature aktiviert ist, fließt der gesamte Gerätedatenverkehr über den Proxy. Das Gerät kann so konfiguriert werden, dass der zu verwendende Proxyserver, der Servertyp und die Authentifizierungsmethode identifiziert werden.
Derzeit werden nur HTTP-Proxys unterstützt.
Authentifizierungsmethoden
Die folgenden Authentifizierungsmethoden werden unterstützt:
- Basic: Fordert den Benutzer zur Eingabe eines Benutzernamens und kennworts auf, um die Verbindung zu authentifizieren.
- Anonym: Ermöglicht Benutzern, eine anonyme Verbindung herzustellen, sodass benutzername und kennwort nicht erforderlich sind, wenn die Proxyserververbindung verwendet wird.
Proxykonfiguration mithilfe der CLI
Die folgenden Befehle verwalten die Verwendung der Proxyadresse für die Netzwerkverbindung. Weitere Informationen finden Sie unter az sphere device network proxy.
Vorgang | Beschreibung |
---|---|
Proxy anwenden | Konfiguriert den Netzwerkproxy auf dem angefügten Gerät. |
Proxylöschung | Löscht die Proxyverbindung auf dem angefügten Gerät. |
Proxy-Show | Zeigt die Proxyverbindung auf dem angefügten Gerät an. |
Proxykonfiguration mit Applibs
Zum Einrichten der Proxykonfiguration muss Ihre Anwendung die Applibs-Netzwerk-API verwenden, die Unterstützung für das Abrufen und Festlegen von Proxykonfigurationseigenschaften umfasst.
Fügen Sie diese Headerdatei in Ihre Anwendung ein:
#include <applibs/networking.h>
Wenn Sie cURL in Ihrer Anwendung verwenden und über einen Proxyserver eine Verbindung mit dem Internet herstellen, müssen Sie auch diese Headerdatei einschließen:
#include <applibs/networking_curl.h>
Weitere Informationen zur Verwendung von cURL finden Sie unter Herstellen einer Verbindung mit Webdiensten.
Unterstützte Applibs für die Proxykonfiguration
Die folgenden AppLibs werden unterstützt:
- Networking_Curl_SetDefaultProxy
- Networking_Proxy_Create
- Networking_Proxy_Destroy
- Networking_Proxy_Apply
- Networking_Proxy_Get
- Networking_Proxy_SetProxyOptions
- Networking_Proxy_SetProxyAddress
- Networking_Proxy_SetAnonymousAuthentication
- Networking_Proxy_SetBasicAuthentication
- Networking_Proxy_SetProxyNoProxyAddresses
- Networking_Proxy_GetProxyOptions
- Networking_Proxy_GetProxyAddress
- Networking_Proxy_GetProxyPort
- Networking_Proxy_GetProxyType
- Networking_Proxy_GetProxyUsername
- Networking_Proxy_GetProxyPassword
- Networking_Proxy_GetAuthType
- Networking_Proxy_GetNoProxyAddresses
- Networking_Proxy_GetProxyStatus
- Networking_ProxyConfig
- Networking_ProxyOptions
- Networking_ProxyType
- Networking_ProxyAuthType
- Networking_ProxyStatus
Anforderungen an das Anwendungsmanifest
Das Anwendungsmanifest muss die Funktion NetworkConfig oder ReadNetworkProxyConfig enthalten. Die Funktion bestimmt, wie viel Zugriff Ihre Anwendung auf die Proxyeinstellungen hat.
Die NetworkConfig-Funktion gewährt Vollzugriff auf alle Netzwerkkonfigurationseinstellungen. Damit kann Ihre Anwendung Proxyeinstellungen konfigurieren, abrufen und aktivieren oder deaktivieren.
"Capabilities": {
"NetworkConfig": true
}
Mit der Funktion ReadNetworkProxyConfig kann Ihre Anwendung nur Proxyeinstellungen abrufen. Diese Funktion wird für Anwendungen verwendet, denen der allgemeine Zugriff auf Netzwerkeinstellungen verweigert wird, aber Proxykonfigurationsinformationen erfordern.
"Capabilities": {
"ReadNetworkProxyConfig": true
}
Verwenden von MQTT zum Herstellen einer Verbindung mit Azure IoT Hub
Azure IoT-Anwendungen verwenden TCP/IP-basiertes MQTT, um eine Verbindung mit einem Azure IoT Hub herzustellen. Sie müssen Ihre Anwendung so konfigurieren, dass MQTT über WebSockets verwendet wird, damit datenverkehr ordnungsgemäß über den Proxy umgeleitet wird.
Sie können Ihre Anwendung für die direkte Kommunikation mit einem IoT Hub konfigurieren oder die Azure Device Provisioning Services (DPS) verwenden:
Um Ihre Anwendung für die direkte Kommunikation mit einem IoT Hub zu konfigurieren, verwenden Sie den Proxybeispielcode im READMEStartWithIoTHub.md Beispiel, und ändern Sie ihn wie unter Herstellen einer direkten Verbindung mit AzureIoT Hub beschrieben.
Um Ihre Anwendung für die Verwendung von Azure DPS zu konfigurieren, verwenden Sie den Proxybeispielcode im Beispiel READMEAddDPS oder READMEStartWithIoTCentral, und ändern Sie ihn wie unter Verbinden über Azure IoT Hub Device Provisioning-Dienst beschrieben.
Weitere Informationen zum Hinzufügen von Proxyunterstützung finden Sie unter READMEAddWebProxy.md.
Proben
Die Proxycodeausschnitte veranschaulichen Folgendes:
- Der Codeausschnitt Proxyeinstellungen konfigurieren veranschaulicht, wie die Proxyeinstellungen auf einem Azure Sphere-Gerät konfiguriert werden.
- Der Codeausschnitt "Proxyeinstellungen abrufen " veranschaulicht, wie die Proxyeinstellungen auf einem Azure Sphere-Gerät abgerufen werden.
- Der Codeausschnitt Konfigurierten Proxy aktivieren/deaktivieren veranschaulicht, wie ein bereits konfigurierter Proxy auf einem Azure Sphere-Gerät aktiviert/deaktiviert wird.
Die HTTPS-Beispiele veranschaulichen die Verwendung der HTTPS_Curl_Easy- und HTTPS_Curl_Multi-APIs zum Abrufen von Inhalten über HTTPS. Standardmäßig konfigurieren sie das cURL-Handle für die Verwendung eines Proxys.
Das AzureIoT-Beispiel enthält Anweisungen und Code zum Hinzufügen von Webproxyunterstützung zum Beispiel.