查看 IoT 中樞安全性概念

已完成

IoT 中樞使用驗證和存取控制權限的組合來協助保護您的 IoT 解決方案。

您有三種不同的方式可控制對 IoT 中樞的存取:

  • 服務 API 的 Azure Active Directory (Azure AD) 整合。 Azure 提供 Azure AD 的身分識別型驗證,以及 Azure 角色型存取控制 (Azure RBAC) 的微調授權。 僅 IoT 中樞服務 API 支援 Azure AD 和 RBAC 整合。
  • 共用存取簽章可讓您將權限分組,並使用存取金鑰和已簽署的安全性權杖授與應用程式。
  • 各裝置的安全性認證。 每個 IoT 中樞都包含身分識別登錄。 對於此身分識別登錄中的每個裝置,您可以設定安全性認證,以裝置端點為範圍來授與 DeviceConnect 權限。

存取控制及權限

使用共用存取原則進行 IoT 中樞層級存取,並使用個別裝置認證將存取範圍僅限於該裝置。

IoT 中樞層級的共用存取原則可以授與上面所列權限的任意組合。 您可以使用 IoT 中樞資源 REST API,或使用 az iot hub policy CLI,以程式設計方式在 Azure 入口網站中定義原則。 新建立的 IoT 中樞有下列預設原則︰

共用的存取原則

權限

iothubowner

所有權限

服務

ServiceConnect 權限

裝置

DeviceConnect 權限

registryRead

RegistryRead 權限

registryReadWrite

RegistryRead 和 RegistryWrite 權限

例如,在典型的 IoT 解決方案中︰

  • 裝置管理元件使用 registryReadWrite 原則。
  • 事件處理器元件使用 service 原則。
  • 執行階段裝置商務邏輯元件使用 service 原則。
  • 個別裝置會使用 IoT 中樞身分識別登錄內儲存的認證進行連接。

驗證

Azure IoT 中樞可根據共用存取原則和身分識別登錄安全性認證驗證權杖,以授與端點的存取權。 請記住,安全性認證 (例如對稱金鑰) 絕對不應該透過網路傳送。

設定 IoT 中樞層級認證的範圍

使用受限制的資源 URI 建立權杖,可以設定 IoT 中樞層級安全性原則的範圍。 例如,要從裝置傳送「裝置到雲端」訊息的端點是 /devices/{deviceId}/messages/events。 您也可以使用 IoT 中樞層級的共用存取原則搭配 DeviceConnect 權限,簽署 resourceURI 為 /devices/{deviceId} 的權杖。 這個做法會建立僅可用來代表裝置 deviceId 傳送訊息的權杖。

安全性權杖

IoT 中樞使用安全性權杖來驗證裝置和服務,以避免透過線路傳送金鑰。 此外,安全性權杖有時效性和範圍的限制。 Azure IoT SDK 能在不需要任何特殊組態的情況下自動產生權杖。 在某些案例中,您必須直接產生及使用安全性權杖。 這類案例包括:

  • MQTT、AMQP 或 HTTPS 介面的直接使用。
  • 權杖服務模式的實作,如自訂裝置驗證中所述。

「IoT 中樞」也可允許裝置使用 X.509 憑證向「IoT 中樞」進行驗證。

支援的 X.509 憑證

您可以使用任何 X.509 憑證來利用 IoT 中樞驗證裝置,只要將憑證指紋或憑證授權單位 (CA) 上傳至 Azure IoT 中樞即可。 使用憑證指紋來進行驗證時,只會驗證提供的憑證指紋與設定的憑證指紋是否相符。 使用憑證授權單位來進行驗證時,則會驗證憑證鏈結。

支援的憑證包含:

  • 現有的 X.509 憑證。 裝置可能已經有與其關聯的 X.509 憑證。 裝置可以使用此憑證向「IoT 中樞」進行驗證。 適用於指紋或 CA 驗證。
  • CA 簽署的 X.509 憑證。 若要識別裝置並向 IoT 中樞驗證它,您可以使用「憑證授權單位」(CA) 所產生和簽署的 X.509 憑證。 適用於指紋或 CA 驗證。
  • 自我產生及自我簽署的 X-509 憑證。 裝置製造商或公司內部的部署人員可以產生這些憑證,並將對應的私密金鑰 (和憑證) 存放在裝置上。 您可以使用 OpenSSL \(英文\) 和 Windows SelfSignedCertificate 公用程式之類的工具來達到此目的。 只適用於指紋驗證。

裝置可以使用 X.509 憑證或安全性權杖來進行驗證,但不可同時使用兩者。