OAuth2、Graph API和普通密码登录有什么区别
Hầu hết các listing tài khoản Outlook/Hotmail đều ghi OAuth2, không phải do người bán tự thêm vào – Microsoft đã ngừng hỗ trợ Basic Authentication cho email người dùng cá nhân. Giải thích rõ OAuth2 và Graph API là gì, cách đọc ký hiệu trên listing, và các trường giao hàng cần xác nhận trước khi đặt hàng.
Avery BennettKhi lướt qua danh sách tài khoản Outlook/Hotmail, hầu như mỗi dòng đều ghi "OAuth2 [Graph]" hoặc "OAuth2 [IMAP/POP3]", trong định dạng bàn giao còn kèm theo các trường lạ như "refresh_token", "client_id", hoàn toàn khác xa với kiểu "email:mật khẩu" đơn giản trước đây. Đây không phải là trò thêm thắt của riêng người bán nào, mà là cách đăng nhập của Microsoft đã thực sự thay đổi.
Lưu ý quan trọng: Điều khoản dịch vụ của hầu hết các nền tảng lớn đều nghiêm cấm mua bán hoặc chuyển nhượng tài khoản. Bài viết này không thể hiện việc Microsoft chấp thuận giao dịch tài khoản. Nội dung chỉ giải thích ý nghĩa kỹ thuật của các ký hiệu giao thức đăng nhập, không cấu thành lời khuyên nhằm vượt qua cơ chế bảo mật của nền tảng. Phạm vi chức năng cụ thể dựa trên mô tả của trang sản phẩm.
Kết nối trực tiếp bằng mật khẩu thông thường gần như không còn khả thi với Microsoft
Theo thông báo chính thức của Microsoft, từ ngày 16 tháng 9 năm 2024, các tài khoản email cá nhân như Outlook.com, Hotmail, Live.com đã ngừng hỗ trợ Basic Authentication – tức là cách ứng dụng email hoặc tập lệnh bên thứ ba đăng nhập đơn thuần bằng "tài khoản + mật khẩu". Hiện tại, các công cụ bên thứ ba muốn kết nối với các hộp thư này về cơ bản đều phải sử dụng OAuth2 (Microsoft gọi là Modern Authentication). Đây cũng là lý do tại sao hầu hết các danh sách Outlook/Hotmail hiện nay đều ghi "OAuth2" thay vì chỉ đơn giản là "login:password".
OAuth2 và Graph API là gì?
| Thuật ngữ | Định nghĩa | Tài khoản nhận được gì? |
|---|---|---|
| OAuth2 | Giao thức xác thực hiện đại, trong quy trình đăng nhập, nó trao đổi một mã truy cập có thời hạn, mật khẩu không được trao trực tiếp cho công cụ bên thứ ba | access token (có hiệu lực ngắn hạn) + refresh token (dùng để lấy access token mới) |
| Graph API | Giao diện lập trình chính thức do Microsoft cung cấp, chương trình sử dụng mã thông báo OAuth2 để gọi giao diện này nhằm đọc/ghi email, lịch và các dữ liệu khác | Dữ liệu trả về từ việc gọi giao diện, không phải tên tài khoản hay mật khẩu |
Logic này tương tự như bên Gmail – Gmail cũng có tổ hợp OAuth2 + Gmail API. Nếu bạn quen thuộc hơn với cách kết nối bên Gmail, có thể tham khảo bài viết Sự khác biệt giữa đăng nhập web, IMAP và API của Gmail. Cơ chế cốt lõi của hai bên là tương đồng, chỉ khác ở chỗ bên này sử dụng Graph API của riêng Microsoft.
Cách đọc các ký hiệu trong danh sách sản phẩm
- OAuth2 [Graph]: Chỉ hỗ trợ truy cập thông qua giao diện lập trình Graph API, không sử dụng phương thức gửi/nhận thư IMAP/POP3 truyền thống.
- OAuth2 [IMAP/POP3]: Vẫn có thể gửi/nhận thư bằng ứng dụng email, nhưng thông tin đăng nhập là mã thông báo OAuth2, không phải tài khoản và mật khẩu.
- OAuth2 [IMAP/POP3/GRAPH]: Hỗ trợ cả hai cách kết nối, đều có thể sử dụng trong cùng một hệ thống mã thông báo.
- "refresh_token", "client_id" trong định dạng bàn giao: Đây là các thông tin xác thực đi kèm bắt buộc cho OAuth2, không phải mã lộn xộn thừa ra từ tài khoản – thiếu bất kỳ mục nào, chương trình sẽ không thể lấy được mã truy cập mới.
Ba tình huống điển hình nên chọn thế nào
- Thỉnh thoảng đăng nhập thủ công để xem email: Chỉ cần đăng nhập qua web, không cần quan tâm đến các khái niệm OAuth2.
- Dùng ứng dụng email hoặc tập lệnh để nhận mã xác thực định kỳ: Chọn tài khoản "OAuth2 [IMAP/POP3]" hoặc tài khoản hỗ trợ cả hai, thiết lập phương thức xác thực trong ứng dụng là OAuth2.
- Cần kết nối vào sản phẩm chính thức, gọi lập trình dài hạn: Chọn tài khoản hỗ trợ Graph API, sử dụng mã thông báo + gọi giao diện, phạm vi quyền (scope) cũng dễ quản lý riêng lẻ hơn.
Cần xác nhận gì trước khi đặt hàng
- Danh sách sản phẩm ghi cụ thể tổ hợp OAuth2 nào. Tài khoản chỉ hỗ trợ Graph không thể dùng để kết nối với ứng dụng email IMAP thông thường, hãy đối chiếu với mục đích sử dụng của bạn trước khi chọn.
- Định dạng bàn giao có đầy đủ không. Định dạng phổ biến là bộ bốn món: email|mật khẩu|refresh_token|client_id. Thiếu bất kỳ mục nào có thể dẫn đến việc lấy mã thông báo mới thất bại sau này, hãy kiểm tra các trường đã đầy đủ khi nhận hàng.
- Cách xử lý khi refresh_token hết hạn. Hỏi trước xem người bán có thể cấp lại mã thông báo mới hay cần tài khoản tự thực hiện lại quy trình ủy quyền một lần nữa, vì mức độ khó của hai cách này khác nhau.
Những hạn chế cần biết trước khi mua
- Mã thông báo OAuth2 có thể hết hạn do thay đổi mật khẩu tài khoản, kiểm tra bảo mật và các lý do khác. Sau khi hết hạn, cần tạo lại hoặc ủy quyền lại.
- Phương thức kết nối cụ thể mà một tài khoản hỗ trợ dựa trên mô tả trên trang sản phẩm và có thể thay đổi theo chính sách của Microsoft.
- Người dùng phải tuân thủ Điều khoản dịch vụ của Microsoft và luật pháp địa phương.
Các câu hỏi thường gặp
Hiện tại mật khẩu thông thường có hoàn toàn không kết nối được Outlook/Hotmail không? Theo thông tin công khai, Microsoft đã ngừng hỗ trợ Basic Authentication cho các tài khoản email người dùng cá nhân. Các ứng dụng và tập lệnh bên thứ ba về cơ bản đều cần OAuth2 để kết nối. Tình trạng hỗ trợ thực tế hiện tại của Microsoft là căn cứ cuối cùng.
Refresh_token có hết hạn không? Có. Nếu không sử dụng trong thời gian dài hoặc tài khoản có các thay đổi liên quan đến bảo mật (ví dụ: đổi mật khẩu), refresh_token có thể hết hạn. Sau khi hết hạn, thường cần thực hiện lại quy trình ủy quyền để lấy mã thông báo mới.
Cùng một tài khoản có thể sử dụng đồng thời IMAP/POP3 và Graph API không? Nếu danh sách sản phẩm ghi rõ hỗ trợ cả hai, thông thường là có thể. Hai phương thức sử dụng cách gọi mã thông báo tương ứng, không xung đột với nhau.
