Xác thực MCP vào năm 2026
Model Context Protocol (MCP) đã thay đổi cách các agent giao tiếp với máy chủ. Nó bắt đầu với các công cụ cục bộ như máy tính. Giờ đây, nó chạy trên các máy chủ từ xa. Sự chuyển dịch này đã khiến việc xác thực trở thành một yêu cầu bắt buộc.
Nếu bạn muốn thêm OAuth vào máy chủ MCP của mình, hãy chuẩn bị tinh thần cho một mục tiêu luôn thay đổi. Đặc tả (spec) thay đổi vài tháng một lần. Các agent khác nhau sử dụng các phiên bản quy tắc khác nhau.
Dưới đây là tình trạng hiện tại của việc xác thực MCP.
Sự chuyển dịch cốt lõi
Máy chủ MCP của bạn không phải là một authorization server. Nó là một resource server.
Trước đây, đặc tả buộc các máy chủ phải xử lý token và đăng nhập. Điều này khiến máy chủ trở nên nặng nề và khó mở rộng. Các chuyên gia như Aaron Parecki và Christian Posta đã chỉ ra điều này. Họ lập luận rằng các máy chủ MCP chỉ nên thực hiện việc xác thực (validate) token.
Ngày nay, tiêu chuẩn tuân theo luồng sau:
• Một yêu cầu chưa được xác thực sẽ nhận lỗi 401. • Lỗi này cho client biết nơi tìm metadata của tài nguyên. • Client tìm đúng authorization server (như Okta hoặc Keycloak). • Client lấy một token và gửi nó tới máy chủ MCP của bạn. • Máy chủ của bạn xác thực token và thực thi công cụ.
Vấn đề phân mảnh
Mặc dù đã có tiêu chuẩn, nhưng mỗi agent lại triển khai nó theo cách khác nhau.
• Claude Desktop: Chạy toàn bộ luồng OAuth. • Claude API: Yêu cầu bạn tự truyền bearer token của mình. • ChatGPT: Sử dụng CIMD để đăng ký và hỗ trợ đặc tả mới nhất. • Gemini: Sử dụng Google Cloud IAM và API keys. • VS Code: Hỗ trợ các nhà cung cấp GitHub và Entra.
Điều này có nghĩa là một máy chủ được xây dựng cho agent này có thể thất bại trên một agent khác. Một nhà cung cấp có thể yêu cầu luồng đăng nhập đầy đủ, trong khi nhà cung cấp khác lại mong đợi bạn tự quản lý token.
Ba bài học cho các nhà phát triển
Hướng tới mô hình Resource Server. Đừng cố gắng trở thành một identity provider. Hãy sử dụng RFC 9728 để cung cấp metadata và xác thực audience.
Hỗ trợ cả hai thế giới. Hãy xây dựng máy chủ của bạn để xử lý cả các lệnh gọi API theo kiểu "tự mang theo token" (bring your own token) và các luồng OAuth đầy đủ.
Hãy chuẩn bị cho các bản cập nhật liên tục. Đặc tả vẫn đang trong quá trình phát triển. OAuth 2.1 vẫn còn là bản dự thảo, và giao thức MCP vẫn đang trong giai đoạn định hình.
Việc xây dựng các máy chủ MCP hiện đang rất khó khăn. Các quy tắc thay đổi nhanh chóng. Nếu bạn giữ được sự linh hoạt và tuân thủ mô hình resource server, bạn sẽ vượt qua được những sự thay đổi này.
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi
