Triển khai Thẻ tuỳ chỉnh Android để đăng nhập trang xác thực

Thẻ tuỳ chỉnh Android mang đến trải nghiệm trình duyệt đầy đủ tính năng, an toàn và liền mạch ngay trong quy trình đăng nhập mạng cho các cổng giam giữ, chẳng hạn như những cổng được tìm thấy ở sân bay, khách sạn và máy bay. Bằng cách tích hợp trình duyệt chính của người dùng vào quy trình xác thực, Thẻ tuỳ chỉnh cho phép các chức năng nâng cao, bao gồm cả tính năng tự động điền thông tin đăng nhập và thông tin thanh toán chỉ bằng một lần nhấn, tính năng phát trực tuyến được bảo vệ bằng DRM và khả năng kết nối nhất quán cho người dùng có các tính năng bảo mật như VPN và DNS riêng tư. Để biết thêm thông tin về Thẻ tuỳ chỉnh, hãy xem bài viết Tổng quan về Thẻ tuỳ chỉnh trên Android.

Lợi ích so với WebView cũ

Việc tích hợp trình duyệt chính của người dùng bằng Thẻ tuỳ chỉnh sẽ giải quyết một số hạn chế về chức năng vốn có trong các quy trình xác thực dựa trên WebView cũ cho nhà khai thác mạng:

  • Giao dịch tinh giản: Giao diện này hỗ trợ tính năng tự động điền thông tin xác thực và thông tin thanh toán đã lưu chỉ bằng một lần nhấn, giúp giảm thao tác nhập dữ liệu theo cách thủ công trong quá trình đăng nhập. (Xem Hình 1.)
  • Khả năng tương thích với nội dung nghe nhìn: Nền tảng này hỗ trợ nội dung được bảo vệ bằng DRM (chẳng hạn như Widevine), cho phép phát trực tiếp các luồng video được mã hoá trong cổng thông tin. (Xem Hình 2.)
  • Hỗ trợ các cấu hình bảo mật: Thẻ tuỳ chỉnh duy trì chức năng cổng cho các thiết bị sử dụng VPN hoặc DNS riêng tư, các tính năng bảo mật thường khiến các lệnh chuyển hướng của trình duyệt tiêu chuẩn không thành công.
  • Tính nhất quán của giao diện: Thẻ tuỳ chỉnh tích hợp trực tiếp với trình duyệt hệ thống, cung cấp các công cụ chức năng và phần tử trên giao diện người dùng giống như trong một phiên trình duyệt đầy đủ.
  • Tính duy trì ở chế độ nền: Cổng vẫn hoạt động ở chế độ nền, đóng vai trò là một điểm truy cập liên tục trong suốt thời gian kết nối.

Nhập dữ liệu theo cách thủ công và tự động điền vào trang xác thực

Hình 1. Nhập dữ liệu theo cách thủ công (WebView) so với tính năng tự động điền (Thẻ tuỳ chỉnh).

Phát video trên trang xác thực

Hình 2. Không có video (WebView) so với chế độ phát video (Thẻ tuỳ chỉnh).

Quy trình khám phá và kết nối Thẻ tuỳ chỉnh

Mặc dù Thẻ tuỳ chỉnh cung cấp giao diện, nhưng Captive Portal API sẽ quản lý quy trình thông minh từ phát hiện đến kết nối:

  1. Phát hiện: Mạng quảng cáo hỗ trợ API bằng cách sử dụng DHCP Option 114.
  2. Tương tác: Thiết bị Android truy vấn điểm cuối API để tìm nạp một tải trọng JSON chứa trạng thái mạng.
  3. Kết nối: Nếu phản hồi JSON báo hiệu việc sử dụng Thẻ tuỳ chỉnh, hệ thống sẽ mở cổng trong một môi trường trình duyệt hiệu suất cao thay vì một cửa sổ hệ thống cơ bản.

Captive Portal API cho phép các thiết bị Android phát hiện xem có cổng giam giữ hay không bằng cách sử dụng trường captive. API này tích hợp các trường khác như venue-info-urlseconds-remaining vào giao diện người dùng hệ thống Android.

Quy trình khám phá trang xác thực để kết nối

Hình 3. Phát hiện API trang xác thực để kết nối quy trình.

Bật Thẻ tuỳ chỉnh của Android

Để hỗ trợ quy trình Thẻ tuỳ chỉnh, các nhà khai thác mạng phải triển khai Captive Portal API và chọn sử dụng thông qua cấu hình JSON.

Yêu cầu

