Bài viết liên quan
OAuth 2.0 trong ngân hàng
OAuth 2.0 Authentication
OAuth 2.0 trong ngân hàng là gì?
OAuth 2.0 (RFC 6749) là giao thức ủy quyền tiêu chuẩn quốc tế cho phép bên thứ ba (Third Party Provider - TPP) truy cập API ngân hàng thay mặt khách hàng mà không cần chia sẻ thông tin đăng nhập. Thay vào đó, hệ thống sử dụng access token có thời hạn (thường 1 giờ) kèm refresh token dài hạn để gia hạn phiên truy cập.
Đặc điểm
- 4 flow chính: Authorization Code, Client Credentials, Implicit (đã lỗi thời) và Resource Owner Password — trong đó Authorization Code kèm PKCE (RFC 7636) được khuyến nghị cho mobile app.
-
Scope giới hạn: Access token chỉ cấp quyền cụ thể (ví dụ
read:accounts,payment:initiate), tuân thủ nguyên tắc least privilege. - Refresh token rotation: Mỗi lần sử dụng phát sinh token mới, token cũ bị thu hồi để chống replay attack.
- Bắt buộc tại Việt Nam: Ngân hàng phải hỗ trợ OAuth 2.0 khi mở API cho đối tác theo quy định Open Banking của NHNN.
Ví dụ
Khách hàng TPBank muốn dùng app CashPlus để xem tài khoản: app redirect sang trang auth.tpbank.vn/authorize với response_type=code&client_id=cashplus&code_challenge=.... Sau khi khách hàng xác thực và đồng ý cấp scope, TPBank redirect về với ?code=AbC123; CashPlus đổi code lấy access token (hạn 1 giờ) để gọi GET /accounts. Theo Thông tư 17/2024/TT-NHNN về mô hình ngân hàng mở và tiêu chuẩn PSD2 của EU, mọi TPP truy cập tài khoản thanh toán đều phải dùng OAuth 2.0 và áp dụng SCA (Strong Customer Authentication) cho giao dịch nhạy cảm.