次の方法で共有


IoT Hub Device Provisioning Service 用 Microsoft SDK

Microsoft SDK for IoT Hub Device Provisioning Service (DPS) は、IoT デバイスを 1 つ以上の IoT ハブにプロビジョニングするデバイスアプリケーションとバックエンド アプリケーションを構築するのに役立ちます。 SDK は、デバイスまたはバックエンド アプリと DPS の間の基になるトランスポートおよびセキュリティ プロトコルを処理するため、アプリケーション開発に集中できます。 SDK を使用すると、今後の DPS の更新プログラム (セキュリティ更新プログラムなど) のサポートを受けられます。 この記事では、SDK の 3 つのカテゴリについて説明し、一般的な言語で公開されている DPS SDK の一覧を示し、SDK のリファレンス、サンプル、およびクイック スタートへのリンクを提供します。

Important

IoT Hub での証明書管理は プレビュー 段階であり、次の DPS デバイス SDK でのみサポートされています:埋め込み C (ベア メタル、無料 RTOS)、C、Python。 IoT HubのSDKはサポートしていません。 詳細については、「証明書管理とは」を参照してください。

SDK カテゴリ

ソフトウェア開発キット (SDK) の 3 つのカテゴリが DPS で動作します。

  • DPS デバイス SDK は、デバイスに関するデータ プレーンの操作を提供します。 デバイス SDK を使用して、DPS 経由でデバイスをプロビジョニングします。

  • DPS サービス SDK は、バックエンド アプリに関するデータ プレーンの操作を提供します。 サービス SDK を使用して、個々の登録と登録グループを作成および管理し、デバイス登録レコードのクエリと管理を行います。

  • DPS 管理 SDK は、バックエンド アプリに関するコントロール プレーンの操作を提供します。 管理 SDK を使用して、DPS インスタンスとメタデータを作成および管理します。 たとえば、サブスクリプションで DPS インスタンスを作成および管理したり、DPS インスタンスで証明書をアップロードして検証したり、DPS インスタンスで承認ポリシーや割り当てポリシーを作成および管理したりするために使用します。

DPS SDK は、IoT ハブにデバイスをプロビジョニングするのに役立ちます。 Microsoft からは、Azure IoT Hub と直接通信するデバイス アプリやバックエンド アプリの構築に役立つ SDK のセットも提供されています。 たとえば、プロビジョニングされたデバイスで IoT ハブにテレメトリを送信したり、必要に応じて、メッセージやジョブ、メソッド、またはツインの更新プログラムを IoT ハブから受け取ったりできます。 詳しくは、「Azure IoT Hub SDK」をご覧ください。

デバイスの SDK

DPS デバイス SDK を使用すると、デバイスは DPS に登録し、その IoT ハブの割り当てを受け取ります。 デバイス SDK を使用して、対称キー、X.509 証明書、または TPM 構成証明を使用してデバイス側プロビジョニングを実装します。 プラットフォーム デバイス SDK は、フル オペレーティング システムを実行するデバイスで使用でき、埋め込みデバイス SDK はリソースに制約のあるマイクロコントローラー ベースのデバイスで使用できます。

プラットフォーム デバイス SDK

DPS デバイス SDK は、DPS を介したプロビジョニングのためにデバイスが呼び出す Register API やその他の実装を提供します。 デバイス SDK は、PC、タブレット、スマートフォン、Raspberry Pi などの一般的な MPU ベースのコンピューティング デバイスで実行できます。 SDK では、C#、Node.js、Python、Java を含む、C 言語と最新のマネージド言語での開発がサポートされています。

次の表に、サポートされている各言語で使用できるデバイス SDK を示します。

プラットフォーム パッケージ コード リポジトリ サンプル クイック スタート リファレンス
.NET NuGet GitHub サンプル クイックスタート 参照
C apt-get、MBED、Arduino IDE、または iOS GitHub サンプル クイックスタート 参照
Java Maven GitHub サンプル クイックスタート 参照
Node.js npm GitHub サンプル クイックスタート 参照
Python pip GitHub サンプル クイックスタート 参照

警告

上記の C SDK は、そのメモリ管理とスレッド モデルが原因で、埋め込みアプリケーションには適していません。 組み込みデバイスについては、「組み込みデバイスの SDK」を参照してください。

証明書管理デバイス SDK (プレビュー)

プレビュー段階で Microsoft がサポートする X.509 証明書管理をサポートする SDK の場合は、次の手順とサンプルを使用します。

プラットフォーム インストラクション Sample
C 手順 サンプル
Python 手順 サンプル

組み込みデバイスの SDK

これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。

RTOS SDK source サンプル リファレンス
エクリプス・スレッドX Azure RTOS ミドルウェア GitHub クイックスタート 参照
FreeRTOS FreeRTOS ミドルウェア GitHub サンプル 参照
ベアメタル Azure SDK for Embedded C GitHub サンプル 参照

IoT SDK のデバイス SDK と埋め込みデバイス SDK の詳細について説明します。

証明書管理の埋め込みデバイス SDK (プレビュー)

プレビュー段階で Microsoft がサポートする X.509 証明書管理をサポートする埋め込み SDK の場合は、次の手順とサンプルを使用します。

RTOS SDK インストラクション Sample
FreeRTOS FreeRTOS ミドルウェア 手順 サンプル
ベアメタル Azure SDK for Embedded C 手順 サンプル

サービス SDK

DPS サービス SDK は、DPS インスタンスの登録と登録レコードを管理するためのバックエンド アプリケーションを構築するのに役立ちます。

プラットフォーム パッケージ コード リポジトリ サンプル クイック スタート リファレンス
.NET NuGet GitHub サンプル クイックスタート 参照
Java Maven GitHub サンプル クイックスタート 参照
Node.js npm GitHub サンプル クイックスタート 参照

Management SDK

DPS 管理 SDK は、Azure サブスクリプション内の DPS インスタンスとそのメタデータを管理するバックエンド アプリケーションを構築するのに役立ちます。

プラットフォーム パッケージ コード リポジトリ リファレンス
.NET NuGet GitHub 参照
Java Maven GitHub 参照
Node.js npm GitHub 参照
Python pip GitHub 参照

次のステップ

Device Provisioning Service のドキュメントには、SDK とライブラリを試すのに使えるチュートリアル追加のサンプルが用意されています。