Microsoft 365

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 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

取得 Tenant ID

登入後,在搜尋列搜尋 Microsoft Entra ID,進入管理頁面。

  1. 進入 Microsoft Entra ID。
  2. 停留在 Overview。
  3. 找到 Directory (tenant) ID。
  4. 複製這組 GUID。
  5. 貼到系統的 Tenant ID 欄位。

不要複製錯欄位:Tenant ID 不是 Tenant name,也不是 Primary domain。通常是一組類似 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的 GUID。

Step 3:建立 App Registration

建立 App Registration

接著建立一個專門提供給系統串接使用的 Microsoft Entra 應用程式。

  1. 進入 App registrations。
  2. 點選 New registration。
  3. 在 Name 輸入容易辨識的名稱,例如「永福順工程打卡系統」。
  4. 若只提供自己公司租戶使用,Supported account types 建議選目前組織目錄的 Single tenant 選項。
  5. Redirect URI 若此串接不使用互動式登入,可以先留空。
  6. 按下 Register。

如果這個 App 是專門提供自己的 Microsoft 365 租戶使用,Single tenant 通常比 Multitenant 更符合此類企業內部系統情境。若你的系統本身是提供多家公司使用的 SaaS,則應另外確認系統的租戶與 OAuth 架構,不能直接套用本篇設定。

Step 4:取得 Client ID

取得 Client ID

建立完成後,系統會進入 App 的 Overview。

  1. 找到 Application (client) ID。
  2. 複製這組 GUID。
  3. 貼到系統的 Client ID 欄位。

注意:同一頁還可能看到 Object ID 與 Directory (tenant) ID。系統要求 Client ID 時,請複製 Application (client) ID,不要誤貼 Object ID。

Step 5:建立 Client Secret

建立 Client Secret

Client Secret 是應用程式用來證明身分的機密憑證之一。它不是使用者的 Microsoft 365 密碼,也不應由前端程式直接保存或傳送。

  1. 左側選單進入 Certificates & secrets。
  2. 選擇 Client secrets。
  3. 點選 New client secret。
  4. 輸入 Description,例如「Cloud Storage Integration」。
  5. 選擇適合的 Expires 到期時間。
  6. 按下 Add。
  7. 立即複製 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 權限

加入 Microsoft Graph Files.ReadWrite.All 權限

接著要讓這個 App 有權限透過 Microsoft Graph 存取 Microsoft 365 的檔案資源。

  1. 左側選單進入 API permissions。
  2. 點選 Add a permission。
  3. 選擇 Microsoft Graph。
  4. 選擇 Application permissions。
  5. 搜尋 Files.ReadWrite.All。
  6. 勾選 Files.ReadWrite.All。
  7. 點選 Add permissions。
  8. 回到列表,點選 Grant admin consent for <你的租戶名稱>。
  9. 確認 Status 顯示已授權。

權限風險提醒:Files.ReadWrite.All 的 Application permission 權限範圍很大,可以讓 App 在沒有使用者登入的情況下讀取、建立、更新與刪除所有 site collections 中的檔案,而且需要管理員同意。

因此,如果實際需求只需要操作特定 SharePoint Site、單一資料夾或登入使用者本身可存取的檔案,應重新評估能否使用權限範圍更小的 Microsoft Graph 授權方式,不建議單純為了設定方便就授予過大的權限。

Step 7:使用 Graph Explorer 取得 Drive ID

使用 Graph Explorer 取得 Drive ID

接著取得真正要存放檔案的 Drive ID。Microsoft Graph 中的 Drive 是 OneDrive 或 SharePoint 文件庫的頂層容器。

  1. 前往 Microsoft Graph Explorer。
  2. 使用與目標 OneDrive 相同的 Microsoft 365 工作或學校帳號登入。
  3. Request method 選擇 GET。
  4. 輸入 https://graph.microsoft.com/v1.0/me/drive。
  5. 執行查詢。
  6. 若成功,Response 會回傳 Drive 物件。
  7. 在 Response JSON 找到最外層的 "id"。
  8. 複製該值,貼到系統的 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。

官方文件

重要提醒:Microsoft Entra、Azure Portal、Microsoft Graph、Graph Explorer、API 權限名稱與管理介面可能隨官方更新調整。本文依撰文時 Microsoft 官方文件整理,實際設定前請再次確認權限需求與企業資安政策。請以官方文件為準。

Microsoft OneDrive 雲端儲存空間設定教學:Step by Step 取得 四個串接參數

有 AI 或系統整合的問題?

讓我們直接幫您評估方案,比自己摸索更快。