描述問題/錯誤/問題
從 Microsoft 切換到 Nextcloud 後,我們嘗試使用 n8n 設定工作流程,以將 Outlook/Teams 日曆與我們的 Nextcloud 日曆(特色應用程式)同步,但遇到以下問題:
要從我們的 Nextcloud 日曆讀取事件和寫入事件,我們知道的唯一選項是使用具有基本身份驗證的 http 請求,這似乎不太實用,因為它需要收集每個使用者的登入憑據。
有人知道有什麼方法可以規避此問題嗎?例如具有其他使用者日曆讀取/寫入權限的管理員使用者?
敬禮,
Frederic
錯誤訊息是什麼(如有的話)?
請分享您的工作流程
(選擇畫布上的節點,使用鍵盤快捷鍵 CMD+C/CTRL+C 和 CMD+V/CTRL+V 來複製和貼上工作流程。)
分享最後一個節點傳回的輸出
關於您的 n8n 設定的資訊
- n8n 版本:
- 資料庫(預設值:SQLite):
- n8n EXECUTIONS_PROCESS 設定(預設值:own, main):
- 透過以下方式執行 n8n(Docker、npm、n8n cloud、桌面應用程式):
- 作業系統:
嗨 @FredericDomke 歡迎!
這裡有兩個獨立的要點。首先,CalDAV 的基本身份驗證並不意味著收集任何人的真實登入密碼:Nextcloud 應用密碼是按使用者、按裝置的令牌,在「個人設定」>「安全性」>「裝置和工作階段」下建立,它們完全像普通 CalDAV 用戶端一樣透過基本身份驗證進行身份驗證。它們可以單獨撤銷,永遠不會洩露帳戶密碼,所以這是你已經在做的事情的安全形式。日曆端點是 DAV 路徑,而不是 Nextcloud 節點(它僅涵蓋檔案和使用者):https://your-nextcloud/remote.php/dav/calendars///
其次,沒有內建的管理員憑證可以透明地讀取和寫入每個使用者的個人日曆。從單一憑證執行此操作的支援方法是將日曆共用到服務帳戶:
- 建立一個專用的 Nextcloud 使用者,例如 n8n-sync。
- 讓每個使用者與 n8n-sync 共用他們的日曆,並勾選「可編輯」(或將要同步的日曆移至服務帳戶擁有的共用/群組日曆)。
- 為 n8n-sync 產生一個應用密碼。
- 在 n8n 中,使用單一 HTTP 要求憑證(基本身份驗證、使用者 n8n-sync 及該應用密碼),並針對讀取 (REPORT/PROPFIND) 和寫入 (PUT) 均點擊 /remote.php/dav/calendars/n8n-sync//。
這為你提供了一個涵蓋每個共用日曆的憑證,無需收集任何按使用者的密碼。