共用方式為


Azure 角色型存取控制 (RBAC) 和裝置更新

Device Update 會使用 Azure RBAC 來提供使用者和服務 API 的驗證和授權。 您必須將此資源的存取權授與使用者或應用程式,以便其他使用者和應用程式存取 Device Update。 您也必須設定 Azure Device Update 服務主體的存取權,以成功部署更新和管理您的裝置。

設定存取控制角色

以下是裝置更新支援的角色:

角色名稱 說明
裝置更新管理員 可存取所有 Device Update 資源
設備更新讀取器 可檢視所有更新和部署
裝置內容更新管理員 可檢視、匯入和刪除更新
裝置更新內容閱讀器 可檢視更新
裝置更新部署管理員 可管理裝置更新的部署
Device Update 部署檢視者 可檢視裝置更新的部署

角色組合可用於提供正確的存取層級。 例如:開發人員可使用 Device Update 內容管理員角色匯入和管理更新,但需要 Device Update 部署讀取者角色,才能檢視更新的進度。 反之,具有 Device Update 讀取者角色的解決方案操作員可檢視所有更新,但需要使用 Device Update 部署系統管理員角色,才能將特定更新部署至裝置。

在 IoT 中樞中設定 Azure Device Update 服務主體的存取權

IoT 中樞的裝置更新會與 IoT 中樞進行通訊,以推動部署並大規模管理更新。 若要讓 Device Update 能夠執行此動作,使用者必須在 IoT 中樞權限設定對 Azure Device Update 服務主體的 IoT 中樞資料參與者存取權。

如果未設定下列許可權,即將發行的版本將會封鎖這些動作:

  • 建立佈署
  • 取消部署
  • 重試部署
  • 取得裝置
  1. 移至連線到裝置更新實例的 IoT中樞 。 按兩下 [存取控制][IAM]
  2. 按一下 + 加入 ->新增角色指派
  3. 在 [角色] 索引標籤下,選取 [IoT 中樞數據參與者]
  4. 按一下 [下一步]。 在存取權指派對象,選取使用者、群組或服務主體。 按兩下 [+ 選取成員],搜尋 [Azure 裝置更新]
  5. 下一步 - >檢視和指派

若要驗證您已正確設定權限:

  1. 前往連接到您裝置更新實例的 IoT Hub。 按兩下 [存取控制][IAM]
  2. 按一下 [檢查存取權]
  3. 選取 [使用者、群組或服務主體],然後搜尋 [Azure 裝置更新]
  4. 按兩下 [Azure 裝置更新] 之後,請確認IoT中樞數據參與者角色列在 [角色指派] 底下

驗證以存取設備更新 REST API

裝置更新會使用 Azure Active Directory (AD) 對其 REST API 進行驗證。 開始使用時,必須先建立及設定用戶端應用程式。

建立用戶端 Azure AD 應用程式

若要整合應用程式或服務與 Azure AD,請先 向 Azure AD 註冊用戶端應用程式。 視所需的授權流程 (使用者、應用程式或受控識別),用戶端應用程式安裝會有所不同。 例如,若要從下列來源呼叫 Device Update:

  • 行動或桌面應用程式,新增行動和桌面應用程式平台,並將重新導向 URI 設為 https://login.microsoftonline.com/common/oauth2/nativeclient
  • 採用隱含登錄的網站,新增 Web 平台,並選取 [存取權杖 (用於隱含流程)]

設定許可權

接著,將呼叫 Device Update 的權限新增至應用程式:

  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.PS PowerShell 模組為適用於 .NET 的 Microsoft 驗證程式庫 (MSAL .NET) 包裝函式。 該模組支援各種驗證方法。

使用使用者認證

$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 受管理的身分識別能夠以安全的方式在 Azure AD 中提供自動管理的身分識別服務。 這可消除開發人員必須藉由提供身分識別來管理認證的需求。 IoT 中樞裝置更新支援系統指派的受控識別。

系統指派的管理身份識別

若要在 Azure 入口網站中新增和移除系統指派的受控識別:

  1. 登入 Azure 入口網站,並且瀏覽至您想要的「IoT 中樞裝置更新」帳戶。
  2. 在您的 IoT 中樞裝置更新門戶中,導航至身份識別。
  3. 在您的 IoT Hub 入口網站中,導航至 [身分識別]
  4. 在 [系統指派] 索引標籤下,選取 [開啟],然後按一下 [儲存]。

若要從IoT中樞帳戶的裝置更新中移除系統指派的受控識別,請選取[關閉],然後按兩下 [儲存]。

後續步驟