プロキシ サーバーを介して Azure Sphere を接続する

Azure Sphere SDK アプリケーション ライブラリ (Applibs) または CLI を使用して、プロキシ サーバー経由でインターネットに接続するように Azure Sphere デバイスを構成できます。 この機能が有効になっている場合、すべてのデバイス トラフィックがプロキシ経由で流れます。 デバイスは、使用するプロキシ サーバー、サーバーの種類、認証方法を識別するように構成できます。

現在サポートされているのは HTTP プロキシのみです。

認証方法

次の認証方法がサポートされています。

  • 基本: 接続を認証するためのユーザー名とパスワードの入力をユーザーに求めます。
  • 匿名: プロキシ サーバー接続を使用するときにユーザー名とパスワードが不要になるように、ユーザーが匿名で接続できるようにします。

CLI を使用したプロキシ構成

次のコマンドは、ネットワーク接続のプロキシ アドレスの使用を管理します。 詳細については、「 az sphere device network proxy」を参照してください。

操作 説明
プロキシの適用 接続されているデバイスでネットワーク プロキシを構成します。
プロキシの削除 接続されているデバイス上のプロキシ接続を削除します。
プロキシ ショー 接続されているデバイス上のプロキシ接続を表示します。

Applibs を使用したプロキシ構成

プロキシ構成を設定するには、アプリケーションで Applibs ネットワーク API を使用する必要があります。これには、プロキシ構成プロパティの取得と設定のサポートが含まれます。

アプリケーションに次のヘッダー ファイルを含めます。

#include <applibs/networking.h>

アプリケーションでcURLを使用し、プロキシ サーバーを介してインターネットに接続する場合は、次のヘッダー ファイルも含める必要があります。

#include <applibs/networking_curl.h>

cURLの使用の詳細については、「Web サービスに接続する」を参照してください。

プロキシ構成でサポートされている Applibs

次の AppLibs がサポートされています。

アプリケーション マニフェストの要件

アプリケーション マニフェストには、NetworkConfig または ReadNetworkProxyConfig 機能が含まれている必要があります。 この機能により、アプリケーションがプロキシ設定に対して持つアクセスの程度が決まります。

NetworkConfig 機能は、すべてのネットワーク構成設定へのフル アクセスを許可します。 これにより、アプリケーションでプロキシ設定を構成、取得、および有効または無効にすることができます。

"Capabilities": {
  "NetworkConfig": true
}

ReadNetworkProxyConfig 機能は、アプリケーションがプロキシ設定を取得することのみを許可します。 この機能は、ネットワーク設定への一般的なアクセスが拒否されるが、プロキシ構成情報が必要なアプリケーションに使用されます。

"Capabilities": {
  "ReadNetworkProxyConfig": true
}

MQTT を使用してAzure IoT Hubに接続する

Azure IoT アプリケーションでは、TCP/IP ベースの MQTT を使用して Azure IoT ハブに接続します。 トラフィックがプロキシ経由で適切にリダイレクトされるように、WebSocket 経由で MQTT を使用するようにアプリケーションを構成する必要があります。

IoT Hubと直接通信するようにアプリケーションを構成することも、Azure Device Provisioning Services (DPS) を使用することもできます。

プロキシ サポートの追加の詳細については、「 READMEAddWebProxy.md」を参照してください。

サンプル

プロキシ コード スニペットは、次の例を示しています。

HTTPS サンプルでは、HTTPS_Curl_Easy API と HTTPS_Curl_Multi API を使用して HTTPS 経由でコンテンツをフェッチする方法を示します。 既定では、プロキシを使用するようにcURL ハンドルを構成します。

AzureIoT サンプルには、Web プロキシ サポートをサンプルに追加するための手順とコードが含まれています。