OpenID Connect (OIDC) là giao thức xác thực danh tính (Authentication) được phát triển trên nền tảng khung ủy quyền OAuth 2.0. OIDC cho phép ứng dụng bên thứ ba (Relying Party) xác minh danh tính người dùng dựa trên kết quả xác thực từ nhà cung cấp danh tính (OpenID Provider) thông qua mã ID Token chứa dữ liệu chuẩn hóa dạng JSON Web Token (JWT). Nhờ OIDC, các tổ chức triển khai cơ chế đăng nhập một lần (SSO) an toàn và tập trung trên các hệ thống như Microsoft Entra ID.
Bạn từng chọn “đăng nhập bằng một tài khoản có sẵn” thay vì tạo thêm một tên người dùng và mật khẩu mới chưa? Đằng sau trải nghiệm tưởng chừng như rất đơn giản ấy là một bài toán quan trọng: làm thế nào ứng dụng biết người đang đăng nhập thực sự là ai mà không phải tự xây dựng toàn bộ hệ thống xác thực danh tính?
Đó là một trong những bài toán OpenID Connect (OIDC) giúp giải quyết.
OIDC bổ sung lớp xác thực danh tính trên nền OAuth 2.0, giúp ứng dụng xác minh người dùng và nhận thông tin về danh tính của họ theo một cơ chế tiêu chuẩn. Tuy nhiên, vì OIDC và OAuth 2.0 thường xuất hiện cùng nhau, hai khái niệm này cũng rất dễ bị nhầm lẫn.
Vậy OIDC là gì, quá trình xác thực OIDC diễn ra như thế nào và OIDC khác OAuth 2.0 ở điểm nào? Bài viết này sẽ lần lượt giải thích các thành phần, ID Token, luồng xác thực, lợi ích, trường hợp sử dụng và những nguyên tắc quan trọng khi triển khai OIDC.
1. OpenID Connect (OIDC) là gì?
OIDC là một lớp xác thực (Authentication layer) nằm trên chuẩn OAuth 2.0. Giao thức này giúp các ứng dụng xác minh chính xác danh tính người dùng và lấy thông tin hồ sơ cơ bản dưới dạng dữ liệu mã hóa chuẩn hóa.
OpenID Connect (OIDC) là giao thức xác thực danh tính thế hệ mới. Giao thức này mở rộng từ khung ủy quyền OAuth 2.0 nhằm chuẩn hóa quy trình đăng nhập cho người dùng trên các ứng dụng di động, web và hệ thống doanh nghiệp.
Để hiểu đơn giản, hãy hình dung việc bạn đi vào một tòa nhà văn phòng cao tầng:
- OAuth 2.0 giống như thẻ từ gửi xe hoặc chìa khóa mở cửa phòng họp. Chiếc thẻ này chỉ chứng minh bạn có quyền truy cập vào không gian đó (Ủy quyền – Authorization), nhưng không thể hiện thông tin bạn là ai.
- OIDC giống như thẻ căn cước công dân hoặc hộ chiếu. Tấm thẻ này xác minh chính xác bạn là ai (Xác thực – Authentication) thông qua các thông tin định danh như họ tên, ngày sinh và ảnh chân dung.

Khi tích hợp OIDC, ứng dụng không cần trực tiếp lưu trữ hay xử lý mật khẩu người dùng. Mọi thao tác xác minh được chuyển giao an toàn cho các nhà cung cấp danh tính uy tín.
2. Các thành phần chính của OIDC gồm những gì?
Hệ thống OIDC vận hành dựa trên 4 thành phần cốt lõi: End User (Người dùng), Relying Party (Ứng dụng tin cậy), OpenID Provider (Nhà cung cấp danh tính) và các token dữ liệu chuẩn hóa như ID Token.

