共用方式為


使用 Microsoft Entra ID (預覽版) 控制對 Azure IoT 中樞裝置佈建服務 (DPS) 的存取權

您可以使用 Microsoft Entra ID 來驗證對 Azure IoT 中樞裝置佈建服務 (DPS) API 的要求,例如建立裝置身分識別和叫用直接方法。 您也可以使用 Azure 角色型存取控制 (Azure RBAC),來為那些相同的服務 API 授權。 這些技術一起使用,可以將存取 Azure IoT 中樞裝置佈建服務 (DPS) API 所需的權限授與 Microsoft Entra 安全性主體。 此安全性主體可以是使用者、群組或應用程式服務主體。

使用 Microsoft Entra ID 驗證存取權和使用 Azure RBAC 控制權限,可提供比安全性權杖更高的安全性且更容易使用。 為了將安全性權杖固有的潛在安全性問題降到最低,建議您盡可能對 Azure IoT 中樞裝置佈建服務 (DPS) 使用 Microsoft Entra ID。

注意

Azure IoT 中樞裝置佈建服務 (DPS)「裝置 API」不支援使用 Microsoft Entra ID 進行驗證 (例如註冊裝置或裝置註冊狀態查閱)。 使用對稱金鑰X.509TPM 向 Azure IoT 中樞裝置佈建服務 (DPS) 驗證裝置。

驗證和授權

當 Microsoft Entra 安全性主體要求存取 Azure IoT 中樞裝置佈建服務 (DPS) API 時,首先會「驗證」主體的身分識別。 若要進行驗證,要求必須在執行階段包含 OAuth 2.0 存取權杖。 要求權杖的資源名稱為 https://azure-devices-provisioning.net。 如果應用程式在 Azure 資源 (例如 Azure VM、Azure Functions 應用程式或 Azure App Service 應用程式) 中執行,則可表示為受控識別

驗證 Microsoft Entra 主體之後,下一個步驟是「授權」。 在此步驟中,Azure IoT 中樞裝置佈建服務 (DPS) 使用 Microsoft Entra 角色指派服務來判斷主體具有的權限。 如果主體的權限符合要求的資源或 API,Azure IoT 中樞裝置佈建服務 (DPS) 就授權要求。 因此,此步驟需要將一或多個 Azure 角色指派給安全性主體。 Azure IoT 中樞裝置佈建服務 (DPS) 提供一些具有常用權限群組的內建角色。

使用 Azure RBAC 角色指派來管理對 Azure IoT 中樞裝置佈建服務 (DPS) 的存取權

使用 Microsoft Entra ID 和 RBAC 時,Azure IoT 中樞裝置佈建服務 (DPS) 規定要求 API 的主體必須具有適當層級的權限,才會授權。 若要為主體提供權限,可為其提供角色指派。

為了確保最低權限,請一律在最低可能的資源範圍內指派適當的角色,可能是 Azure IoT 中樞裝置佈建服務 (DPS) 範圍。

Azure IoT 中樞裝置佈建服務 (DPS) 提供下列 Azure 內建角色,以使用 Microsoft Entra ID 和 RBAC 來授權存取 DPS API:

角色 描述
裝置佈建服務資料參與者 允許完整存取裝置佈建服務資料平面作業。
裝置佈建服務資料讀者 允許完整讀取存取裝置佈建服務資料平面屬性。

您也可以合併所需的權限,以定義要用於 Azure IoT 中樞裝置佈建服務 (DPS) 的自訂角色。 如需詳細資訊,請參閱建立 Azure 角色型存取控制的自訂角色

資源範圍

在將 Azure RBAC 角色指派給安全性主體之前,請先確定安全性主體應具有的存取範圍。 最好一律只授與允許的最小範圍。 在更廣泛的範圍內定義的 Azure RBAC 角色會由其下的資源繼承。

此清單描述您可將對 IoT 中樞的存取權範圍設定在哪些層級 (從最小範圍開始):

  • Azure IoT 中樞裝置佈建服務 (DPS)。 在此範圍內,角色指派套用至 Azure IoT 中樞裝置佈建服務 (DPS)。 不支援較小範圍內的角色指派,例如註冊群組或個別註冊。
  • 資源群組。 在此範圍中,角色指派會套用至該資源群組中的所有 IoT 中樞。
  • 訂用帳戶。 在此範圍中,角色指派會套用至該訂用帳戶內,所有資源群組中的所有 IoT 中樞。
  • 管理群組。 在此範圍中,角色指派會套用至該管理群組中,所有訂用帳戶內所有資源群組中的所有 IoT 中樞。

Azure IoT 中樞裝置佈建服務 (DPS) API 的權限

下表描述 Azure IoT 中樞裝置佈建服務 (DPS) API 作業可用的權限。 若要讓用戶端呼叫特定作業,請確定指派給用戶端的 RBAC 角色可為作業提供足夠的權限。

RBAC 動作 描述
Microsoft.Devices/provisioningServices/attestationmechanism/details/action 擷取證明機制詳細資料
Microsoft.Devices/provisioningServices/enrollmentGroups/read 讀取註冊群組
Microsoft.Devices/provisioningServices/enrollmentGroups/write 寫入註冊群組
Microsoft.Devices/provisioningServices/enrollmentGroups/delete 刪除註冊群組
Microsoft.Devices/provisioningServices/enrollments/read 讀取註冊
Microsoft.Devices/provisioningServices/enrollments/write 寫入註冊
Microsoft.Devices/provisioningServices/enrollments/delete 刪除註冊
Microsoft.Devices/provisioningServices/registrationStates/read 讀取註冊狀態
Microsoft.Devices/provisioningServices/registrationStates/delete 刪除註冊狀態

適用於 Azure CLI 的 Azure IoT 延伸模組

對 Azure IoT 中樞裝置佈建服務 (DPS) 執行的大部分命令都支援 Microsoft Entra 驗證。 您可以使用 --auth-type 參數,來控制用於執行命令的驗證類型,其接受 keylogin 值。 key 值為預設值。

  • --auth-typekey 值時,CLI 在與 Azure IoT 中樞裝置佈建服務 (DPS) 互動時會自動探索適當的原則。

  • --auth-type 具有 login 值時,會針對該作業使用來自已登入主體之 Azure CLI 的存取權杖。

  • 下列命令目前支援 --auth-type

    • az iot dps enrollment
    • az iot dps enrollment-group
    • az iot dps registration

如需詳細資訊,請參閱適用於 Azure CLI 的 Azure IoT 延伸模組發行頁面 (英文)。

SDK 與範例

從 Azure 入口網站存取 Microsoft Entra ID

注意

目前在預覽期間無法從 Azure 入口網站存取 Microsoft Entra ID。

下一步