Azure IoT Hub Device Provisioning Service を使用したデバイスのプロビジョニングProvisioning devices with Azure IoT Hub Device Provisioning Service

Microsoft Azure には、すべての IoT ソリューションのニーズに合う豊富な統合されたパブリック クラウド サービス セットがあります。Microsoft Azure provides a rich set of integrated public cloud services for all your IoT solution needs. IoT Hub Device Provisioning Service は、適切な IoT ハブへのゼロタッチでジャストインタイムなプロビジョニングを可能にする、IoT Hub のヘルパー サービスです。人間の介入を必要とせず、安全かつスケーラブルな方法で何百万というデバイスをプロビジョニングできます。The IoT Hub Device Provisioning Service is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention, enabling customers to provision millions of devices in a secure and scalable manner.

Device Provisioning Service を使用する場合When to use Device Provisioning Service

デバイスを IoT Hub に接続し、構成する際に Device Provisioning Service が最適な選択肢になるプロビジョニング シナリオは多数あります。次に例を示します。There are many provisioning scenarios in which the Device Provisioning Service is an excellent choice for getting devices connected and configured to IoT Hub, such as:

  • 工場 (初期設定) で IoT Hub 接続情報をハードコーディングすることなく、ゼロタッチで単一の IoT ソリューションにプロビジョニングできますZero-touch provisioning to a single IoT solution without hardcoding IoT Hub connection information at the factory (initial setup)
  • 複数のハブ間でデバイスの負荷を分散しますLoad balancing devices across multiple hubs
  • 販売トランザクション データに基づいて、デバイスをデバイス所有者の IoT ソリューションに接続します (マルチテナント)Connecting devices to their owner’s IoT solution based on sales transaction data (multitenancy)
  • ユースケースに応じて特定の IoT ソリューションにデバイスを接続します (ソリューションの分離)Connecting devices to a particular IoT solution depending on use-case (solution isolation)
  • 最低限の待機時間でデバイスを IoT ハブに接続します (geo シャーディング)Connecting a device to the IoT hub with the lowest latency (geo-sharding)
  • デバイスの変化に基づいて再プロビジョニングしますReprovisioning based on a change in the device
  • デバイスが IoT Hub に接続するときに使用するキーをローリングします (接続に X.509 証明書を使用しない場合)Rolling the keys used by the device to connect to IoT Hub (when not using X.509 certificates to connect)

バックグラウンド処理Behind the scenes

前のセクションに記載したすべてのシナリオは、ゼロタッチ プロビジョニングのプロビジョニング サービスを使用して、同じフローで実行できます。All the scenarios listed in the previous section can be done using the provisioning service for zero-touch provisioning with the same flow. プロビジョニングに従来必要だった手動の手順の多くは Device Provisioning Service で自動化されるので、IoT デバイスのデプロイにかかる時間を短縮し、手動によるエラーのリスクを軽減できます。Many of the manual steps traditionally involved in provisioning are automated with the Device Provisioning Service to reduce the time to deploy IoT devices and lower the risk of manual error. 次のセクションでは、デバイスをプロビジョニングする処理の背後でどのような処理が行われているかについて説明します。The following section describes what goes on behind the scenes to get a device provisioned. 最初の手順は手動ですが、残りのすべての手順は自動です。The first step is manual, all of the following steps are automated.

プロビジョニングの基本的な流れ

  1. デバイスの製造元は、デバイスの登録情報を Azure Portal の登録一覧に追加しています。Device manufacturer adds the device registration information to the enrollment list in the Azure portal.
  2. デバイスは、工場でプロビジョニング サービス エンドポイント セットに接続しています。Device contacts the provisioning service endpoint set at the factory. デバイスは、プロビジョニング サービスに識別情報を渡し、ID を証明しています。The device passes the identifying information to the provisioning service to prove its identity.
  3. プロビジョニング サービスは、nonce チャレンジ (トラステッド プラットフォーム モジュール) または標準の X.509 検証 (X.509) を使用して、登録一覧のエントリに対して登録 ID とキーを確認することで、デバイスの ID を検証します。The provisioning service validates the identity of the device by validating the registration ID and key against the enrollment list entry using either a nonce challenge (Trusted Platform Module) or standard X.509 verification (X.509).
  4. プロビジョニング サービスはデバイスを IoT ハブに登録し、デバイスの望ましいツイン状態を設定します。The provisioning service registers the device with an IoT hub and populates the device's desired twin state.
  5. IoT ハブは、デバイスの ID 情報をプロビジョニング サービスに返します。The IoT hub returns device ID information to the provisioning service.
  6. プロビジョニング サービスは IoT ハブの接続情報をデバイスに返します。The provisioning service returns the IoT hub connection information to the device. これで、デバイスは IoT ハブにデータを直接送信できるようになります。The device can now start sending data directly to the IoT hub.
  7. デバイスは IoT ハブに接続します。The device connects to IoT hub.
  8. デバイスは、IoT ハブのデバイス ツインから望ましい状態を取得します。The device gets the desired state from its device twin in IoT hub.

