証明書管理は、Azure Device Registry (ADR) のオプション機能であり、IoT デバイスの X.509 証明書を発行および管理できます。 オンプレミスのサーバー、コネクタ、またはハードウェアを必要とせずに、ADR 名前空間ごとに専用のクラウドベースの公開キー 基盤 (PKI) を構成します。 これは、その ADR 名前空間にプロビジョニングされているすべての IoT デバイスの発行と更新の証明書を管理します。 これらの X.509 証明書は、IoT デバイスで IoT Hub で認証するために使用できます。
証明書管理を使用するには、IoT Hub、 Azure Device Registry (ADR)、 Device Provisioning Service (DPS) も使用する必要があります。 証明書の管理は現在、パブリック プレビュー段階です。
Important
ADR 統合と Microsoft がサポートする X.509 証明書管理を備えた Azure IoT Hub は パブリック プレビュー 段階であり、運用環境のワークロードには推奨されません。 詳細については、「 FAQ: IoT Hub の新機能」を参照してください。
機能の概要
プレビュー段階の IoT Hub デバイスの証明書管理では、次の機能がサポートされています。
| 特徴 | Description |
|---|---|
| ADR 名前空間に複数の証明機関 (CA) を作成する | クラウドでルートと発行元 CA を使用して 2 層 PKI 階層を作成します。 |
| ADR 名前空間ごとに一意のルート証明機関 (CA) を作成する | ADR 名前空間に最大 1 つのルート CA (資格情報とも呼ばれます) を作成する |
| ポリシーごとに最大 1 つの発行元 CA を作成する | ADR 名前空間に最大 1 つの発行元 CA (ポリシーとも呼ばれます) を作成し、発行された証明書の有効期間をカスタマイズします。 |
| 署名と暗号化アルゴリズム | 証明書管理では、ECC (ECDSA) と曲線 NIST P-384 がサポートされます |
| ハッシュ アルゴリズム | 証明書管理では SHA-384 がサポートされます |
| HSM キー (署名と暗号化) | キーは、 Azure マネージド ハードウェア セキュリティ モジュール (Azure Managed HSM) を使用してプロビジョニングされます。 ADR 名前空間内に作成された CA では、HSM 署名キーと暗号化キーが自動的に使用されます。 Azure HSM には Azure サブスクリプションは必要ありません。 |
| エンド エンティティ証明書の発行と更新 | リーフ証明書またはデバイス証明書とも呼ばれるエンド エンティティ証明書は、発行元 CA によって署名され、デバイスに配信されます。 リーフ証明書は、発行元 CA によって更新することもできます。 |
| リーフ証明書の大規模なプロビジョニング | ADR 名前空間で定義されているポリシーは、証明書のプロビジョニング時に使用される Device Provisioning Service 登録に直接リンクされます。 |
| CA 証明書と IoT Hubs の同期 | ADR 名前空間で定義されているポリシーは、適切な IoT Hub に同期されます。 これにより、IoT Hub はエンド エンティティ証明書を使用して認証されるすべてのデバイスを信頼できるようになります。 |
導入資格情報対運用資格情報
現在、証明書管理では、エンド エンティティ の運用証明書の発行と更新がサポートされています。
オンボード資格情報: 証明書管理を使用するには、Device Provisioning Service (DPS) を使用してデバイスをプロビジョニングする必要があります。 デバイスが DPS を使用してプロビジョニングするには、サポートされている種類の オンボード資格情報 (X.509 証明書 (サード パーティ CA から調達)、対称キー、トラステッド プラットフォーム モジュール (TPM) を含む) のいずれかを使用してオンボードと認証を行う必要があります。 これらの資格情報は、通常、出荷前にデバイスにインストールされます。
運用証明書: エンド エンティティの運用証明書は、運用資格情報の一種です。 この証明書は、デバイスが DPS によってプロビジョニングされると、発行元 CA によってデバイスに発行されます。 オンボーディング資格情報とは異なり、通常、これらの証明書は短命であり、頻繁にまたはデバイスの操作中に必要に応じて更新されます。 デバイスは、操作証明書チェーンを使用して IoT Hub で直接認証し、一般的な操作を実行できます。 現在、証明書管理では運用証明書のみが提供されています。
証明書管理のしくみ
証明書管理は、IoT デバイス間での公開キー 基盤 (PKI) の展開を効率化するために連携する複数の統合コンポーネントで構成されています。 証明書管理を使用するには、次の設定を行う必要があります。
- IoT Hub (プレビュー)
- Azure Device Registry (ADR) 名前空間
- Device Provisioning Service (DPS) インスタンス
IoT Hub (プレビュー) 統合
ADR 名前空間にリンクされている IoT Hub は、証明書管理機能を利用できます。 CA 証明書を ADR 名前空間からすべての IoT Hub に同期して、各 IoT Hub が発行された証明書チェーンとの接続を試みるすべての IoT デバイスを認証できるようにします。
Azure Device Registry の統合
証明書管理では、 Azure Device Registry (ADR) を使用して CA 証明書を管理します。 IoT Hub と Device Provisioning Service (DPS) と統合され、デバイス ID と CA 証明書を管理するためのシームレスなエクスペリエンスが提供されます。
次の図は、ADR 名前空間を介して Azure IoT Hub で IoT デバイスを認証するために使用される X.509 証明書階層を示しています。
- 証明書管理が有効になっている各 ADR 名前空間には、Microsoft によって管理される一意の資格情報 (ルート CA) があります。 この資格情報は、チェーン内の最上位の証明機関を表します。
- ADR 名前空間内の各ポリシーは、ルート CA によって署名された 1 つの発行元 CA (ICA) を定義します。 各ポリシーは、その CA 証明書を名前空間にリンクされたハブとのみ共有できます。 また、各ポリシーは、その名前空間内に登録されているデバイスにのみリーフ証明書を発行できます。 発行された証明書の有効期間は、ポリシーごとに構成できます。 最小有効期間は 1 日で、最大有効期間は 90 日です。
- 資格情報とポリシーを作成したら、これらの CA 証明書を IoT Hub と直接同期できます。 これで、IoT Hub は、この証明書チェーンを提示するデバイスを認証できるようになります。
Device Provisioning Service の統合
デバイスがリーフ証明書を受信するには、 Device Provisioning Service (DPS) を使用してデバイスをプロビジョニングする必要があります。 以下の定義を含む 、個人またはグループの登録を構成する必要があります。
- その登録のための特定の種類の導入資格情報。 サポートされている方法は、トラステッド プラットフォーム モジュール (TPM)、対称キー、または X.509 証明書です。
- ADR 名前空間内に作成された特定のポリシー。 このポリシーは、この登録によってプロビジョニングされたデバイスにリーフ証明書の署名と発行を行います。
Device Provisioning Service がプロビジョニング中に 証明書署名要求 (CSR) を受け入れるようになりました。 CSR は DPS と PKI に送信され、要求が検証され、適切な発行元 CA (ICA) に転送され、署名された X.509 証明書が発行されます。
現在、証明書管理では、プロビジョニング中に HTTP と MQTT のプロトコルがサポートされています。 DPS 証明書署名要求の詳細については、 DPS デバイス SDK のサンプルをいくつか確認してください。
注
PKI は ADR 名前空間ごとに構成されていますが、外部の Azure リソースとして公開されません。
証明書管理を使用したエンド ツー エンドのデバイス プロビジョニング (ランタイム エクスペリエンス)
次の図は、証明書管理を使用したデバイス プロビジョニングのエンド ツー エンドプロセスを示しています。
- IoT デバイスは DPS エンドポイントに接続し、事前に構成されたオンボード資格情報を使用してサービスで認証します。 この登録呼び出しの一環として、デバイスは証明書署名要求 (CSR) を送信します。 CSR には、公開キーやその他の識別の詳細など、デバイスに関する情報が含まれています。
- DPS は、DPS 登録のリンクされたハブに基づいて IoT デバイスを IoT Hub に割り当てます。
- デバイス ID は IoT Hub に作成され、適切な ADR 名前空間に登録されます。
- DPS は CSR を使用して PKI に運用証明書を要求します。 PKI は CSR を検証し、DPS 登録にリンクされているポリシー (発行元 CA) に転送します。
- ポリシーは、運用証明書に署名し、それを発行します。
- DPS は、運用証明書と IoT Hub 接続の詳細をデバイスに送信します。
- これで、デバイスは、完全な発行証明書チェーンを IoT Hub に送信することで、IoT Hub で認証できるようになりました。
リーフ証明書の更新
エンド エンティティ リーフ証明書は、初回証明書発行と同じメカニズムを使用して更新できます。 デバイスは、運用証明書を更新する必要が検出されたら、DPS への別の登録呼び出しを開始し、新しい証明書署名要求 (CSR) を送信する必要があります。 ここでも、CSR は適切な発行元証明機関 (ICA) に送信され、更新されたリーフ証明書を要求します。 承認されると、更新された運用証明書がデバイスに返され、セキュリティで保護された通信に使用されます。
各デバイスは、運用証明書の有効期限を監視し、必要に応じて証明書の更新を開始する必要があります。 ベスト プラクティスとして、通信が中断されないように、有効期限の前に証明書を更新することをお勧めします。 運用証明書には Valid from と Valid until の日付が含まれており、更新が必要なタイミングをデバイスが監視して判断できます。 このプレビュー期間中は、デバイスが証明書の発行日と証明書の有効期限を報告するために 、デバイス ツインの報告されたプロパティ を使用することをお勧めします。 これらのプロパティは、ダッシュボードの構築などの監視に使用できます。
デバイスを無効にする
証明書の管理では、パブリック プレビュー中の証明書の失効はサポートされません。 X.509 操作証明書を使用するデバイスの接続を削除するには、IoT Hub でデバイスを無効にします。 デバイスを無効にするには、「デバイスの 無効化または削除」を参照してください。
制限とクォータ
IoT Hub での証明書管理 の制限と クォータについては、Azure サブスクリプションとサービスの制限に関するページを参照してください。