Để vận hành một hạ tầng xác thực theo chuẩn OIDC, hệ thống cần sự phối hợp chặt chẽ giữa các thành phần sau:
| Thành phần | Tên tiếng Anh | Vai trò chính |
|---|---|---|
| Người dùng | End user | Chủ sở hữu danh tính muốn đăng nhập vào ứng dụng |
| Ứng dụng tin cậy | Replying Party | Ứng dụng web/mobile cần xác minh danh tính người dùng |
| Nhà cung cấp danh tính | OpenID Provider | Hệ thống xác thực người dùng và phát hành Token (ví dụ: Microsoft Entra ID, Google) |
| Mã định danh | ID Token | Chuỗi mã hóa dạng JWT |
ID Token là điểm khác biệt quan trọng nhất giữa OIDC và OAuth 2.0. ID Token tuân theo định dạng JWT (JSON Web Token) gồm 3 phần tách biệt bởi dấu chấm (.): Header, Payload và Signature.
Payload của ID Token chứa các trường thông tin chuẩn (gọi là Claims):
- iss (Issuer): Trình phát hành token (ví dụ: https://login.microsoftonline.com/…).
- sub (Subject): Mã định danh duy nhất của người dùng.
- aud (Audience): Mã định danh đại diện cho ứng dụng nhận token.
- exp (Expiration Time): Thời điểm token hết hạn.
Ngoài ra, OIDC còn cung cấp UserInfo Endpoint. Đây là điểm cuối API bảo mật giúp ứng dụng lấy thêm thông tin chi tiết của người dùng như email, số điện thoại hoặc ảnh đại diện.
3. Quy trình xác thực OIDC hoạt động như thế nào?
Quy trình xác thực OIDC thực hiện qua 5 bước: Người dùng yêu cầu đăng nhập > Ứng dụng chuyển hướng tới nhà cung cấp danh tính > Người dùng xác thực > Nhà cung cấp trả về Token > Ứng dụng xác minh Token và cấp quyền.
Quy trình xác thực OpenID Connect đảm bảo ứng dụng có thể xác minh người dùng mà không bao giờ chạm vào mật khẩu cá nhân.

3.1 Bước 1. Gửi yêu cầu đăng nhập
Người dùng kích hoạt luồng xác thực.
Người dùng truy cập ứng dụng (Relying Party) và nhấn nút Đăng nhập. Ứng dụng gửi một yêu cầu xác thực (Authentication Request) kèm theo tham số scope=openid tới Nhà cung cấp danh tính (OpenID Provider).
3.2 Bước 2. Xác thực người dùng
Thực hiện trên giao diện nhà cung cấp.
Nhà cung cấp danh tính hiển thị trang đăng nhập. Người dùng nhập tên tài khoản, mật khẩu và hoàn thành bước xác thực hai lớp (MFA) nếu được yêu cầu.
3.3 Bước 3. Cấp mã xác thực
Nhà cung cấp trả về Authorization Code.
Sau khi xác thực thành công, Nhà cung cấp danh tính chuyển hướng người dùng quay lại ứng dụng kèm theo một mã xác thực tạm thời (Authorization Code).
3.4 Bước 4. Đổi Token bảo mật
Tương tác trực tiếp giữa Backend và Provider.
Ứng dụng gửi Authorization Code từ phía máy chủ (Backend) tới điểm cuối cấp Token của Nhà cung cấp danh tính để đổi lấy ID Token và Access Token.
3.5 Bước 5. Xác minh và thiết lập phiên
Giải mã ID Token.
Ứng dụng kiểm tra chữ ký kỹ thuật số của ID Token. Sau khi xác nhận token hợp lệ, ứng dụng trích xuất thông tin người dùng và khởi tạo phiên đăng nhập.
4. Các luồng OIDC phổ biến là gì?
OIDC hỗ trợ 4 luồng xác thực chính phù hợp với từng kiến trúc ứng dụng: Authorization Code Flow (Web bảo mật), PKCE Flow (Single Page App / Mobile), Client Credentials Flow (Server-to-Server) và Device Code Flow (Smart TV/IoT).
Mỗi kiến trúc ứng dụng có mức độ an toàn khác nhau. Do đó, OIDC thiết kế các luồng (Flows) riêng biệt để tối ưu tính bảo mật:
4.1 Authorization Code Flow
Đây là luồng chuẩn mực và an toàn nhất dành cho các ứng dụng web truyền thống có máy chủ riêng (Server-side Web App). Máy chủ ứng dụng có thể lưu trữ bí mật thương mại (Client Secret) an toàn để trao đổi token với OpenID Provider.
4.2 Authorization Code Flow với PKCE
Đối với ứng dụng đơn trang (Single Page App – SPA) hoặc ứng dụng di động (Mobile App), mã nguồn chạy trực tiếp trên thiết bị người dùng nên không thể giấu Client Secret. Luồng PKCE (Proof Key for Code Exchange) tạo ra một mã xáo trộn ngẫu nhiên để ngăn chặn hành vi chặn bắt mã xác thực trên thiết bị.
4.3 Client Credentials & Device Code Flow
- Client Credentials Flow: Dùng cho các tương tác ngầm giữa máy chủ và máy chủ (Server-to-Server) mà không có sự tham gia trực tiếp của người dùng.
- Device Code Flow: Thiết kế riêng cho các thiết bị hạn chế khả năng nhập liệu như Smart TV, thiết bị đeo thông minh hoặc bảng điều khiển IoT.
5. Khác biệt cốt lõi giữa OAuth 2.0 và OIDC là gì?
OAuth 2.0 là khung giao thức giải quyết bài toán Ủy quyền (Authorization – Được phép làm gì). OIDC là lớp bổ sung xây dựng trên OAuth 2.0 để giải quyết bài toán Xác thực (Authentication – Người dùng là ai).
Sự nhầm lẫn giữa OAuth 2.0 và OIDC diễn ra rất phổ biến trong cộng đồng phát triển phần mềm. Bảng so sánh dưới đây sẽ làm rõ sự khác biệt:
| Tiêu chí so sánh | OAuth 2.0 | OpenID Connect (OIDC) |
|---|---|---|
| Mục đích chính | Ủy quyền truy cập (Authorization) | Xác thực danh tính (Authentication) |
| Câu hỏi trả lời | Ứng dụng này được phép làm gì? | Người dùng đang đăng nhập là ai? |
| Mã thông báo chính | Access Token (opaque hoặc JWT) | ID Token (bắt buộc định dạng JWT) |
| Phạm vi mặc định | Tùy chỉnh (read, write, profile) | Bắt buộc phải có scope=openid |
| Ví dụ thực tế | Cấp quyền cho ứng dụng chỉnh ảnh truy cập kho Google Photos của bạn. | Dùng tài khoản Google để đăng nhập nhanh vào trang Spotify. |
Sử dụng Access Token của OAuth 2.0 để làm căn cứ đăng nhập là một sai lầm kiến trúc nguy hiểm. Việc này dễ dẫn đến các cuộc tấn công giả mạo token (Token Impersonation Attack).
6. Các lợi ích của xác thực OIDC đối với doanh nghiệp là gì?
OIDC giúp doanh nghiệp dễ dàng triển khai Đăng nhập một lần (SSO), nâng cao năng lực bảo mật nhờ giảm sử dụng mật khẩu, chuẩn hóa quy trình tích hợp và tối ưu hóa trải nghiệm người dùng.
Tích hợp OIDC mang lại nhiều lợi ích chiến lược cho cả nhóm kỹ thuật lẫn người dùng cuối:
- Hỗ trợ Đăng nhập một lần (Single Sign-On – SSO): Thông qua Single Sign-On (SSO), người dùng chỉ cần đăng nhập một lần duy nhất tại nhà cung cấp danh tính trung tâm để truy cập tất cả ứng dụng doanh nghiệp.
- Tăng cường an toàn thông tin: Doanh nghiệp giảm thiểu rủi ro lộ mật khẩu do người dùng không phải tạo hay nhớ quá nhiều thông tin đăng nhập. Các chính sách xác thực mạnh như MFA hay Conditional Access được áp dụng tập trung.
- Tối ưu trải nghiệm người dùng: Giảm bớt các thao tác nhập mật khẩu rườm rà, giúp người dùng truy cập công việc nhanh chóng và thuận tiện hơn.
- Chuẩn hóa lập trình (Standardization): Dựa trên cấu trúc REST/JSON đơn giản, OIDC giúp các nhóm phát triển tiết kiệm đáng kể thời gian tích hợp so với các chuẩn cũ như SAML 2.0.
7. Các ví dụ và trường hợp sử dụng OIDC thực tế là gì?
OIDC được ứng dụng rộng rãi trong các tính năng “Đăng nhập bằng Google/Facebook”, hệ thống quản lý truy cập doanh nghiệp và kết nối xác thực giữa các ứng dụng đối tác.
Dưới đây là hai kịch bản ứng dụng OIDC phổ biến nhất trong thực tế:
7.1 Tính năng Social Login trên ứng dụng tiêu dùng
Khi bạn truy cập một trang thương mại điện tử và chọn “Đăng nhập bằng Google”, ứng dụng đó đang đóng vai trò là Relying Party và sử dụng OIDC để xác minh danh tính của bạn thông qua Google OpenID Provider.
7.2 Hạ tầng quản lý danh tính doanh nghiệp (IAM)
Trong môi trường doanh nghiệp, các tổ chức thường sử dụng một giải pháp Identity and Access Management (IAM) tập trung như Microsoft Entra ID (trước đây là Azure Active Directory) để làm nhà cung cấp danh tính chính.
Nhờ OIDC, nhân viên chỉ cần đăng nhập một lần vào tài khoản Microsoft Entra ID của công ty là có thể tự động truy cập an toàn vào hàng loạt phần mềm như CRM, ERP, HRMS và các ứng dụng nội bộ khác.
8. Triển khai OIDC để xác thực bảo mật với Microsoft Entra ID như thế nào?
Trong hệ thống Microsoft Entra ID, dịch vụ đóng vai trò là OpenID Provider trung tâm. Microsoft Entra ID thực hiện xác thực người dùng, áp dụng chính sách bảo mật và phát hành ID Token giúp đăng nhập an toàn vào ứng dụng.
Microsoft Entra ID cung cấp khả năng hỗ trợ OIDC mạnh mẽ. Cho phép tích hợp các ứng dụng web và di động chỉ với vài bước cấu hình đơn giản.
Luồng xử lý OIDC cơ bản trong giải pháp Microsoft Entra ID diễn ra như sau:
[Người dùng] > [Ứng dụng Web/Mobile] > [Microsoft Entra ID] > (Xác thực & Kiểm tra MFA) > [Cấp ID Token (JWT)] > [Ứng dụng Web/Mobile]
- Đăng ký ứng dụng. Lập trình viên khai báo ứng dụng trong Microsoft Entra ID để nhận Client ID và cấu hình Redirect URI.
- Yêu cầu xác thực. Khi người dùng chọn đăng nhập, ứng dụng chuyển hướng đến cổng xác thực của Microsoft Entra ID.
- Thực thi chính sách. Microsoft Entra ID kiểm tra thông tin, yêu cầu xác thực nhiều yếu tố (MFA) hoặc phân tích rủi ro thiết bị.
- Phát hành ID Token. Sau khi xác nhận danh tính thành công, Microsoft Entra ID phát hành ID Token dạng JWT. Ứng dụng nhận token, xác minh chữ ký và cho phép người dùng đăng nhập.

9. Câu hỏi thường gặp về OIDC (FAQ)
SAML 2.0 dựa trên định dạng XML và phù hợp với các hệ thống doanh nghiệp cũ (Legacy systems). OIDC sử dụng định dạng JSON/RESTful gọn nhẹ hơn, tối ưu hoàn hảo cho các ứng dụng web hiện đại, Single Page App và ứng dụng di động.
Không. OIDC được thiết kế dưới dạng một lớp mở rộng trực tiếp nằm trên khung giao thức OAuth 2.0. Do đó, OIDC bắt buộc phải chạy trên nền tảng của OAuth 2.0.
Không nên. ID Token chỉ dùng để xác minh danh tính người dùng tại ứng dụng tin cậy (Relying Party). Để gọi các API bảo mật ở máy chủ tài nguyên (Resource Server), bạn bắt buộc phải sử dụng Access Token.
10. Lời kết
OpenID Connect (OIDC) là chuẩn mực vàng cho bài toán xác thực danh tính trong phát triển phần mềm hiện đại. Việc kết hợp giữa khả năng xác thực của OIDC và khung ủy quyền của OAuth 2.0 mang lại giải pháp an toàn toàn diện cho các hệ thống phần mềm.
Nếu doanh nghiệp của bạn đang tìm kiếm giải pháp chuẩn hóa hạ tầng đăng nhập SSO và nâng cao năng lực bảo mật, việc tích hợp OIDC cùng các dịch vụ quản lý danh tính hàng đầu như Microsoft Entra ID chính là bước đi chiến lược không thể bỏ qua.


