Hướng dẫn bật API Microsoft 365 (Microsoft Graph) và kết nối với n8n trên VibeHost

Nguyen Thai Trong 28/10/2026 9 phút đọc

 

Bài viết hướng dẫn cách bật quyền truy cập API Microsoft 365 (thông qua Microsoft Graph) và kết nối vào n8n được khởi tạo từ VibeHost. Sau khi hoàn tất, bạn có thể xây dựng workflow tự động với Outlook (Mail, Calendar, Contacts), OneDrive, Excel, Teams, SharePoint, Planner và To Do.

1. Điều kiện cần chuẩn bị

  • Tài khoản Microsoft 365 doanh nghiệp có vai trò Global Administrator hoặc Cloud Application Administrator / Application Administrator để đăng ký ứng dụng và cấp quyền (admin consent) cho toàn tổ chức.
  • Tài khoản người dùng sẽ kết nối với n8n phải được gán giấy phép (license) có các dịch vụ cần dùng: Exchange Online (Outlook), OneDrive, SharePoint, Teams, Planner…
  • n8n đã triển khai trên VibeHost, truy cập được qua tên miền có HTTPS, ví dụ https://ten-mien-n8n-cua-ban.
  • Đường dẫn callback OAuth của n8n có dạng: https://ten-mien-n8n-cua-ban/rest/oauth2-credential/callback. Bạn có thể sao chép chính xác đường dẫn này trong màn hình tạo credential của n8n (mục OAuth Redirect URL).

2. Các quyền Microsoft Graph cần bật theo dịch vụ

Tất cả quyền dưới đây là loại Delegated permissions (n8n thao tác thay mặt người dùng đã đăng nhập):

Dịch vụ Quyền (Delegated)
Bắt buộc cho mọi kết nối openid, offline_access, User.Read
Outlook – Mail Mail.ReadWrite, Mail.ReadWrite.Shared, Mail.Send, Mail.Send.Shared, Mail.ReadBasic.Shared, MailboxSettings.Read
Outlook – Calendar, Contacts Calendars.Read, Calendars.Read.Shared, Calendars.ReadWrite, Contacts.Read, Contacts.ReadWrite
OneDrive + Excel Files.ReadWrite.All
Teams User.Read.All, Group.Read.All, Group.ReadWrite.All, Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, ChannelMessage.ReadWrite, ChannelMessage.Send, Chat.ReadWrite, OnlineMeetings.ReadWrite
SharePoint Sites.ReadWrite.All
Planner, To Do Tasks.ReadWrite (Planner dùng thêm Group.Read.All / Group.ReadWrite.All)

Lưu ý: chỉ nên bật những quyền mà workflow thật sự sử dụng. Các quyền có cột Admin consent required = Yes bắt buộc phải được quản trị viên cấp quyền.

3. Đăng ký ứng dụng trên Microsoft Entra ID

Bước 1: Mở App registrations

Truy cập Microsoft Entra admin center bằng tài khoản quản trị, vào Entra ID → App registrations, chọn New registration.

Mở App registrations và chọn New registration

Bước 2: Khai báo thông tin ứng dụng

  • Name: đặt tên dễ nhận biết, ví dụ n8n-integration.
  • Supported account types: chọn Any Entra ID Tenant + Personal Microsoft accounts (hoặc Multiple Entra ID tenants). n8n mặc định dùng endpoint /common của Microsoft nên cần chọn loại đa tổ chức.
  • Redirect URI: chọn nền tảng Web và dán đường dẫn https://ten-mien-n8n-cua-ban/rest/oauth2-credential/callback.
  • Bấm Register.

Khai báo tên, loại tài khoản và Redirect URI

Nếu chọn Single tenant only, bạn phải sửa Authorization URL và Access Token URL trong credential n8n, thay common bằng Directory (tenant) ID; nếu không sẽ gặp lỗi AADSTS50194.

Bước 3: Lấy Application (client) ID

Tại trang Overview của ứng dụng, sao chép giá trị Application (client) ID để dán vào n8n ở bước 7.

Sao chép Application (client) ID

Bước 4: Tạo Client Secret

Chọn Certificates & secrets → Client secrets → New client secret.

Vào Certificates & secrets, chọn New client secret

Nhập mô tả (ví dụ n8n-vibehost), chọn thời hạn rồi bấm Add.

Nhập mô tả, chọn thời hạn và bấm Add

Ngay sau khi tạo, sao chép giá trị ở cột Value. Giá trị này chỉ hiển thị một lần; nếu rời trang bạn phải tạo secret mới. Lưu ý không dùng nhầm cột Secret ID.

Sao chép giá trị cột Value

Hãy ghi lại ngày hết hạn của secret. Khi secret hết hạn, các workflow sẽ ngừng kết nối và bạn cần tạo secret mới rồi cập nhật lại credential trong n8n.

Bước 5: Thêm quyền Microsoft Graph

Chọn API permissions → Add a permission.

Mở API permissions và chọn Add a permission

Chọn Microsoft Graph.

Chọn Microsoft Graph

Chọn Delegated permissions, gõ tên từng quyền ở ô tìm kiếm (theo bảng ở mục 2), tích chọn rồi bấm Add permissions. Bạn có thể tìm và tích nhiều quyền liên tiếp trước khi bấm Add permissions.

Chọn Delegated permissions, tìm và tích quyền, bấm Add permissions

