Microsoft 圖形 API 現已支援 Microsoft Intune,並具備特定的 API 與權限角色。 Microsoft 圖形 API 使用 Microsoft Entra ID 進行認證與存取控制。 在 Microsoft Graph 中存取 Intune API 需要:
應用程式識別碼為:
- 請求呼叫 Microsoft Entra ID 及 Microsoft Graph API 的權限。
- 權限範圍與特定應用程式任務相關。
使用者憑證如下:
- 存取與該應用程式相關的 Microsoft Entra 租戶的權限。
- 支援應用程式權限範圍所需的角色權限。
最終使用者授權應用程式執行 Azure 租戶的應用程式任務。
本文內容:
說明如何註冊一個擁有 Microsoft 圖形 API 及相關權限角色權限的應用程式。
描述 Intune API 權限角色。
提供 C# 與 PowerShell 的 Intune API 認證範例。
說明如何支援多個租戶。
若要深入了解,請參閱:
- 授權使用 OAuth 2.0 及 Microsoft Entra ID 存取網頁應用程式
- 如何開始使用 Microsoft Entra 認證
- 將應用程式整合至 Microsoft Entra ID
- 了解 OAuth 2.0
註冊應用程式以使用 Microsoft 圖形 API
要註冊應用程式以使用 Microsoft 圖形 API:
使用管理員憑證登入 Microsoft Entra 系統管理中心。
視情況,您可以使用:
- 租戶管理員帳號。
- 租戶使用者帳號中啟用了「 使用者可以註冊應用程式 」設定。
在管理中心,展開「身份>申請」,然後選擇「應用程式註冊」。
選擇 新註冊 以建立新應用程式,或選擇現有應用程式。 (如果你選擇現有的應用程式,可以跳過下一步 )
在 「註冊應用程式 」面板中,請指定以下內容:
使用者登入時 (顯示應用程式 名稱) 。
支援帳號類型。
一個 重定向的 URI 值。 此值為選用。
注意事項
Azure AD 圖形 API 目前正處於退役階段。 欲了解更多資訊,請參閱更新您的應用程式以使用 Microsoft 認證函式庫 (MSAL) 和 Microsoft 圖形 API。
欲了解更多,請參閱 Microsoft Entra ID 的認證情境。
選擇 註冊 以新增您的申請。
選擇 註冊即表示您同意 Microsoft 平台政策。
來自你申請表的畫面:
請注意 應用程式 (客戶端) ID 值。
接著,從導覽選單中選擇 API 權限。
來自 API 權限 面板:
選擇 「新增權限」,然後在 Microsoft APIs 標籤中選擇 Microsoft 圖形 圖塊。
選擇 應用程式權限 選項以顯示所有可用權限,然後選擇應用程式所需的權限類型。
請在相關名稱左側勾選所需角色。 欲了解特定的 Intune 權限範圍,請參閱 Intune 權限範圍。 欲了解其他圖形 API 權限範圍,請參閱 Microsoft Graph 權限參考。
為了達到最佳效果,選擇實施應用所需的最少角色。
資料倉儲與報告權限
當你透過 Microsoft Entra 系統管理中心新增應用程式時,可以根據應用程式的需求選擇 Intune API 權限。
- get_data_warehouse - 使用此 API 權限授權 Microsoft Intune Intune 資料倉儲 API 的存取權。 欲了解更多資訊,請參閱使用Microsoft Intune Data Warehouse。
合作夥伴解決方案 API
透過 Microsoft Entra 系統管理中心新增應用程式時,可取得以下 Intune API 權限:
- get_device_compliance - 此 API 權限用於從 Microsoft Intune 取得裝置狀態與合規資訊。 此 API 權限由網路存取控制夥伴使用。 欲了解更多資訊,請參閱與 Intune 的網路存取控制整合。
- manage_partner_compliance_policy - 此 API 權限用於管理合作夥伴與 Microsoft Intune 的合規政策。 此 API 權限允許應用程式在未登入使用者的情況下,將合作夥伴合規政策及其 Microsoft Entra 群組指派傳送給 Microsoft Intune。 它被裝置合規夥伴使用。 欲了解更多資訊,請參閱 第三方裝置合規合作夥伴。
- pfx_cert_provider - 此 API 權限用於向 Intune 發送特定使用者的 PFX 憑證。 Intune 會將憑證傳送給使用者註冊的所有裝置。 欲了解更多資訊,請參閱 PFX 匯入 Powershell。
- scep_challenge_provider - 此 API 權限用於將 SCEP 挑戰傳送給 Intune 以進行憑證請求驗證。 它被認證機構合作夥伴使用。 欲了解更多資訊,請參閱 合作夥伴認證機構。
- update_device_attributes - 此 API 權限用於向裝置合規及行動威脅防禦夥伴的 Intune 傳送裝置資訊。 欲了解更多資訊,請參閱與 Intune 及第三方裝置合規合作夥伴的行動威脅防禦整合。
- update_device_health - 此 API 權限用於向行動威脅防禦夥伴的Intune傳送裝置健康與威脅狀態資訊。 欲了解更多資訊,請參閱與 Intune 的行動威脅防禦整合。
如果您是合作夥伴,有興趣利用這些 API 權限與 Intune 整合,請聯繫 Microsoft 智慧安全協會團隊以獲取相關資訊。
完成後,選擇 新增權限 以儲存你的變更。
此時,你也可以:
選擇授權所有租戶帳號使用該應用程式,但不提供憑證。
你可以授權並接受確認提示。
當你第一次執行應用程式時,系統會提示你授權應用程式執行所選角色。
讓應用程式對租戶以外的使用者開放。 (這通常只適用於支援多個租戶或組織的合作夥伴 )
若要這麼做︰
從申請面板選擇 「清單 」。
將設定值
availableToOtherTenants改為true。儲存變更。
應用程式列表
如果您在使用 圖形 API 請求應用程式列表時收到大量資料,可能會遇到 503 服務不可用錯誤。 我們建議您再試一次,使用較小的頁面大小,例如20個或更少的元素。
Intune 權限範圍
Microsoft Entra ID 與 Microsoft Graph 使用權限範圍來控制企業資源的存取。
權限範圍 (也稱為 OAuth 範圍) 控制對特定Intune實體及其屬性的存取。 本節總結 Intune API 功能的權限範圍。
若要深入了解:
當你授予 Microsoft Graph 權限時,可以指定以下範圍來控制 Intune 功能的存取權限:下表總結了 Intune API 的權限範圍。 第一欄顯示 Microsoft Intune 管理中心中顯示的功能名稱,第二欄則提供權限範圍名稱。
| 啟用存取 設定 | 範圍名稱 |
|---|---|
| 對 Microsoft Intune 裝置執行影響使用者的遠端操作 | 裝置管理管理裝置。特權操作。全部 |
| 讀取與寫入 Microsoft Intune 裝置 | DeviceManagementManagedDevices.ReadWrite.All |
| 閱讀 Microsoft Intune 裝置 | DeviceManagementManagedDevices.Read.All |
| 讀取與寫入 Microsoft Intune RBAC 設定 | 裝置管理RBAC.讀寫.All |
| 閱讀 Microsoft Intune RBAC 設定 | 裝置管理RBAC.閱讀。全部 |
| 閱讀 Microsoft Intune 腳本 | 裝置管理腳本。全部讀取 |
| 閱讀與撰寫 Microsoft Intune 腳本 | 裝置管理腳本。ReadWrite.All |
| 閱讀與撰寫 Microsoft Intune 應用程式 | 裝置管理應用程式.ReadWrite.All |
| 閱讀 Microsoft Intune 應用程式 | 裝置管理應用程式。全部閱讀 |
| 讀取與寫入 Microsoft Intune 裝置設定與政策 | DeviceManagementConfiguration.ReadWrite.All |
| 閱讀 Microsoft Intune 裝置設定與政策 | DeviceManagementConfiguration.Read.All |
| 讀取與寫入 Microsoft Intune 設定 | DeviceManagementServiceConfig.ReadWrite.All |
| Read Microsoft Intune 配置 | DeviceManagementServiceConfig.Read.All |
表格列出了 Microsoft Intune 管理中心中顯示的設定。 以下章節依字母順序介紹這些範圍。
目前所有 Intune 權限範圍都需要管理員存取權限。 這表示在執行存取 Intune API 資源的應用程式或腳本時,你需要相應的憑證。
裝置管理應用程式。全部閱讀
啟用存取設定:閱讀 Microsoft Intune 應用程式
許可證可閱讀以下實體財產及狀態:
- 用戶端應用程式
- 行動應用程式分類
- 應用程式保護政策
- 應用程式設定
裝置管理應用程式.ReadWrite.All
啟用存取設定:讀取與寫入 Microsoft Intune 應用程式
允許與 DeviceManagementApps.Read.All 相同的操作
同時允許對下列實體進行變更:
- 用戶端應用程式
- 行動應用程式分類
- 應用程式保護政策
- 應用程式設定
DeviceManagementConfiguration.Read.All
啟用存取設定:閱讀 Microsoft Intune 裝置設定與政策
許可證可閱讀以下實體財產及狀態:
- 裝置設定
- 裝置合規政策
- 通知訊息
注意事項
自 2025 年 7 月 31 日起,Microsoft Graph 將以下 API 呼叫的 DeviceManagementConfiguration.Read.All 權限替換為 DeviceManagementScripts.ReadWrite.All 權限:
- ~/deviceManagement/deviceShellScripts
- ~/deviceManagement/deviceHealthScripts
- ~/deviceManagement/deviceComplianceScripts
- ~/deviceManagement/deviceCustomAttributeShellScripts
- ~/deviceManagement/deviceManagementScripts
DeviceManagementConfiguration.ReadWrite.All
啟用存取設定:讀取與寫入 Microsoft Intune 裝置設定與政策
允許與 DeviceManagementConfiguration.Read.All 相同的操作
應用程式也能建立、指派、刪除及變更以下實體:
- 裝置設定
- 裝置合規政策
- 通知訊息
注意事項
自 2025 年 7 月 31 日起,Microsoft Graph 將以下 API 呼叫的 DeviceManagementConfiguration.ReadWrite.All 權限替換為 DeviceManagementScripts.ReadWrite.All 權限:
- ~/deviceManagement/deviceShellScripts
- ~/deviceManagement/deviceHealthScripts
- ~/deviceManagement/deviceComplianceScripts
- ~/deviceManagement/deviceCustomAttributeShellScripts
- ~/deviceManagement/deviceManagementScripts
裝置管理管理裝置。特權操作。全部
啟用存取設定:對 Microsoft Intune 裝置執行影響使用者的遠端操作
允許對受管理裝置進行以下遠端操作:
- 淘汰
- 擦去
- 重設/恢復密碼
- 遠端鎖定
- 啟用/停用遺失模式
- 清理電腦
- 重新開機
- 從共享裝置刪除使用者
DeviceManagementManagedDevices.Read.All
啟用存取設定:Read Microsoft Intune 裝置
許可證可閱讀以下實體財產及狀態:
- 管理裝置
- 裝置類別
- 偵測到的應用程式
- 遠端動作
- 惡意軟體資訊
DeviceManagementManagedDevices.ReadWrite.All
啟用存取設定:讀寫 Microsoft Intune 裝置
允許與 DeviceManagementManagedDevices.Read.All 相同的操作
應用程式也能建立、刪除及更改以下實體:
- 管理裝置
- 裝置類別
以下遠端操作也被允許:
- 定位裝置
- 停用啟用鎖定
- 請求遠端協助
裝置管理RBAC.閱讀。全部
啟用存取設定:閱讀 Microsoft Intune RBAC 設定
許可證可閱讀以下實體財產及狀態:
- 角色分配
- 角色定義
- 資源作業
裝置管理RBAC.讀寫.All
啟用存取設定:讀取與寫入 Microsoft Intune RBAC 設定
允許與 DeviceManagementRBAC.Read.All 相同的操作
應用程式也能建立、指派、刪除及變更以下實體:
- 角色分配
- 角色定義
裝置管理腳本。全部讀取
啟用存取設定:Read Microsoft Intune 腳本
應用程式可以查看 (閱讀腳本,具體來說) :
- 裝置殼腳本
- 裝置健康腳本
- 裝置合規腳本
- 裝置自訂屬性殼腳本
- 裝置管理腳本
裝置管理腳本。ReadWrite.All
啟用存取設定:讀取與寫入 Microsoft Intune 腳本
允許與 DeviceManagementScripts.Read.All 相同的操作應用程式可以建立、更新或刪除腳本,具體來說:
- 裝置殼腳本
- 裝置健康腳本
- 裝置合規腳本
- 裝置自訂屬性殼腳本
- 裝置管理腳本
DeviceManagementServiceConfig.Read.All
啟用存取設定:Read Microsoft Intune 配置
許可證可閱讀以下實體財產及狀態:
- 裝置註冊
- Apple 推播通知憑證
- 蘋果裝置註冊計畫
- 蘋果量購計畫
- 交換連接器
- 條款與條件
- 雲端PKI
- 品牌
- 行動威脅防禦應用程式
DeviceManagementServiceConfig.ReadWrite.All
啟用存取設定:讀寫 Microsoft Intune 設定
允許與DeviceManagementServiceConfig.Read.All_相同的操作
應用程式也可以設定以下 Intune 功能:
- 裝置註冊
- Apple 推播通知憑證
- 蘋果裝置註冊計畫
- 蘋果量購計畫
- 交換連接器
- 條款與條件
- 雲端PKI
- 品牌
- 行動威脅防禦應用程式
Microsoft Entra 認證範例
本節說明如何將 Microsoft Entra ID 整合到你的 C# 和 PowerShell 專案中。
在每個範例中,你都需要指定一個至少擁有 DeviceManagementManagedDevices.Read.All) 前述權限範圍 (應用程式 ID。
在測試任一範例時,你可能會收到 HTTP 狀態 403 (禁止) 錯誤,類似以下情況:
{
"error": {
"code": "Forbidden",
"message": "Application is not authorized to perform this operation - Operation ID " +
"(for customer support): 00000000-0000-0000-0000-000000000000 - " +
"Activity ID: cc7fa3b3-bb25-420b-bfb2-1498e598ba43 - " +
"Url: https://example.manage.microsoft.com/" +
"Service/Resource/RESTendpoint?" +
"api-version=2017-03-06 - CustomApiErrorPhrase: ",
"innerError": {
"request-id": "00000000-0000-0000-0000-000000000000",
"date": "1980-01-0112:00:00"
}
}
}
如果發生這種情況,請確認:
你已經更新了應用程式 ID 為授權使用 Microsoft 圖形 API 的 ID 及
DeviceManagementManagedDevices.Read.All權限範圍。你的租戶憑證支援行政功能。
你的程式碼和顯示的範例很相似。
Authenticate Microsoft Entra ID in C#
這個範例展示了如何使用 C# 來取得與你 Intune 帳號相關聯的裝置清單。
注意事項
Azure AD 圖形 API 目前正處於退役階段。 欲了解更多資訊,請參閱更新您的應用程式以使用 Microsoft 認證函式庫 (MSAL) 和 Microsoft 圖形 API。
啟動 Visual Studio,然後建立一個新的 Visual C# Console 應用程式 (.NET Framework) 專案。
請輸入專案名稱並依需求提供其他細節。
請使用方案總管將 Microsoft MSAL NuGet 套件加入專案:
- 右鍵點擊方案總管。
- 選擇 管理 NuGet 套件...>瀏覽一下。
- 選擇
Microsoft.Identity.Client並選擇 安裝。
請在 Program.cs頂部加上以下陳述:
using Microsoft.Identity.Client; using System.Net.Http;新增建立授權標頭的方法:
private static async Task<string> GetAuthorizationHeader() { string applicationId = "<Your Application ID>"; string authority = "https://login.microsoftonline.com/common/"; Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob"); AuthenticationContext context = new AuthenticationContext(authority); AuthenticationResult result = await context.AcquireTokenAsync( "https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto)); return result.CreateAuthorizationHeader();記得將 的
application_ID值調整為至少獲得DeviceManagementManagedDevices.Read.All權限範圍的 ,如前所述。新增一個方法來檢索裝置清單:
private static async Task<string> GetMyManagedDevices() { string authHeader = await GetAuthorizationHeader(); HttpClient graphClient = new HttpClient(); graphClient.DefaultRequestHeaders.Add("Authorization", authHeader); return await graphClient.GetStringAsync( "https://graph.microsoft.com/beta/me/managedDevices"); }更新 主伺服器 以呼叫 GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);編譯並執行你的程式。
當你第一次執行程式時,應該會收到兩個提示。 第一個會要求你的憑證,第二個則是授權該 managedDevices 請求。
供參考,這是完成的程式:
using Microsoft.Identity.Client;
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace IntuneGraphExample
{
class Program
{
static void Main(string[] args)
{
string devices = GetMyManagedDevices().GetAwaiter().GetResult();
Console.WriteLine(devices);
}
private static async Task<string> GetAuthorizationHeader()
{
string applicationId = "<Your Application ID>";
string authority = "https://login.microsoftonline.com/common/";
Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
AuthenticationContext context = new AuthenticationContext(authority);
AuthenticationResult result = await context.AcquireTokenAsync("https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
return result.CreateAuthorizationHeader();
}
private static async Task<string> GetMyManagedDevices()
{
string authHeader = await GetAuthorizationHeader();
HttpClient graphClient = new HttpClient();
graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
return await graphClient.GetStringAsync("https://graph.microsoft.com/beta/me/managedDevices");
}
}
}
使用 Microsoft Graph PowerShell 認證 Microsoft Entra ID
PowerShell 腳本可以使用 Microsoft Graph PowerShell 模組進行認證。 欲了解更多,請參閱 Microsoft Graph PowerShell 與 Intune PowerShell 範例。
支援多個租戶與合作夥伴
如果您的組織支援擁有自有 Microsoft Entra 租戶的組織,您可能希望允許客戶在各自租戶中使用您的應用程式。
若要這麼做︰
確認客戶端帳號是否存在於目標的 Microsoft Entra 租戶中。
確認你的租戶帳號是否允許使用者註冊應用程式 (查看 使用者設定) 。
建立每位租戶之間的關係。
要做到,可以:
a. 使用 Microsoft 合作夥伴中心 ,定義與客戶及其電子郵件地址的關係。
b. 邀請使用者成為你租戶的訪客。
要邀請使用者成為你的租戶的訪客:
從快速任務面板中選擇新增訪客使用者。
輸入客戶的電子郵件地址, (可選擇性地) 邀請函中加入個人化訊息。
選擇 邀請。
這會向使用者發送邀請。
使用者需要選擇「 開始使用 」連結才能接受邀請。
當關係建立 (或邀請被接受後,) 將使用者帳號加入 目錄角色。
記得視需要將使用者加入其他角色。 例如,要讓使用者管理 Intune 設定,他們至少需要具備 Intune 服務管理員資格。
另外:
請使用https://admin.microsoft.com來為你的使用者帳號指派 Intune 授權。
更新應用程式碼,讓其認證到客戶端的 Microsoft Entra 租戶網域,而非你自己的。
舉例來說,假設你的租戶網域是
contosopartner.onmicrosoft.com,而你客戶的租戶網域是northwind.onmicrosoft.com,你會更新你的程式碼,讓它認證給客戶的租戶。根據前面的例子,在 C# 應用程式中要這麼做,你需要改變變數的
authority值:string authority = "https://login.microsoftonline.com/common/";這一行變更為
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";