プロビジョニング プロセスProvisioning process

Device Provisioning Service が関係するデバイスのデプロイ プロセスには 2 つの手順があり、個別に実行できます。There are two distinct steps in the deployment process of a device in which the Device Provisioning Service takes a part that can be done independently:

  • 製造手順では、工場でデバイスが作成され、準備されます。The manufacturing step in which the device is created and prepared at the factory, and
  • クラウドのセットアップ手順では、Device Provisioning Service が自動プロビジョニング用に構成されます。The cloud setup step in which the Device Provisioning Service is configured for automated provisioning.

これらの手順はどちらも、既存の製造プロセスとデプロイ プロセスにシームレスに適応します。Both these steps fit in seamlessly with existing manufacturing and deployment processes. デバイスで接続情報を取得するために多くの手動作業が必要な一部のデプロイ プロセスが、Device Provisioning Service によってさらに簡易化されます。The Device Provisioning Service even simplifies some deployment processes that involve a lot of manual work to get connection information onto the device.

製造手順Manufacturing step

この手順は、製造ラインで実行されるすべての作業です。This step is all about what happens on the manufacturing line. この手順にかかわる役割には、シリコン デザイナー、シリコンの製造元、インテグレーター、デバイスの最終製造元などがあります。The roles involved in this step include silicon designer, silicon manufacturer, integrator and/or the end manufacturer of the device. この手順は、ハードウェア自体の作成に関係しています。This step is concerned with creating the hardware itself.

Device Provisioning Service によって製造プロセスに新しい手順が加わることはありませんが、初期ソフトウェアと (理想的には) HSM をデバイスにインストールする既存の手順に関係しています。The Device Provisioning Service does not introduce a new step in the manufacturing process; rather, it ties into the existing step that installs the initial software and (ideally) the HSM on the device. この手順ではデバイス ID は作成されず、プロビジョニング サービス情報がデバイスにプログラミングされます。これにより、デバイスの電源を入れたときに、プロビジョニング サービスを呼び出して接続情報や IoT ソリューションの割り当てを取得することができます。Instead of creating a device ID in this step, the device is programmed with the provisioning service information, enabling it to call the provisioning service to get its connection info/IoT solution assignment when it is switched on.

また、この手順では、製造元がデバイスのデプロイ担当者やオペレーターに識別キー情報を提供します。Also in this step, the manufacturer supplies the device deployer/operator with identifying key information. この情報提供は、デバイスのデプロイ担当者やオペレーターによって指定された署名証明書から生成された X.509 証明書がすべてのデバイスにインストールされていることを確認するだけの単純な処理であることもあれば、各 TPM デバイスから TPM 保証キーの公開部分を抽出するほどの複雑な処理であることもあります。Supplying that information could be as simple as confirming that all devices have an X.509 certificate generated from a signing certificate provided by the device deployer/operator, or as complicated as extracting the public portion of a TPM endorsement key from each TPM device. 現在、多くのシリコン製造元がこれらのサービスを提供しています。These services are offered by many silicon manufacturers today.

クラウドのセットアップ手順Cloud setup step

これは、適切な自動プロビジョニングのためにクラウドを構成する手順です。This step is about configuring the cloud for proper automatic provisioning. 通常、クラウドのセットアップ手順には 2 種類のユーザーが関係します。初期段階でデバイスをどのようにセットアップする必要があるかを把握しているユーザー (デバイス オペレーター) と、デバイスを IoT ハブ間で分割する方法を把握しているユーザー (ソリューション オペレーター) です。Generally there are two types of users involved in the cloud setup step: someone who knows how devices need to be initially set up (a device operator), and someone else who knows how devices are to be split among the IoT hubs (a solution operator).

