Bài viết liên quan
OAuth 2.0 trong ngân hàng số
OAuth 2.0 in Digital Banking
OAuth 2.0 trong ngân hàng số là gì?
OAuth 2.0 là giao thức ủy quyền tiêu chuẩn quốc tế, cho phép bên thứ ba (TPP - Third Party Provider) truy cập tài nguyên tài khoản khách hàng ngân hàng mà không cần lưu trữ username/password. Kết hợp OpenID Connect (OIDC) để xác thực danh tính, đây là nền tảng của PSD2 châu Âu và được NHNN Việt Nam khuyến nghị trong QĐ 16/2020/QĐ-NHNN về Open Banking.
4 vai trò trong mô hình OAuth 2.0
- Resource Owner: khách hàng cá nhân/doanh nghiệp sở hữu tài khoản ngân hàng.
- Client: ứng dụng TPP như MoMo, ZaloPay, Cake, Timo.
- Authorization Server: máy chủ cấp token của ngân hàng (ví dụ: auth.vietcombank.com.vn).
- Resource Server: hệ thống Core Banking chứa dữ liệu tài khoản, lịch sử giao dịch.
Các grant type phổ biến trong ngân hàng
- Authorization Code + PKCE: dùng cho mobile app, bảo mật cao nhất, bắt buộc cho public client theo RFC 8252.
- Client Credentials: cấp token cho giao tiếp TPP-to-TPP, không có user tham gia.
- Refresh Token: gia hạn access token mà không cần user đăng nhập lại, thường có hạn 30-90 ngày.
Ví dụ luồng xác thực thực tế
Khách hàng A liên kết MoMo với TechcomBank: (1) MoMo redirect A sang trang consent của TCB; (2) A đăng nhập + xác thực Smart OTP; (3) A chọn tài khoản chia sẻ và cấp scope account_info, payment_initiation; (4) TCB redirect về MoMo kèm authorization code; (5) MoMo đổi code lấy access_token (hạn 1 giờ) + refresh_token (hạn 90 ngày); (6) MoMo gọi API GET /accounts kèm header Authorization: Bearer eyJhbGciOi....
So sánh phương thức xác thực
API Key (yếu, chỉ dùng nội bộ) → Basic Auth (không khuyến nghị) → OAuth 2.0 + JWT (chuẩn Open Banking VN) → mTLS (mạnh nhất, dùng cho TPP Tier 1 hoạt động xuyên biên giới với chữ ký số eIDAS).