Outlook 節點 - 自訂範圍

描述問題/錯誤/問題

我想將 Outlook 連接器部署到我的組織,但不希望使用者有發送電子郵件的能力。不過,當您嘗試連接 Outlook 憑證時,它要求應用程式上的 Mail.Send 權限必須是有效的。我假設這是因為範圍被硬編碼到憑證配置中。

有沒有辦法在不需要應用程式註冊上具有 Mail.Send 能力的情況下使用 Outlook 連接器?

錯誤訊息是什麼(如果有的話)?

沒有錯誤訊息

您的 n8n 設定相關資訊

  • n8n 版本: 目前不知道,目前不在現場無法取得存取權限(抱歉)
  • 資料庫(預設:SQLite): SQLite
  • n8n EXECUTIONS_PROCESS 設定(預設:own、main): 預設
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式): docker
  • 作業系統: Linux

@Freddyg303 是,內建的 Outlook 憑證會將 Mail.Send 硬編碼到範圍中,節點端沒有辦法移除它。解決方法是跳過 Outlook 節點,改用 HTTP Request 搭配通用 OAuth2 API 憑證,這樣你就可以只定義你想要的範圍。

憑證設定:

  • 新增憑證,類型:OAuth2 API
  • 授予類型:Authorization Code
  • 授權 URL:Sign in to your account
  • 存取權杖 URL:Sign in to your account
  • 範圍:openid offline_access Mail.Read(選擇你實際需要的)
  • 來自你的應用程式註冊的 Client ID/Secret

然後直接呼叫 MS Graph:

使用者現在只會同意你列出的內容,完全不會看到 Mail.Send 的提示。把 URL 替換成你需要的任何操作(在 Graph API 的 /me/messages 下可以進行列表/讀取/移動/刪除等所有操作)

嗨 @Freddyg303

要在沒有 Mail.Send 權限的情況下使用 Outlook,請按照以下兩個步驟操作:

1)使用通用認證:建立「Microsoft OAuth2 API」認證,而不是 Outlook 專用認證。這樣可以解鎖「作用域」欄位,讓你手動輸入只需要的權限(如 Mail.Read),同時省略 Mail.Send。
2)使用 HTTP 請求節點:由於內建的 Outlook 節點需要鎖定的認證,請使用 HTTP 請求節點來與 Microsoft Graph API 互動。將驗證設定為你的新通用 Microsoft 認證以執行任務。