プロキシ サーバーを介して 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 がサポートされています。
- 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
アプリケーション マニフェストの要件
アプリケーション マニフェストには、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) を使用することもできます。
IoT ハブと直接通信するようにアプリケーションを構成するには、READMEStartWithIoTHub.md サンプルのプロキシ サンプル コードを使用し、「 AzureIoT ハブに直接接続する」の説明に従って変更します。
Azure DPS を使用するようにアプリケーションを構成するには、READMEAddDPS または READMEStartWithIoTCentral サンプルのプロキシ サンプル コードを使用し、「デバイス プロビジョニング サービス経由の接続」の説明に従って変更Azure IoT Hub。
プロキシ サポートの追加の詳細については、「 READMEAddWebProxy.md」を参照してください。
サンプル
プロキシ コード スニペットは、次の例を示しています。
- [プロキシ設定の構成] コード スニペットは、Azure Sphere デバイスでプロキシ設定を構成する方法を示しています。
- [プロキシ設定の取得] コード スニペットは、Azure Sphere デバイスでプロキシ設定を取得する方法を示しています。
- [構成済みプロキシの有効化/無効化] コード スニペットは、Azure Sphere デバイスで既に構成されているプロキシを有効または無効にする方法を示しています。
HTTPS サンプルでは、HTTPS_Curl_Easy API と HTTPS_Curl_Multi API を使用して HTTPS 経由でコンテンツをフェッチする方法を示します。 既定では、プロキシを使用するようにcURL ハンドルを構成します。
AzureIoT サンプルには、Web プロキシ サポートをサンプルに追加するための手順とコードが含まれています。