Microsoft OneDrive 雲端儲存空間設定教學:Step by Step 取得 四個串接參數
Microsoft 365 雲端儲存空間怎麼設定?本篇從 Microsoft Entra ID App Registration 開始,Step by Step 帶你取得 Tenant ID、Client ID、Client Secret 與 Drive ID,設定 Microsoft Graph Files.ReadWrite.All 權限、完成管理員同意,最後測試 OneDrive 雲端儲存連線。
Microsoft OneDrive 雲端儲存空間設定教學:Step by Step 取得 Tenant ID、Client ID、Client Secret 與 Drive ID
如果系統需要串接企業的 Microsoft 365 雲端儲存空間,通常必須先在企業自己的 Microsoft Entra ID 租戶建立 App Registration,取得 Tenant ID、Client ID、Client Secret、Drive ID 四組資料,再授權 Microsoft Graph 存取 OneDrive 或 SharePoint 檔案。本篇以初學者角度逐步說明從建立應用程式、設定權限,到使用 Graph Explorer 取得 Drive ID 的完整流程。
開始前先確認:這篇教學適用哪一種帳號?
本教學針對企業或學校的 Microsoft 365/Microsoft Entra ID 租戶,建議使用具有足夠管理權限的工作或學校帳號操作。本文會建立 App Registration、Client Secret,並授予 Microsoft Graph 的 Application permission,因此部分步驟需要租戶管理員權限。
個人 Outlook.com、Hotmail.com 或 Live.com 帳號:Microsoft Graph 的部分 delegated 功能本身支援個人 Microsoft 帳號,但本文這套「企業租戶自行建立 App Registration、使用 Application permissions、由管理員 Grant admin consent」的串接方式以 Microsoft Entra 組織租戶為前提,因此不建議使用個人帳號照本文設定。
完成後你會取得四組資料
- Tenant ID:Microsoft Entra 租戶識別碼,介面通常標示為 Directory (tenant) ID。
- Client ID:App Registration 的 Application (client) ID。
- Client Secret:在 Certificates & secrets 建立的 secret Value。
- Drive ID:Microsoft Graph 用來識別 OneDrive 或 SharePoint Drive 的唯一識別碼。
其中 Client Secret 屬於機密資訊,不應公開放在前端 JavaScript、公開 Git Repository、聊天群組或可被一般使用者讀取的位置。
Step 1:登入 Azure Portal/Microsoft Entra

前往 Azure Portal,使用公司的 Microsoft 365 工作或學校帳號登入。
Microsoft 已將 Azure Active Directory 更名為 Microsoft Entra ID。因此舊教學中的「Azure AD」、「Azure Active Directory」,在目前介面通常會看到「Microsoft Entra ID」或「Entra ID」。
如果帳號可以登入,但看不到 App registrations、API permissions 或 Grant admin consent 等功能,通常不是網址錯誤,而是目前帳號在租戶中的權限不足。
Step 2:取得 Tenant ID

登入後,在搜尋列搜尋 Microsoft Entra ID,進入管理頁面。
- 進入 Microsoft Entra ID。
- 停留在 Overview。
- 找到 Directory (tenant) ID。
- 複製這組 GUID。
- 貼到系統的 Tenant ID 欄位。
不要複製錯欄位:Tenant ID 不是 Tenant name,也不是 Primary domain。通常是一組類似 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的 GUID。
Step 3:建立 App Registration

接著建立一個專門提供給系統串接使用的 Microsoft Entra 應用程式。
- 進入 App registrations。
- 點選 New registration。
- 在 Name 輸入容易辨識的名稱,例如「永福順工程打卡系統」。
- 若只提供自己公司租戶使用,Supported account types 建議選目前組織目錄的 Single tenant 選項。
- Redirect URI 若此串接不使用互動式登入,可以先留空。
- 按下 Register。
如果這個 App 是專門提供自己的 Microsoft 365 租戶使用,Single tenant 通常比 Multitenant 更符合此類企業內部系統情境。若你的系統本身是提供多家公司使用的 SaaS,則應另外確認系統的租戶與 OAuth 架構,不能直接套用本篇設定。
Step 4:取得 Client ID

