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 (DPS) は、IoT Hub のヘルパー サービスです。適切な IoT Hub へのゼロタッチの Just-In-Time プロビジョニングを人間の介入を必要とせずに行うことができます。The IoT Hub Device Provisioning Service (DPS) is a helper service for IoT Hub that enables zero-touch, just-in-time provisioning to the right IoT hub without requiring human intervention. DPS を使用すると、膨大な数のデバイスを、安全かつスケーラブルな方法でプロビジョニングすることができます。DPS enables the provisioning of millions of devices in a secure and scalable manner.

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

デバイスを IoT Hub に接続し、構成する際に DPS が最適な選択肢になるプロビジョニング シナリオは多数あります。次に例を示します。There are many provisioning scenarios in which DPS 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

前のセクションに記載したすべてのシナリオは、ゼロタッチ プロビジョニングの DPS を使用して、同じフローで実行できます。All the scenarios listed in the previous section can be done using DPS for zero-touch provisioning with the same flow. プロビジョニングに従来必要だった手動の手順の多くは DPS で自動化されるので、IoT デバイスのデプロイにかかる時間を短縮し、手動によるエラーのリスクを軽減できます。Many of the manual steps traditionally involved in provisioning are automated with DPS 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. デバイスは、工場で DPS エンドポイント セットに接続しています。Device contacts the DPS endpoint set at the factory. デバイスは、DPS に識別情報を渡し、ID を証明しています。The device passes the identifying information to DPS to prove its identity.
  3. DPS は、nonce チャレンジ (トラステッド プラットフォーム モジュール) または標準の X.509 検証 (X.509) を使用して、登録一覧のエントリに対して登録 ID とキーを確認することで、デバイスの ID を検証します。DPS 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. DPS はデバイスを IoT ハブに登録し、デバイスの望ましいツイン状態を設定します。DPS registers the device with an IoT hub and populates the device's desired twin state.
  5. IoT ハブは、デバイスの ID 情報を DPS に返します。The IoT hub returns device ID information to DPS.
  6. DPS は IoT ハブの接続情報をデバイスに返します。DPS 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

DPS が関係するデバイスのデプロイ プロセスには 2 つの手順があり、個別に実行できます。There are two distinct steps in the deployment process of a device in which DPS 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. デバイスで接続情報を取得するために手動作業が必要な一部のデプロイ プロセスが、DPS によってさらに簡易化されます。DPS even simplifies some deployment processes that involve 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.

DPS によって製造プロセスに新しい手順が加わることはありませんが、初期ソフトウェアと (理想的には) HSM をデバイスにインストールする既存の手順に関係しています。DPS 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. DPS では、デバイスにシームレスなプロビジョニング エクスペリエンスを提供するために、両方のステップを自動化しています。DPS automates both steps to provide a seamless provisioning experience for the device.

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

DPS は多くの機能を備えているため、デバイスのプロビジョニングに最適です。DPS 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.
  • 複数の割り当てポリシー。実際のシナリオに合わせて DPS がデバイスを IoT ハブに割り当てる方法を制御できます。最短待ち時間、均等に重み付けされた分布 (既定)、および登録リストによる静的な構成。Multiple allocation policies to control how DPS assigns devices to IoT hubs in support of your scenarios: Lowest latency, evenly weighted distribution (default), and static configuration via the enrollment list. 待ち時間は Traffic Manager と同じ方法を使用して決定されます。Latency is determined using the same method as Traffic Manager.
  • 監視および診断ログ。すべての機能が正常に動作していることを確認できます。Monitoring and diagnostics logging to make sure everything is working properly.
  • マルチハブのサポート。DPS でデバイスを複数の IoT ハブに割り当てることができます。Multi-hub support allows DPS to assign devices to more than one IoT hub. DPS は、複数の Azure サブスクリプションにわたってハブと対話できます。DPS can talk to hubs across multiple Azure subscriptions.
  • リージョン間のサポート。DPS でデバイスを他のリージョンの IoT ハブに割り当てることができます。Cross-region support allows DPS to assign devices to IoT hubs in other regions.
  • 保存データの暗号化。DPS 内のデータは、利用可能な最強のブロック暗号の 1 つである 256 ビット AES 暗号化を使って透過的に暗号化および暗号化解除され、FIPS 140-2 に準拠しています。Encryption for data at rest allows data in DPS to be encrypted and decrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant.

デバイス プロビジョニングに関連する概念と機能の詳細については、DPS の用語に関するトピック、および同じセクション内の他の概念に関するトピックをご確認ください。You can learn more about the concepts and features involved in device provisioning by reviewing the DPS terminology topic along with the other conceptual topics in the same section.

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

DPS は、他のあらゆる Azure IoT サービスとまったく同じように、多様なオペレーティング システムとクロスプラットフォームで動作します。Just like all Azure IoT services, DPS 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. DPS は、次のプロトコルを使ったデバイスの接続をサポートしています。DPS supports the following protocols for connecting devices:

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

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

リージョンRegions

DPS は多数のリージョンで利用できます。DPS 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.

注意

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

可用性Availability

DPS では、99.9% のサービス レベル アグリーメントが維持されています。SLA を参照してください。There is a 99.9% Service Level Agreement for DPS, 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.

次の表は、Azure IoT Hub Device Provisioning Service のリソースに適用される制限の一覧です。The following table lists the limits that apply to Azure IoT Hub Device Provisioning Service resources.

リソースResource 制限Limit
Azure サブスクリプションあたりのデバイス プロビジョニング サービスの最大数Maximum device provisioning services per Azure subscription 1010
加入の最大数Maximum number of enrollments 1,000,0001,000,000
登録の最大数Maximum number of registrations 1,000,0001,000,000
加入グループの最大数Maximum number of enrollment groups 100100
CA の最大数Maximum number of CAs 2525
リンクされた IoT Hub の最大数Maximum number of linked IoT hubs 5050
メッセージの最大サイズMaximum size of message 96 KB96 KB

注意

お使いのプロビジョニング サービスの加入数と登録数を増やすには、Microsoft サポートにお問い合わせください。To increase the number of enrollments and registrations on your provisioning service, contact Microsoft Support.

注意

CA の最大数を増やすことはサポートされていません。Increasing the maximum number of CAs is not supported.

Device Provisioning Service は、次のクォータを超えた場合に、要求を調整します。The Device Provisioning Service throttles requests when the following quotas are exceeded.

スロットルThrottle ユニットあたりの値Per-unit value
操作Operations 200/分/サービス200/min/service
デバイス登録Device registrations 200/分/サービス200/min/service
デバイスのポーリング操作Device polling operation 5/10 秒/デバイス5/10 sec/device

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

DPS は Azure IoT Hub を使用してデバイス プロビジョニングを自動化しています。DPS 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.

Azure portal で IoT Hub Device Provisioning Service を設定するSet up IoT Hub Device Provisioning Service with the Azure portal

シミュレートされたデバイスの作成とプロビジョニングCreate and provision a simulated device

プロビジョニングするデバイスを設定するSet up device for provisioning