共用方式為


適用於 IoT 中樞的 Azure RBAC 和 Azure 裝置更新

若要讓使用者和應用程式存取 azure Device Update for IoT 中樞,必須將裝置更新資源的存取權授與它們。 裝置更新服務主體也必須取得其相關聯IoT中樞的存取權,才能部署更新和管理裝置。

本文說明裝置更新和 Azure IoT 中樞 如何使用 Azure 角色型存取控制 (Azure RBAC) 來提供使用者和服務 API 的驗證和授權。 本文也會說明Microsoft Device Update REST API 的 Entra ID 驗證,以及裝置更新和 Azure IoT 中樞 中的受控識別支援。

裝置更新訪問控制角色

裝置更新支援下列 RBAC 角色。 如需詳細資訊,請參閱 設定裝置更新帳戶的訪問控制。

角色名稱 描述
Device Update 系統管理員 可存取所有 Device Update 資源
Device Update 讀取者 可檢視所有更新和部署
Device Update 內容管理員 可檢視、匯入和刪除更新
Device Update 內容讀取者 可檢視更新
Device Update 部署管理員 可以管理裝置更新的部署
Device Update 部署讀取者 可檢視裝置更新的部署

您可以指派角色的組合,以提供正確的存取層級。 例如,您可以使用裝置更新內容管理員角色來匯入和管理更新,但您需要裝置更新部署讀取者角色來檢視更新的進度。 相反地,使用裝置更新讀取者角色,您可以檢視所有更新,但您需要裝置更新部署系統管理員角色,才能將更新部署至裝置。

裝置更新服務主體存取 IoT 中樞

裝置更新會與其相關聯的IoT中樞通訊,以大規模部署和管理更新。 若要啟用此通訊,您必須使用 IoT 中樞 數據參與者角色,將裝置更新服務主體存取權授與 IoT 中樞。

授與此許可權可允許下列部署、裝置和更新管理,以及診斷動作:

  • 建立部署
  • 取消部署
  • 重試部署
  • 取得裝置

您可以從 IoT 中樞 存取控制 (IAM) 頁面設定此許可權。 如需詳細資訊,請參閱 設定裝置更新服務主體的IoT中樞存取權。

裝置更新 REST API

裝置更新會使用 Microsoft Entra ID 對其 REST API 進行驗證。 開始使用時,必須先建立及設定用戶端應用程式。

建立用戶端Microsoft Entra 應用程式

若要整合 Microsoft Entra ID 與應用程式或服務,開發人員須先向 Microsoft Entra ID 註冊應用程式。 用戶端應用程式設定會視您需要的授權流程而有所不同:使用者、應用程式或受控識別。 例如:

  • 若要從行動裝置或傳統型應用程式呼叫裝置更新,請在 [選取平臺] 中選取 [公用用戶端/原生 ] [行動裝置和桌面],然後輸入 https://login.microsoftonline.com/common/oauth2/nativeclient [重新導向 URI]。

  • 若要從具有隱含登錄的網站呼叫裝置更新,請使用 Web 平臺。 在 [隱含授與和混合式流程] 下,選取 [存取令牌] [用於隱含流程]。

    注意

    使用最安全的驗證流程。 隱含流程驗證在應用程式中需要高度信任,而且具有在其他流程中不存在的風險。 只有當其他更安全的流程,例如受控識別無法運作時,才應該使用此流程。

設定權限

接下來,將許可權授與您的應用程式以呼叫裝置更新。

  1. 移至應用程式的 [API 權限] 頁面,並選取 [新增權限]
  2. 移至 [我的組織所使用的 API],並搜尋 Azure Device Update
  3. 選取 user_impersonation 權限,並選取 [新增權限]

要求授權權杖

Device Update REST API 需要在要求標頭中包含 OAuth 2.0 授權權杖。 下列各節顯示一些要求授權令牌方式的範例。

Azure CLI

az login
az account get-access-token --resource 'https://api.adu.microsoft.com/'

PowerShell MSAL 連結庫

MSAL.PSPowerShell 模組是支援各種驗證方法之適用於 .NET 的Microsoft驗證連結庫的包裝函式

  • 使用者認證:

    $clientId = '<app_id>'
    $tenantId = '<tenant_id>'
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/user_impersonation'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope
    
  • 具有裝置程式代碼的使用者認證:

    $clientId = '<app_id>’
    $tenantId = '<tenant_id>’
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/user_impersonation'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope -Interactive -DeviceCode
    
  • 應用程式認證:

    $clientId = '<app_id>’
    $tenantId = '<tenant_id>’
    $cert = '<client_certificate>'
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/.default'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope -ClientCertificate $cert
    

支援受控識別

受控識別為 Azure 服務提供安全、自動受控Microsoft Entra ID 身分識別。 受控識別不需要開發人員藉由提供身分識別來管理認證。 裝置更新支持系統指派的受控識別。

若要為裝置更新新增系統指派的受控識別:

  1. 在 Azure 入口網站 中,移至您的裝置更新帳戶。
  2. 在左側導覽中,選取 [設定>身分識別]。
  3. [身分識別] 頁面上指派的系統下,將 [狀態] 設定為 [開啟]。
  4. 選取 [ 儲存],然後選取 [ ]。

若要為 IoT 中樞 新增系統指派的受控識別:

  1. 在 Azure 入口網站中,移至您的 IoT 中樞。
  2. 在左側導覽中,選取 [安全性設定>身分識別]。
  3. [身分識別] 頁面上的[系統指派] 下,選取 [狀態] 下的 [開啟]。
  4. 選取 [ 儲存],然後選取 [ ]。

若要從裝置更新帳戶或 IoT 中樞移除系統指派的受控識別,請在 [身分識別] 頁面上設定或選取 [關閉],然後選取 [儲存]。