実行する必要があるプロビジョニングの 1 回限りの初期セットアップがあります。通常、これはソリューション オペレーターが処理します。There is a one-time initial setup of the provisioning that must occur, which is usually handled by the solution operator. プロビジョニング サービスを構成した後は、ユース ケースが変わらない限り、構成を変更する必要はありません。Once the provisioning service is configured, it does not have to be modified unless the use case changes.

自動プロビジョニング用にサービスを構成した後は、デバイスの登録を準備する必要があります。After the service has been configured for automatic provisioning, it must be prepared to enroll devices. この手順は、デバイス オペレーターが実行します。デバイス オペレーターは、デバイスの望ましい構成を把握し、IoT ハブを検索するときにプロビジョニング サービスがデバイスの ID を適切に証明できるようにする処理を担当します。This step is done by the device operator, who knows the desired configuration of the device(s) and is in charge of making sure the provisioning service can properly attest to the device's identity when it comes looking for its IoT hub. デバイス オペレーターは、製造元から識別キー情報を取得し、登録一覧に追加します。The device operator takes the identifying key information from the manufacturer and adds it to the enrollment list. 以降、新しいエントリが追加されたときや、デバイスに関する最新情報があり、既存のエントリが更新されたときに、登録が更新される可能性があります。There can be subsequent updates to the enrollment list as new entries are added or existing entries are updated with the latest information about the devices.

登録とプロビジョニングRegistration and provisioning

プロビジョニングとは、この用語が使用される業界によって意味する処理が異なります。Provisioning means various things depending on the industry in which the term is used. IoT デバイスをクラウド ソリューションにプロビジョニングするという文脈では、プロビジョニングには 2 つのプロセスがあります。In the context of provisioning IoT devices to their cloud solution, provisioning is a two part process:

  1. 最初のプロセスでは、デバイスを登録することで、デバイスと IoT ソリューション間の初期接続を確立します。The first part is establishing the initial connection between the device and the IoT solution by registering the device.
  2. 2 つ目のプロセスでは、登録先のソリューションが持つ特定の要件に基づいて、デバイスに適切な構成を適用します。The second part is applying the proper configuration to the device based on the specific requirements of the solution it was registered to.

この 2 つのステップを両方とも完了すると、デバイスが完全にプロビジョニングされたことになります。Once both of those two steps have been completed, we can say that the device has been fully provisioned. 一部のクラウド サービスは、プロビジョニング プロセスの最初の手順 (デバイスを IoT ソリューション エンドポイントに登録する) のみを提供していますが、初期構成は提供していません。Some cloud services only provide the first step of the provisioning process, registering devices to the IoT solution endpoint, but do not provide the initial configuration. Device Provisioning Service では、両方の手順を自動化し、デバイスのシームレスなプロビジョニング エクスペリエンスを提供しています。The Device Provisioning Service automates both steps to provide a seamless provisioning experience for the device.

Device Provisioning Service の機能Features of the Device Provisioning Service

Device Provisioning Service は多くの機能を備えているため、デバイスのプロビジョニングに最適です。The Device Provisioning Service has many features, making it ideal for provisioning devices.

  • 安全な構成証明。X.509 と TPM ベースの ID の両方をサポートしています。Secure attestation support for both X.509 and TPM-based identities.
  • 登録一覧。任意の時点で登録できるデバイスまたはデバイス グループの完全なレコードが含まれます。Enrollment list containing the complete record of devices/groups of devices that may at some point register. 登録一覧には、デバイスが登録されたときのデバイスの望ましい構成に関する情報が含まれています。いつでも更新することができます。The enrollment list contains information about the desired configuration of the device once it registers, and it can be updated at any time.
  • 複数の割り当てポリシー。実際のシナリオに合わせて Device Provisioning Service がデバイスを IoT ハブに割り当てる方法を制御できます。Multiple allocation policies to control how the Device Provisioning Service assigns devices to IoT hubs in support of your scenarios.
  • 監視および診断ログ。すべての機能が正常に動作していることを確認できます。Monitoring and diagnostics logging to make sure everything is working properly.
  • マルチハブのサポート。Device Provisioning Service でデバイスを複数の IoT ハブに割り当てることができます。Multi-hub support allows the Device Provisioning Service to assign devices to more than one IoT hub. Device Provisioning Service は、複数の Azure サブスクリプションにわたってハブと対話できます。The Device Provisioning Service can talk to hubs across multiple Azure subscriptions.
  • リージョン間のサポート。Device Provisioning Service でデバイスを他のリージョンの IoT ハブに割り当てることができます。Cross-region support allows the Device Provisioning Service to assign devices to IoT hubs in other regions.

