製品ごとに固有の証明書検証を使用すると、製品のすべてのデバイスに同じ製品証明書が書き込まれます。 プロダクト証明書情報には、ProductKeyとProductSecretが含まれます。 デバイスがアクティベーション要求を開始すると、IoT Platformはデバイスを検証します。 デバイスが検証に合格すると、IoT PlatformはデバイスがIoT Platformに接続するために必要な情報を送信します。
背景情報
製品ごとに固有の証明書検証方法は、事前登録の製品ごとの一意の証明書検証および事前登録のない製品ごとの一意の証明書検証です。 次の表に、検証方法の違いを示します。
製品ごとに固有の証明書検証を使用すると、製品のすべてのデバイスが同じ証明書情報を持っているため、証明書情報が開示される可能性があります。 [プロダクト詳細] ページで、[動的登録] をオフにして、新しいデバイスからの検証リクエストを拒否できます。
製品ごとに固有の証明書検証に基づいてデバイスを動的に登録する場合は、トランスポート層セキュリティ (TLS) 暗号化を使用する必要があります。 デバイスSDKがTLS暗号化をサポートしていない場合は、Unique-certificate-per-device verificationメソッドを使用する必要があります。
項目 | 事前登録不要の製品ごとの固有証明書検証 | 事前登録固有-製品ごとの証明書検証 |
プロトコル | メッセージキューテレメトリトランスポート (MQTT) | HTTPSおよびMQTT |
サポートされるリージョン | 中国 (上海) と中国 (北京) |
|
サポートされているインスタンスタイプ | Enterprise Edition インスタンス | Enterprise Editionインスタンスとパブリックインスタンス |
特徴 | IoT PlatformでデバイスのDeviceNameを事前登録する必要はありません。 | IoT PlatformでデバイスのDeviceNameを事前登録する必要があります。 ゲートウェイのサブデバイスは、事前登録の製品ごとの一意証明書検証のみをサポートします。 |
制限事項 | 同じProductKey、ProductSecret、およびDeviceNameを持つ最大5つの物理デバイスをIoT Platformコンソールでアクティブ化できます。 各デバイスには一意のClientIDとDeviceTokenがあります。 |
|
処理中
次の図は、製品ごとの固有証明書の検証プロセスを示しています。
直接接続されたデバイスの動的登録
直接接続されたデバイスは、事前登録の製品ごとの一意証明書検証または事前登録のない製品ごとの一意証明書検証を使用して動的に登録できます。
事前登録の一意-製品ごとの証明書検証
プロダクトの作成: プロダクトを作成するとき、[ノードタイプ] パラメーターを [直接接続デバイス] に設定します。
動的登録を有効にします。 [プロダクト詳細] ページで、[動的登録] スイッチをオンにします。
IoT Platformは、SMS認証コードを送信してIDを認証します。
説明デバイスがアクティベーションリクエストを開始したときに動的登録が無効になっている場合、IoT Platformはリクエストを拒否します。 すでに有効となっているデバイスは影響を受けません。
デバイスの作成または複数のデバイスを同時に作成します。 登録前の製品ごとの固有証明書検証を使用する場合は、既存の製品に1つ以上のデバイスを追加する必要があります。
IoT Platformは、デバイスがアクティベーション要求を開始すると、
DeviceName
を検証します。 デバイスから取得できる識別子をDeviceNameとして使用することを推奨します。 識別子は、デバイスのMACアドレス、International Mobile Equipment Identity (IMEI) 番号、またはシリアル番号 (SN) とすることができる。デバイスが追加されると、IoT Platformはデバイスに
DeviceSecret
を発行します。 デバイスの初期ステータスはInactiveです。
デバイスにデバイス証明書を書き込む: デバイスSDKを開発して手順を完了します。
デバイスをIoT Platformに接続するために使用されるプロトコルを選択します。 有効な値: MQTTおよびHTTPS。
次のトピックでは、デバイスを登録および検証する方法について説明します。
ビジネス要件に基づいてデバイスSDKを開発します。 たとえば、Thing Specification Language (TSL) モデルで定義されたトピックを使用した通信、カスタムトピックを使用した通信、無線 (OTA) 更新、デバイスシャドウなどの機能を開発できます。
デバイス側の開発の詳細については、「デバイスSDKを使用してデバイスをIoT Platformに接続する」をご参照ください。
重要IoT Platformが提供するLink SDK for Cを使用する場合は、デバイスでLink SDK for C (バージョン4.x) を使用する必要があります。 SDKは、デバイスのセキュリティリスクを管理できるデバイス検証サービス (DAS) を統合しています。
デバイスでバージョン4.xのLink SDK for Cを使用しない場合、発生する可能性のあるセキュリティリスクに対してAlibaba Cloudは責任を負いません。
開発したデバイスSDKを生産ラインのデバイスに書き込みます。
デバイスの電源を入れ、デバイスをIoT Platformに接続します。 デバイスは、
ProductKey
、ProductSecret
、およびDeviceName
を含む検証要求を送信します。IoT Platformでデバイスをアクティブ化します。
IoT Platformがデバイスを検証した後、IoT Platformはステップ3で発行された
DeviceSecret
をデバイスに配信します。 デバイスは、デバイス証明書 (ProductKey
、DeviceName
、およびDeviceSecret
) を取得します。 その後、デバイスは証明書を使用してIoT Platformに接続できます。
製品ごとに固有の証明書を使用しないで事前登録する
プロダクトの作成: プロダクトを作成するとき、[ノードタイプ] パラメーターを [直接接続デバイス] に設定します。
動的登録を有効にします。 既存の製品の [製品の詳細] ページで、[動的登録] をオンにします。
IoT Platformは、SMS認証コードを送信してIDを認証します。
説明デバイスがアクティベーションリクエストを開始したときに動的登録が無効になっている場合、IoT Platformはリクエストを拒否します。 すでに有効となっているデバイスは影響を受けません。
デバイスにデバイス証明書を書き込む: デバイスSDKを開発して手順を完了します。
デバイスをIoT Platformに接続するために使用されるプロトコルを選択します。 有効値: MQTT。
デバイスの登録と検証については、「MQTTベースの動的登録」をご参照ください。
ビジネス要件に基づいてデバイスSDKを開発します。 たとえば、TSLモデルで定義されたトピックを使用した通信、カスタムトピックを使用した通信、OTA更新、デバイスシャドウなどの機能を開発できます。
デバイス側の開発の詳細については、「デバイスSDKを使用してデバイスをIoT Platformに接続する」をご参照ください。
重要IoT Platformが提供するLink SDK for Cを使用する場合は、デバイスでLink SDK for C (バージョン4.x) を使用する必要があります。 このSDKは、デバイスのセキュリティリスクを管理できるDASを統合します。
デバイスでバージョン4.xのLink SDK for Cを使用しない場合、発生する可能性のあるセキュリティリスクに対してAlibaba Cloudは責任を負いません。
開発したデバイスSDKを生産ラインのデバイスに書き込みます。
デバイスの電源を入れ、デバイスをIoT Platformに接続します。 デバイスは、
ProductKey
、ProductSecret
、およびDeviceName
を含む検証要求を送信します。IoT Platformでデバイスをアクティブ化します。
IoT Platformがデバイスを検証した後、IoT Platformは
ClientID
とDeviceToken
をデバイスに発行します。 次に、デバイスはProductKey
、ProductSecret
、ClientID
、およびDeviceToken
を使用してIoT Platformに接続します。DeviceName
は、異なるClientIDを持つ複数の物理デバイスに使用できます。 この場合、IoT Platformコンソールの [製品の詳細] ページに、現在の製品のデバイスに複数のClientIDがあるというメッセージが表示されます。 1つの物理デバイスを保持するか、すべての物理デバイスをクリアするには、次の手順を実行します。[製品の詳細] ページで、メッセージの横にある [表示] をクリックして、製品のセキュリティ侵害されたデバイスを表示します。
を選択します。 表示されるページでデバイスを見つけ、[表示] をクリックして [デバイスの詳細] ページに移動します。 現在の接続のClientID
が表示されます。ClientID
の横にある [スイッチ] または [クリア] をクリックします。切り替え: ドロップダウンリストから
ClientID
を選択します。ClientID
に対応するデバイスの最初の接続時間を確認するか、Log ServiceをクリックしてIoT Platformログを表示し、物理デバイスを保持する必要があるかどうかを確認します。次に、保持する物理デバイスの
ClientID
を選択し、[OK] をクリックします。 他のClientID
を使用する物理デバイスは、IoT Platformに接続できません。説明IoT Platformログの詳細については、「IoT Platformログ」をご参照ください。
クリア: すべての物理デバイスをIoT Platformに接続することはできません。
サブデバイスの動的登録
ゲートウェイの動的登録方法は、直接接続されたデバイスの動的登録方法と同じです。 しかし、ゲートウェイのサブデバイスは、事前登録の製品別固有証明書検証方法を使用することによってのみ動的に登録することができる。 サブデバイスの動的登録を完了するには、次の手順を実行します。
Create a product: ゲートウェイ用のプロダクトとサブデバイス用のプロダクトを作成します。 ゲートウェイのプロダクトを作成するときは、[ノードタイプ] パラメーターを [ゲートウェイデバイス] に設定します。 サブデバイスのプロダクトを作成するときは、[ノードタイプ] パラメーターを [ゲートウェイサブデバイス] に設定します。
動的登録を有効にします。 ゲートウェイとサブデバイスが属する製品の [製品の詳細] ページで、[動的登録] をオンにします。
IoT Platformは、SMS認証コードを送信してIDを認証します。
説明デバイスがアクティベーションリクエストを開始したときに動的登録が無効になっている場合、IoT Platformはリクエストを拒否します。 すでに有効となっているデバイスは影響を受けません。
ゲートウェイとサブデバイスが属するプロダクトに1つ以上のデバイスを追加します。 詳細については、「一度に複数のデバイスを作成する」または「デバイスを作成する」をご参照ください。
IoT Platformは、デバイスがアクティベーション要求を開始すると、
DeviceName
を検証します。 デバイスから取得できる識別子をDeviceNameとして使用することを推奨します。 識別子は、デバイスのMACアドレス、International Mobile Equipment Identity (IMEI) 番号、またはシリアル番号 (SN) とすることができる。デバイスが追加されると、IoT Platformはデバイスに
DeviceSecret
を発行します。 デバイスの初期ステータスはInactiveです。
次の手順を実行して、デバイス証明書をサブデバイスに書き込みます。
ゲートウェイのデバイス証明書とエンドポイントを設定し、ゲートウェイのLink SDKを使用してインスタンスを初期化し、サブデバイスを管理します。 次に、ゲートウェイとサブデバイスの間のトポロジ関係を設定し、サブデバイスを登録します。 詳細については、「MQTTベースの動的登録」および「サブデバイスのMQTTベースの動的登録」をご参照ください。
ゲートウェイとサブデバイス間のトポロジ関係を管理する方法の詳細については、「トポロジ関係の管理」をご参照ください。
ビジネス要件に基づいてデバイスSDKを開発します。 たとえば、ゲートウェイがサブデバイスのメッセージングを実装できるようにする機能を開発できます。
デバイス側の開発の詳細については、「デバイスSDKを使用してデバイスをIoT Platformに接続する」をご参照ください。
ゲートウェイのデバイスSDKとサブデバイスのProductKeyをゲートウェイに書き込み、サブデバイス証明書を生産ラインのサブデバイスに書き込みます。
ゲートウェイとサブデバイスの電源をオンにし、IoT Platformに接続します。 ゲートウェイは、サブデバイスのProductKeyとDeviceNameを含む検証要求をIoT Platformに送信します。
IoT Platformコンソールでゲートウェイとサブデバイスをアクティブ化します。
ゲートウェイを有効化する方法の詳細については、「直接接続されたデバイスの動的登録」をご参照ください。 ゲートウェイを使用してサブデバイスをIoT Platformに接続する方法の詳細については、「サブデバイスの接続または切断」をご参照ください。