Để bật Thẻ tuỳ chỉnh cho tính năng đăng nhập bằng trang xác thực, bạn cần làm những việc sau:

  • Thiết bị chạy Android 12 trở lên có hỗ trợ bản cập nhật hệ thống Google Play (xem Mainline) thông qua mô-đun CaptivePortalLogin Mainline.
  • Hỗ trợ API Cổng xác thực (RFC 8908). Để biết thông tin chi tiết, hãy xem phần Hỗ trợ Captive Portal API.

Chọn sử dụng Thẻ tuỳ chỉnh của Android

Nếu mạng của bạn đã hỗ trợ Captive Portal API (RFC 8908), hãy thêm cặp khoá-giá trị sau vào đối tượng phản hồi JSON hiện có để bật quy trình Thẻ tuỳ chỉnh:

Khoá Giá trị Mô tả
x-android-use-custom-tabs 361335020 Giá trị này biểu thị số phiên bản của mô-đun Captive Portal Login Mainline được phát hành vào tháng 1 năm 2026. Những thiết bị có bản cập nhật mô-đun bằng hoặc mới hơn phiên bản này sẽ sử dụng quy trình đăng nhập bằng Thẻ tuỳ chỉnh.

Đối tượng JSON mẫu này bao gồm tất cả các thuộc tính cổng thông tin giam giữ mà Android hỗ trợ:

{
  "captive": true,
  "user-portal-url": "https://login.example.com",
  "venue-info-url": "https://venue.example.com",
  "seconds-remaining": 3600,
  "x-android-use-custom-tabs": 361335020
}

Sau đây là các thuộc tính cổng thông tin giam giữ JSON hiện có:

  • captive: Đặt thành true nếu cần xác thực; đặt thành false nếu người dùng đã trực tuyến.
  • user-portal-url: URL của trang đăng nhập hoặc trang thanh toán.
  • venue-info-url: Đường liên kết đến trang web của bạn để biết thông tin (ví dụ: thông tin chi tiết về chuyến bay hoặc bản đồ).
  • seconds-remaining: Cho biết thời gian còn lại (tính bằng giây) mà thiết bị dự kiến duy trì kết nối Internet.
  • x-android-use-custom-tabs: Kiểm soát việc thiết bị có sử dụng thẻ tuỳ chỉnh hay không khi có thể.

Hỗ trợ Captive Portal API

Nếu mạng của bạn không hỗ trợ Captive Portal API, hãy làm theo các bước sau để bật Captive Portal API và quy trình Thẻ tuỳ chỉnh.

  1. Cập nhật cấu hình máy chủ DHCP để thêm lựa chọn DHCP 114.

    • Giá trị: Cung cấp URL HTTPS đầy đủ của tệp JSON được tạo động có chứa thông tin về cổng thông tin hạn chế (ví dụ: https://api.yourvenue.com/status).

    • Kết quả: Khi một thiết bị Android tham gia mạng, thiết bị đó sẽ truy vấn API được cung cấp thay vì chờ trình duyệt chuyển hướng.

  2. Định cấu hình máy chủ API để phản hồi yêu cầu HTTP GET tại URL đã cung cấp bằng một tệp JSON thông báo cho thiết bị về trạng thái hiện tại của cổng.

    • Yêu cầu về HTTPS: Máy chủ API của bạn phải sử dụng chứng chỉ HTTPS hợp lệ.

    • Cơ chế dự phòng bảo mật: Nếu chứng chỉ không hợp lệ hoặc tự ký, thiết bị sẽ quay lại hành vi cổng thông tin giam giữ cũ.

Hành vi phát hiện trang xác thực trên Android

Captive Portal API cung cấp một giải pháp thay thế đáng tin cậy cho các lệnh kiểm tra mạng Android tiêu chuẩn để phát hiện sự tồn tại của trang xác thực, bỏ qua những điểm không nhất quán thường gặp.

Các thiết bị Android kiểm tra quyền truy cập vào mạng bằng cách gửi đồng thời các lệnh kiểm tra HTTP và HTTPS đến các URL xác thực cụ thể. Nếu lệnh kiểm tra không nhất quán (ví dụ: HTTP thành công nhưng HTTPS thất bại), thì sẽ dẫn đến trạng thái kết nối một phần. Trạng thái này có thể ngăn ứng dụng đăng nhập tự động hiển thị.

API Trang xác thực giúp phát hiện đáng tin cậy hơn bằng cách sử dụng hành vi phát hiện sau đây:

  • Nếu API báo cáo "captive": true, hệ thống sẽ nhận ra rằng API này nằm sau một cổng và bỏ qua các lệnh kiểm tra tiêu chuẩn để hiển thị ngay giao diện đăng nhập.
  • Nếu API báo cáo "captive": false, hệ thống sẽ tiến hành các lệnh kiểm tra tiêu chuẩn, yêu cầu cả lệnh kiểm tra HTTP và HTTPS đều phải thành công trước khi xác nhận quyền truy cập đầy đủ vào Internet.