デバイスのプロビジョニングに関係する概念と機能の詳細については、デバイスの概念サービスの概念セキュリティの概念に関する記事を参照してください。You can learn more about the concepts and features involved in device provisioning in device concepts, service concepts, and security concepts.

クロスプラットフォームのサポートCross-platform support

Device Provisioning Service は、他のすべての Azure IoT サービスと同様に、多様なオペレーティング システムとクロスプラットフォームで動作します。The Device Provisioning Service, like all Azure IoT services, works cross-platform with a variety of operating systems. Azure ではさまざまな言語でオープン ソース SDK が提供されており、容易にデバイスを接続して、サービスを管理できます。Azure offers open-source SDKs in a variety of languages to facilitate connecting devices and managing the service. Device Provisioning Service は、次のプロトコルを使ったデバイスの接続をサポートしています。The Device Provisioning Service supports the following protocols for connecting devices:

  • HTTPSHTTPS
  • AMQPAMQP
  • Web ソケット経由の AMQPAMQP over web sockets
  • MQTTMQTT
  • WebSocket 経由の MQTTMQTT over web sockets

Device Provisioning Service は、サービス操作の HTTPS 接続のみをサポートしています。The Device Provisioning Service only supports HTTPS connections for service operations.

リージョンRegions

Device Provisioning Service は、多くのリージョンで利用可能です。The Device Provisioning Service is available in many regions. すべてのサービスの既存リージョンと新規発表リージョンの最新の一覧は、「Azure リージョン」にあります。The updated list of existing and newly announced regions for all services is at Azure Regions. Device Provisioning Service の状態は、[Azure の状態] ページで確認できます。You can check availability of the Device Provisioning Service on the Azure Status page.

注意

Device Provisioning Service はグローバルであり、場所にバインドされてはいません。The Device Provisioning Service is global and not bound to a location. ただし、Device Provisioning Service プロファイルに関連付けられたメタデータが存在するリージョンを指定する必要があります。However, you must specify a region in which the metadata associated with your Device Provisioning Service profile will reside.

可用性Availability

Device Provisioning Service では、99.9% のサービス レベル アグリーメントが維持されています。SLA についてはこちらをご覧ください。There is a 99.9% Service Level Agreement for the Device Provisioning Service, and you can read the SLA. 完全な Azure SLA では、全体としての Azure の可用性の確保について説明します。The full Azure SLA explains the guaranteed availability of Azure as a whole.

Quotas (クォータ)Quotas

各 Azure サブスクリプションには既定のクォータ制限が設けられており、IoT ソリューションの範囲に影響する可能性があります。Each Azure subscription has default quota limits in place that could impact the scope of your IoT solution. サブスクリプションごとの現在の上限は、サブスクリプションあたり 10 個の Device Provisioning Service です。The current limit on a per-subscription basis is 10 Device Provisioning Services per subscription.

クォータ制限の詳細については、次を参照してください。For more details on quota limits:

Device Provisioning Service は Azure IoT Hub を使用してデバイスのプロビジョニングを自動化しています。The Device Provisioning Service automates device provisioning with Azure IoT Hub. 詳細については、「IoT Hub のドキュメント」を参照してください。Learn more about IoT Hub.

次の手順Next steps

ここでは、Azure で IoT デバイスをプロビジョニングする方法の概要について説明しました。You now have an overview of provisioning IoT devices in Azure. 次の手順では、エンドツーエンドの IoT シナリオを試します。The next step is to try out an end-to-end IoT scenario.