「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次  †
概要  †
双方向通信の仲介  †
デバイス認証  †
デバイス認証によるセキュリティ強化
メッセージ ハブ  †
メッセージング パターン  †
複数のメッセージング パターンをサポート
- ファイルのアップロード
 
- IoTデバイス制御の要求/応答メソッド
 
ソリューション構築  †
接続  †
監視  †
イベントを追跡により、ソリューションの正常性維持に役立つ。
- IoTデバイスの作成
 
- IoTデバイスの障害
 
- IoTデバイスの接続
 
アプリケーション開発  †
Azure IoT Hub SDKを使用して開発。
- Azure IoT Hub Device SDK
デバイス側のアプリケーションの構築を容易にする。 
- Azure IoT Hub Service SDK
クラウド・サービス側のアプリケーションの構築を容易にする。 
- Azure Provisioning SDK
DPSを使用してデバイスをIoT Hub にプロビジョニング 
詳細  †
機能  †
スケール調整  †
毎秒数百万のイベントに対応するようにスケーリングします。
- 数百万のIoTデバイスの同時接続
 
- および IoT ワークロードをサポート
 
クォータと制限  †
DoS攻撃からの保護するため、サブスクリプションごとの IoT ハブの数を制限
https://docs.microsoft.com/ja-jp/azure/azure-subscription-service-limits
IoTデバイスの構成と制御  †
- IoTデバイス毎、またはIoTデバイス共通特性に基づいて、IoTデバイスの状態を設定。
 
- IoTデバイスのデバイス メタデータと状態情報を保存、同期、照会。
 
- IoTデバイスで報告された状態の変化に自動的に対応。
 
ルーティング  †
メッセージ・ルーティング  †
- コードのないルール・ベースのルーティング
 
- HubがIoTデバイスのテレメトリ(稼働データ)を送信する場所を制御
 
- 複数のエンドポイントにメッセージをルーティング
 
イベント・ルーティング  †
Azure Event Gridでのルーティング
- 利用統計情報、デバイスの作成、削除、接続、切断のIoT Hub イベントに対応
- Microsoft.Devices.DeviceCreated?
デバイスが IoT Hub に登録されると発行される。 
- Microsoft.Devices.DeviceDeleted?
デバイスが IoT Hub から削除されると発行される。 
- Microsoft.Devices.DeviceConnected?
デバイスが IoT Hub に接続されると発行される。 
- Microsoft.Devices.DeviceDisconnected?
デバイスが IoT Hub から切断されると発行される。 
- Microsoft.Devices.DeviceTelemetry?
デバイス テレメトリのメッセージが IoT Hub に送信されると発行される。 
 
セキュリティ  †
参照アーキテクチャに準拠
- セキュリティ保護された通信チャネルを使用
 
- IoTデバイスを自動的にプロビジョニング
 
- IoTデバイス毎の認証(安全に接続・管理)
 
- IoTデバイスのアクセス制御、接続制御
 
認証・認可  †
- デバイス毎のセキュリティ資格情報でアクセス制御
・対称キー
・自己署名証明書
・CA署名証明書 
- ヒトやサービスからIoT Hubにアクセスする場合
共有アクセスポリシーでアクセス制御 
- 共有アクセスポリシーとデバイス毎のセキュリティ資格情報の違い
 
- 共有アクセスポリシー
- ヒトやサービスが使用する。
 
- ポリシー名とアクセス許可を登録する。
 
 
- デバイス毎のセキュリティ資格情報
- デバイスが使用する。
 
- デバイスIDのみ登録(アクセス許可は登録しない)。
 
 
- 共有アクセスポリシーと対称キーはSASトークンに変換する。
- SDKを使わずに、接続するにはSASトークンを渡す必要がある。
 
- SASトークンは、以下をSHA256で署名して生成する。
- 共有アクセスポリシーの場合
・共有アクセスポリシー名
・共有アクセスキー
・リソースURI
・有効期限 
- 対称キーからの場合
・対称キー
・リソースURI
・有効期限 
 
 
プロビジョニング  †
IoTデバイスの接続  †
IoT Hub と対話するアプリケーションを作成できる。
プラットフォーム  †
プログラミング言語  †
Hubに接続されるフロントエンド・バックエンド
Endpoint  †
Azure IoT Hubの「Hub」とは、以下の
を繋ぐ「Hub」と言う所から来ているらしい。
Device Endpoint(Device ⇔ Hub)  †
デバイス側(フロントエンド
- D2C Endpoint
D2C メッセージの送信(Azure Event Hubs互換
- 時系列テレメトリとアラート
 
- ファイルのアップロード
 
- デバイス ツインの報告されるプロパティ
 
 
- C2D Endpoint
C2D メッセージの受信(キューから受信) 
- ファイル通知の受信
ファイルのアップロード結果の通知を受信 
- ダイレクト メソッド
要求 / 応答型パターンに従うダイレクト(疑似Push)メソッド(の要求側) 
※ 実装する際は、言語毎に用意されたAzure IoT Hub Device SDKを使用する。
Service Endpoint(Hub ⇔ Service)  †
クラウド・サービス側(バックエンド)
- D2C Endpoint
D2C メッセージの受信
- 時系列テレメトリとアラート
 
- ファイルのアップロード
 
- デバイス ツインの報告されるプロパティ
 
 
- C2D Endpoint
C2D メッセージの送信(キューに送信) 
- ファイル通知の送信
ファイルのアップロード結果の通知を送信 
- ダイレクト メソッド
要求 / 応答型パターンに従うダイレクト(疑似Push)メソッド(の応答側) 
※ 実装する際は、言語毎に用意されたAzure IoT Hub Service SDKを使用する。
Management Endpoint  †
- デバイス ID の管理
- HTTPS REST エンドポイント
 
- デバイス ID の管理 (作成、取得、更新、削除)
 
 
- デバイス ツインの管理
- HTTPS REST エンドポイント
 
- デバイス ツインのクエリと更新 (タグとプロパティの更新) を実行
 
 
- ジョブの管理
- HTTPS REST エンドポイント
 
- ジョブのクエリと管理を実行
 
 
参考  †
matsujirushi’s blog  †
YouTube?  †
microsoft.com  †
Microsoft Azure  †
Microsoft Docs  †
Learn | Microsoft Docs  †
Tags: :クラウド, :IoT, :Azure