建立完成後,系統會進入 App 的 Overview。
- 找到 Application (client) ID。
- 複製這組 GUID。
- 貼到系統的 Client ID 欄位。
注意:同一頁還可能看到 Object ID 與 Directory (tenant) ID。系統要求 Client ID 時,請複製 Application (client) ID,不要誤貼 Object ID。
Step 5:建立 Client Secret

Client Secret 是應用程式用來證明身分的機密憑證之一。它不是使用者的 Microsoft 365 密碼,也不應由前端程式直接保存或傳送。
- 左側選單進入 Certificates & secrets。
- 選擇 Client secrets。
- 點選 New client secret。
- 輸入 Description,例如「Cloud Storage Integration」。
- 選擇適合的 Expires 到期時間。
- 按下 Add。
- 立即複製 Value 欄位,貼到系統的 Client Secret。
這一步非常重要:要複製的是 Value,不是 Secret ID。Microsoft Entra 只會在建立當下顯示 Client Secret 的 Value;離開頁面後無法再次查看。如果遺失,只能建立新的 Client Secret。
安全建議:Microsoft 官方目前建議正式 Production 工作負載優先考慮 certificate 或 federated credential。若既有系統只能使用 Client Secret,至少應設定合理有效期限、保存於後端安全儲存區,並建立到期前輪替機制。
Step 6:加入 Microsoft Graph Files.ReadWrite.All 權限

接著要讓這個 App 有權限透過 Microsoft Graph 存取 Microsoft 365 的檔案資源。
- 左側選單進入 API permissions。
- 點選 Add a permission。
- 選擇 Microsoft Graph。
- 選擇 Application permissions。
- 搜尋
Files.ReadWrite.All。 - 勾選 Files.ReadWrite.All。
- 點選 Add permissions。
- 回到列表,點選 Grant admin consent for <你的租戶名稱>。
- 確認 Status 顯示已授權。
權限風險提醒:Files.ReadWrite.All 的 Application permission 權限範圍很大,可以讓 App 在沒有使用者登入的情況下讀取、建立、更新與刪除所有 site collections 中的檔案,而且需要管理員同意。
因此,如果實際需求只需要操作特定 SharePoint Site、單一資料夾或登入使用者本身可存取的檔案,應重新評估能否使用權限範圍更小的 Microsoft Graph 授權方式,不建議單純為了設定方便就授予過大的權限。
Step 7:使用 Graph Explorer 取得 Drive ID

