프록시 서버를 통해 Azure Sphere 연결
Azure Sphere SDK 애플리케이션 라이브러리(Applibs) 또는 CLI를 사용하여 프록시 서버를 통해 인터넷에 연결하도록 Azure Sphere 디바이스를 구성할 수 있습니다. 이 기능을 사용하도록 설정하면 모든 디바이스 트래픽이 프록시를 통해 흐릅니다. 사용할 프록시 서버, 서버 유형 및 인증 방법을 식별하도록 디바이스를 구성할 수 있습니다.
현재는 HTTP 프록시만 지원됩니다.
인증 방법
지원되는 인증 방법은 다음과 같습니다.
- 기본: 사용자에게 연결을 인증할 사용자 이름 및 암호를 묻는 메시지를 표시합니다.
- 익명: 프록시 서버 연결을 사용할 때 사용자 이름과 암호가 필요하지 않도록 사용자가 익명으로 연결할 수 있습니다.
CLI를 사용한 프록시 구성
다음 명령은 네트워크 연결에 프록시 주소 사용을 관리합니다. 자세한 내용은 az sphere device network proxy를 참조하세요.
작업 | 설명 |
---|---|
프록시 적용 | 연결된 디바이스에서 네트워크 프록시를 구성합니다. |
프록시 삭제 | 연결된 디바이스에서 프록시 연결을 삭제합니다. |
proxy show | 연결된 디바이스에서 프록시 연결을 표시합니다. |
Applibs를 사용한 프록시 구성
프록시 구성을 설정하려면 애플리케이션에서 프록시 구성 속성을 가져오고 설정하는 지원이 포함된 Applibs 네트워킹 API를 사용해야 합니다.
애플리케이션에 다음 헤더 파일을 포함합니다.
#include <applibs/networking.h>
애플리케이션에서 cURL 사용하고 프록시 서버를 통해 인터넷에 연결하는 경우 이 헤더 파일도 포함해야 합니다.
#include <applibs/networking_curl.h>
cURL 사용에 대한 자세한 내용은 웹 서비스에 연결을 참조하세요.
프록시 구성에 지원되는 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 Hub에 연결합니다. 트래픽이 프록시를 통해 제대로 리디렉션되도록 WebSockets를 통해 MQTT를 사용하도록 애플리케이션을 구성해야 합니다.
IoT Hub 직접 통신하도록 애플리케이션을 구성하거나 Azure DPS(Device Provisioning Services)를 사용할 수 있습니다.
IoT Hub와 직접 통신하도록 애플리케이션을 구성하려면 READMEStartWithIoTHub.md 샘플의 프록시 샘플 코드를 사용하고 AzureIoT Hub에 직접 연결에 설명된 대로 수정합니다.
Azure DPS를 사용하도록 애플리케이션을 구성하려면 READMEAddDPS 또는 READMEStartWithIoTCentral 샘플의 프록시 샘플 코드를 사용하고 Azure IoT Hub 디바이스 프로비저닝 서비스를 통해 연결에 설명된 대로 수정합니다.
프록시 지원을 추가하는 방법에 대한 자세한 내용은 READMEAddWebProxy.md 참조 하세요.
샘플
프록시 코드 조각은 다음을 보여 줍니다.
- 프록시 설정 구성 코드 조각은 Azure Sphere 디바이스에서 프록시 설정을 구성하는 방법을 보여 줍니다.
- 프록시 설정 가져오기 코드 조각은 Azure Sphere 디바이스에서 프록시 설정을 검색하는 방법을 보여 줍니다.
- 구성된 프록시 코드 조각 사용/사용 안 함 코드 조각은 Azure Sphere 디바이스에서 이미 구성된 프록시를 사용하거나 사용하지 않도록 설정하는 방법을 보여 줍니다.
HTTPS 샘플에서는 HTTPS_Curl_Easy 및 HTTPS_Curl_Multi API를 사용하여 HTTPS를 통해 콘텐츠를 가져오는 방법을 보여 줍니다. 기본적으로 프록시를 사용하도록 cURL 핸들을 구성합니다.
AzureIoT 샘플에는 샘플에 웹 프록시 지원을 추가하기 위한 지침과 코드가 포함되어 있습니다.