你可以限制 OneDrive 連線只能存取特定檔案嗎?我不需要連線存取我 OneDrive 中的所有檔案,只需要特定資料夾

我想知道是否可以創建一個 OneDrive 連線,該連線不會授予對 OneDrive 上所有檔案的完整存取權限。我有一些檔案包含敏感內容,我不希望 n8n 存取它們。有沒有辦法創建一個連線,使其不會獲得對 OneDrive 資料夾的完整存取權,而只能存取其中的特定部分?

關於你的 n8n 設定的資訊

  • n8n 版本: 1.123.48
  • 作業系統:Windows 11

如果您使用的是個人 Microsoft 帳戶,OneDrive 支援一個特殊的 Files.ReadWrite.AppFolder 權限範圍。這會在您的 OneDrive 內建立一個專用且隔離的資料夾(通常位於 OneDrive/Apps/n8n)。n8n 只能夠查看和與該特定資料夾內的檔案互動。資料夾外的任何內容對整合完全不可見。

若要設定此項,您無法使用 n8n 的預設一鍵式驗證。您必須建立自己的自訂應用程式註冊:

前往 Microsoft Entra 系統管理中心(或 Azure 入口網站)並註冊新應用程式。

在「API 權限」→「Microsoft Graph」→「委派的權限」下,尋找 Files.ReadWrite.AppFolder 並勾選它。

確保未選取 Files.ReadWrite 或 Files.ReadWrite.All 之類的更廣泛權限。

複製您的用戶端識別碼和用戶端密碼。

在 n8n 中,建立新的 Microsoft OneDrive OAuth2 API 認證,將驗證類型切換為「自己/自訂」,並輸入您的用戶端識別碼和密碼。

當您授權時,Microsoft 只會授予對該單一沙箱應用程式資料夾的存取權。

希望這對您有幫助。

@pnanos
在 n8n 中,不是直接使用 OneDrive 的預設認證;它會獲得在 Microsoft Graph 中授予應用程式的權限,因此若要限制對特定資料夾的存取,您通常需要使用專屬帳戶、單獨的共用磁碟機或註冊您自己的 Azure 應用程式並設定更嚴格的權限。

@pnanos

最簡單的解決方法是為 n8n 建立第二個獨立的 Microsoft 帳戶。與其將 n8n 連線到你的主帳戶,不如將它連線到這個新帳戶。然後你進入主帳戶,並只與第二個帳戶「分享」你想讓 n8n 使用的特定資料夾。這樣就能建立一道數位防護牆,讓你的機密檔案對 n8n 完全隱藏。

值得注意的一點:Files.ReadWrite.AppFolder 僅適用於個人 Microsoft 帳戶(Outlook.com/Hotmail)。如果你使用工作或學校的 Microsoft 365 帳戶,該權限範圍不可用。對於商務帳戶,最佳做法是採用專用 SharePoint 網站方法 - 建立一個獨立網站,將應用程式註冊範圍限制在該網站資源,然後將 n8n 指向該 SharePoint URL,而不是主要 OneDrive。這樣可以達到相同的資料夾隔離效果。

謝謝,我試試看!