接著取得真正要存放檔案的 Drive ID。Microsoft Graph 中的 Drive 是 OneDrive 或 SharePoint 文件庫的頂層容器。
- 前往 Microsoft Graph Explorer。
- 使用與目標 OneDrive 相同的 Microsoft 365 工作或學校帳號登入。
- Request method 選擇 GET。
- 輸入
https://graph.microsoft.com/v1.0/me/drive。 - 執行查詢。
- 若成功,Response 會回傳 Drive 物件。
- 在 Response JSON 找到最外層的
"id"。 - 複製該值,貼到系統的 Drive ID。
回傳資料可能類似:
{
"id": "b!xxxxxxxxxxxxxxxxxxxxxxxx",
"driveType": "business",
"owner": {
"user": {
"displayName": "Example User"
}
}
}這裡需要貼到系統的是最外層的 id,不要誤貼 owner.user.id、User ID 或其他識別碼。
特別注意:/me/drive 代表「目前登入 Graph Explorer 使用者的預設 OneDrive」,它使用 delegated authentication。若系統實際要存到另一位使用者的 OneDrive、SharePoint Site 或 Teams 文件庫,Drive ID 的取得方式不同,不能直接使用這一步得到的值。
Step 8:測試連線後再儲存
現在應該已經取得以下四組資料:
- Tenant ID
- Client ID
- Client Secret
- Drive ID
全部貼入系統後,建議先按 測試連線,確認後端可以成功取得 Microsoft Graph Access Token,並且能存取指定 Drive,再按下 儲存。
不要只以「表單可以儲存」作為成功判斷。真正的驗證標準應是後端完成 Microsoft Entra 驗證,並實際成功呼叫 Microsoft Graph。
如何確認設定成功?
- Tenant ID、Client ID、Client Secret 可以成功取得 Access Token。
- Microsoft Graph Application permission 已完成 Admin consent。
- Drive ID 指向正確的 OneDrive 或文件庫。
- 系統可以實際完成所需的檔案讀取、建立或寫入操作。
常見錯誤與排查方式
錯誤一:找不到 App registrations
常見原因是登入錯租戶、帳號不是組織帳號,或目前帳號權限不足。
排查方式:確認目前 Directory/Tenant 是否正確,並請 Microsoft 365/Entra 管理員確認帳號是否具備建立 App Registration 的權限。
錯誤二:Client ID 貼成 Object ID
Overview 會同時出現 Application (client) ID、Object ID 與 Directory (tenant) ID。
排查方式:Client ID 必須使用 Application (client) ID;Tenant ID 使用 Directory (tenant) ID。
錯誤三:Client Secret 無效
常見原因是把 Secret ID 當成 Client Secret、Secret 已過期,或建立後沒有立即保存 Value。
排查方式:確認填入的是建立 Client Secret 時顯示的 Value。若已離開頁面且沒有保存 Value,請重新建立新的 Client Secret。
錯誤四:Files.ReadWrite.All 已加入但仍顯示權限不足
加入 Permission 不等於已完成租戶層級授權。
排查方式:回到 API permissions,確認 Files.ReadWrite.All 是 Application 類型,且 Status 已顯示管理員同意。
錯誤五:Graph Explorer 的 /me/drive 出現 401、403 或 Consent 提示
Graph Explorer 使用目前登入使用者的 delegated 權限呼叫 Microsoft Graph,與 App Registration 的 Application permission 是不同授權情境。
排查方式:確認 Graph Explorer 已使用正確 Microsoft 365 帳號登入,並依畫面授予查詢 /me/drive 所需權限。Graph Explorer 查詢成功,不代表 Client Secret 一定正確。
錯誤六:Drive ID 正確,但找不到預期資料夾
/me/drive 只代表目前登入使用者的預設 OneDrive,不等於所有 SharePoint 或 Teams 文件庫。
排查方式:先確認資料實際要存到哪一個 OneDrive、SharePoint Site 或 Teams 文件庫,再使用對應的 Microsoft Graph endpoint 找到正確 Drive ID。
錯誤七:原本可以連線,幾個月後突然失敗
Client Secret 有有效期限,到期後 Client Credentials 驗證會失敗。
排查方式:進入 Certificates & secrets 檢查 Expiration date。建議在到期前建立新 Secret、更新系統並測試成功,再移除舊 Secret。
初學者最容易混淆的五個欄位
- Tenant ID=Directory (tenant) ID。
- Client ID=Application (client) ID。
- Client Secret=Client Secret 的 Value,不是 Secret ID。
- Drive ID=Microsoft Graph Drive resource 的 id,不是 User ID。
- Files.ReadWrite.All 要分清楚 Delegated 與 Application;本文流程使用的是 Application permission。
官方文件
- Azure Portal
- Microsoft Entra admin center
- Microsoft Learn:Register an application in Microsoft Entra ID
- Microsoft Learn:Add and manage app credentials
- Microsoft Graph permissions reference
- Microsoft Graph:Get Drive
- Microsoft Graph Explorer
重要提醒:Microsoft Entra、Azure Portal、Microsoft Graph、Graph Explorer、API 權限名稱與管理介面可能隨官方更新調整。本文依撰文時 Microsoft 官方文件整理,實際設定前請再次確認權限需求與企業資安政策。請以官方文件為準。