Bước 6: Cấp quyền cho toàn tổ chức (Grant admin consent)

Quay lại danh sách quyền, bấm Grant admin consent for <tên tổ chức> và xác nhận Yes.

Xác nhận Grant admin consent

Khi thành công, cột Status của tất cả quyền chuyển sang dấu tích xanh Granted for ….

Cấp quyền thành công

Quan trọng: Ứng dụng đa tổ chức chưa xác minh nhà phát hành (verified publisher) thì người dùng thường không tự cấp quyền được. Vì vậy bước Grant admin consent là bắt buộc, nếu không khi kết nối từ n8n sẽ gặp màn hình Need admin approval. Mỗi lần thêm quyền mới, bạn cần bấm Grant admin consent lại.

4. Tạo credential Microsoft trong n8n

Bước 7: Khai báo credential

Đăng nhập n8n, vào Overview → Credentials → Create credential.

Mở Credentials và chọn Create credential

Gõ tên dịch vụ và chọn loại credential phù hợp, ví dụ Microsoft Outlook OAuth2 API, rồi bấm Continue.

Chọn loại credential Microsoft Outlook OAuth2 API

Kiểm tra OAuth Redirect URL trùng với Redirect URI đã khai báo ở bước 2. Dán Application (client) ID vào ô Client ID.

Kiểm tra Redirect URL và dán Client ID

Giữ Authentication = Client Secret, dán giá trị Value đã sao chép ở bước 4 vào ô Client Secret, giữ Microsoft Graph API Base URL = Global rồi bấm Save.

Dán Client Secret và bấm Save

Bước 8: Kết nối tài khoản

  1. Sau khi lưu, bấm Connect my account (hoặc Sign in with Microsoft).
  2. Cửa sổ đăng nhập Microsoft hiện ra: đăng nhập bằng tài khoản Microsoft 365 cần kết nối.
  3. Xem danh sách quyền và bấm Accept.
  4. n8n hiển thị Account connected là thành công.

5. Sử dụng cho các dịch vụ Microsoft 365 khác

Dùng chung Client ID và Client Secret của ứng dụng ở trên, tạo thêm credential cho từng node:

Node n8n Loại credential Ghi chú
Microsoft Outlook, Outlook Trigger Microsoft Outlook OAuth2 API Bật Use Shared Mailbox nếu cần thao tác hộp thư dùng chung.
Microsoft Excel 365 Microsoft Excel OAuth2 API Làm việc với file Excel trên OneDrive.
Microsoft OneDrive Microsoft Drive OAuth2 API
Microsoft Teams, Teams Trigger Microsoft Teams OAuth2 API n8n bản mới có thể yêu cầu thêm quyền (ví dụ TeamworkTag.Read, TeamsActivity.Send). Nếu kết nối báo thiếu quyền, hãy thêm quyền đó vào app và Grant admin consent lại, hoặc bật Custom Scopes để chỉ yêu cầu các quyền đã cấp.
Microsoft SharePoint (v2), Excel (SharePoint) Microsoft OAuth2 API Scope: openid offline_access Sites.ReadWrite.All
Microsoft To Do Microsoft To Do OAuth2 API
Planner (qua node HTTP Request) Microsoft OAuth2 API Scope: openid offline_access Tasks.ReadWrite Group.Read.All; gọi API https://graph.microsoft.com/v1.0/planner/...

6. Ví dụ workflow mẫu

Ghi nhận email đơn hàng vào Excel và báo lên Teams:

  1. Microsoft Outlook Trigger: kích hoạt khi có email mới trong thư mục “Đơn hàng”.
  2. Microsoft Excel 365: thêm một dòng (Append) gồm người gửi, tiêu đề, thời gian vào bảng theo dõi trên OneDrive.
  3. Microsoft Teams: gửi tin nhắn vào kênh của bộ phận kinh doanh để thông báo đơn hàng mới.

7. Lỗi thường gặp và cách xử lý

Lỗi Nguyên nhân Cách xử lý
AADSTS50011 – redirect URI không khớp Redirect URI trên Entra khác với OAuth Redirect URL của n8n Sao chép lại đường dẫn trong n8n, dán vào Authentication → Web → Redirect URIs.
Need admin approval / AADSTS65001 Quyền chưa được cấp cho tổ chức Quản trị viên bấm Grant admin consent (bước 6).
AADSTS7000215 – invalid client secret Dán nhầm Secret ID hoặc secret đã hết hạn Tạo secret mới, dán đúng giá trị cột Value.
AADSTS50194 App chọn Single tenant nhưng n8n dùng endpoint /common Đổi loại tài khoản sang đa tổ chức, hoặc thay common bằng Tenant ID trong n8n.
Lỗi 403 khi chạy node Thiếu quyền cho thao tác đó Thêm quyền tương ứng, Grant admin consent, rồi Reconnect credential.

8. Lưu ý bảo mật

  • Không chia sẻ Client Secret, Tenant ID, Client ID trong ảnh chụp hoặc tài liệu công khai.
  • Chỉ cấp những quyền cần thiết cho workflow.
  • Theo dõi ngày hết hạn của Client Secret và gia hạn trước khi hết hạn.
  • Khi không còn sử dụng, xóa secret hoặc vô hiệu hóa ứng dụng trong App registrations.





Bài viết liên quan