Azure 角色型存取控制 (RBAC) 和 Device Update
Device Update 會使用 Azure RBAC 來提供使用者和服務 API 的驗證和授權。 您必須將此資源的存取權授與使用者或應用程式,以便其他使用者和應用程式存取 Device Update。 您也必須設定 Azure Device Update 服務主體的存取權,以成功部署更新和管理您的裝置。
設定存取控制角色
以下是裝置更新支援的角色:
角色名稱 | 描述 |
---|---|
Device Update 系統管理員 | 可存取所有 Device Update 資源 |
Device Update 讀取者 | 可檢視所有更新和部署 |
Device Update 內容管理員 | 可檢視、匯入和刪除更新 |
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 中樞資料參與者存取權。
若未設定這些權限,將不允許部署、裝置和更新管理及診斷動作。 將封鎖的作業包括:
- 建立部署
- 取消部署
- 重試部署
- 取得裝置
權限可以從 IoT 中樞存取控制 (IAM) 設定。 請參閱在連結的 IoT 中樞設定對 Azure Device Update 服務主體的存取權
驗證 Device Update REST API
裝置更新會使用 Microsoft Entra ID 對其 REST API 進行驗證。 開始使用時,必須先建立及設定用戶端應用程式。
建立用戶端 Microsoft Entra 應用程式
若要整合 Microsoft Entra ID 與應用程式或服務,開發人員須先向 Microsoft Entra ID 註冊應用程式。 視所需的授權流程 (使用者、應用程式或受控識別),用戶端應用程式安裝會有所不同。 例如,若要從下列來源呼叫 Device Update:
- 行動或桌面應用程式,新增行動和桌面應用程式平台,且重新導向 URI 使用
https://login.microsoftonline.com/common/oauth2/nativeclient
。 - 採用隱含登錄的網站,新增 Web 平台,並選取 [存取權杖 (用於隱含流程)]。
注意
Microsoft 建議您使用最安全的可用驗證流程。 隱含流程驗證在應用程式中需要非常高的信任度,而且具有在其他流程中不存在的風險。 請僅在其他較安全的流程 (例如受控身分識別) 皆不具可行性的情況下,才使用這個流程。
設定權限
接著,將呼叫 Device Update 的權限新增至應用程式:
- 移至應用程式的 [API 權限] 頁面,並選取 [新增權限]。
- 移至 [我的組織所使用的 API],並搜尋 Azure Device Update。
- 選取 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
支援受控識別
受控識別在 Microsoft Entra ID 中以安全的方式為 Azure 服務提供自動受控的身分識別。 這可消除開發人員必須藉由提供身分識別來管理認證的需求。 IoT 中樞裝置更新支援系統指派的受控識別。
系統指派的受控識別
若要在 Azure 入口網站中新增和移除系統指派的受控識別:
- 登入 Azure 入口網站,並且瀏覽至您想要的「IoT 中樞裝置更新」帳戶。
- 在 IoT 中樞裝置更新入口網站中,瀏覽至身分識別
- 在 IoT 中樞入口網站中,巡覽至 [身分識別]
- 在 [系統指派] 索引標籤下,選取 [開啟],然後按一下 [儲存]。
若要從「IoT 中樞裝置更新」帳戶移除系統指派的受控識別,請選取 [關閉],然後按一下 [儲存]。