Hướng dẫn toàn diện để kiểm thử passkeys trong các ứng dụng iOS/Android gốc với 1Password, Bitwarden và hơn thế nữa. Bao gồm kế hoạch kiểm thử, các vấn đề thường gặp và chiến lược sẵn sàng cho production.
Vincent
Created: October 2, 2025
Updated: October 4, 2025
See the original blog version in English here.
Want to learn how to get +80% Passkey Adoption?
Join our Passkey Intelligence Webinar on October 8.
Với sự ra mắt của iOS 17 và Android 14, bối cảnh passkey cho các ứng dụng di động gốc đã thay đổi một cách cơ bản. Lần đầu tiên, các trình quản lý mật khẩu của bên thứ ba có thể hoạt động như nhà cung cấp passkey, phá vỡ thế độc quyền của iCloud Keychain và Google Password Manager. Điều này cho phép người dùng mang theo các giải pháp đáng tin cậy của riêng họ như 1Password, Bitwarden, hoặc Dashlane vào các luồng xác thực của ứng dụng gốc. Mặc dù đây là một thắng lợi lớn cho sự lựa chọn của người dùng, nó cũng mang lại sự phức tạp đáng kể cho các nhà phát triển. Việc triển khai passkey của bạn có thể hoạt động khác nhau trên các trình quản lý mật khẩu khác nhau trong ứng dụng di động gốc. Vì vậy, điều quan trọng là bất kỳ đội ngũ nào cũng phải kiểm thử passkeys trên ứng dụng gốc và các trình quản lý mật khẩu của bên thứ ba một cách đúng đắn.
Hướng dẫn toàn diện này chia sẻ phương pháp đã được kiểm chứng qua thực tế của chúng tôi về việc kiểm thử passkey trên ứng dụng gốc với các trình quản lý mật khẩu của bên thứ ba. Mặc dù hệ sinh thái passkey đã trưởng thành đáng kể vào năm 2025, việc triển khai trong thực tế vẫn đòi hỏi sự xác thực cẩn thận trên các cách triển khai trình quản lý mật khẩu đa dạng. Chúng tôi đã đúc kết kinh nghiệm của mình thành một kế hoạch kiểm thử thực tế để đảm bảo ứng dụng gốc của bạn hoạt động liền mạch với các trình quản lý mật khẩu ưa thích của người dùng.
Want to learn how to get +80% Passkey Adoption?
Join our Passkey Intelligence Webinar on October 8.
Hệ sinh thái trình quản lý mật khẩu đã phát triển vượt ra ngoài các giải pháp gốc của nền tảng. Người dùng chủ động chọn các trình quản lý mật khẩu của bên thứ ba như 1Password, Bitwarden, Dashlane, Proton Pass và NordPass dựa trên nhu cầu cụ thể của họ, chẳng hạn như đồng bộ hóa đa nền tảng, các tính năng doanh nghiệp hoặc tùy chọn về quyền riêng tư. Ứng dụng iOS / Android gốc của bạn phải đáp ứng sự đa dạng này mà không buộc người dùng phải chuyển đổi giải pháp quản lý mật khẩu đáng tin cậy của họ.
Dựa trên dữ liệu chúng tôi đo lường trên các trang của Corbado, chúng tôi thấy rằng chỉ 5-10% người dùng phổ thông dựa vào các trình quản lý mật khẩu của bên thứ ba. Mặc dù con số này nghe có vẻ thấp, nó sẽ có tác động rất lớn đến nhận thức về việc triển khai passkey của bạn và số lượng ticket hỗ trợ nếu bạn đang làm việc trong một môi trường quy mô lớn. Chúng tôi đã thấy rằng một số trình quản lý mật khẩu triển khai đặc tả WebAuthn hơi khác một chút, dẫn đến những khác biệt nhỏ trong trải nghiệm người dùng hoặc thậm chí là lỗi.
Các ứng dụng gốc của iOS và Android cung cấp các cách sử dụng passkey khác nhau. Trên Android, bạn sẽ gặp các lớp phủ passkey (passkey overlays) và các trường nhập văn bản thủ công để kích hoạt quy trình passkey (đối với ứng dụng web, Android cũng hỗ trợ Conditional UI). iOS có lớp phủ passkey riêng cùng với Conditional UI và cả các trường nhập văn bản thủ công. Hơn nữa, có những trường hợp đặc biệt khác cần kiểm tra. Tóm lại, ứng dụng gốc của bạn phải xử lý mượt mà các trường hợp sau:
Cấu hình cờ đúng đắn quyết định liệu passkeys có hoạt động như mong đợi trên các thiết bị và nền tảng hay không. Các giá trị quan trọng bao gồm:
Việc cấu hình cờ sai không phải lúc nào cũng gây ra lỗi ngay lập tức. Tuy nhiên, chúng có thể tạo ra các vấn đề khó nhận thấy và sự không nhất quán, ví dụ như passkeys có sẵn trên một thiết bị nhưng không được đồng bộ hóa trên các thiết bị khác (mặc dù cùng một trình quản lý mật khẩu của bên thứ ba có thể có sẵn trên cả hai thiết bị). Một trong những phát hiện của chúng tôi trong các bài kiểm thử là một số trình quản lý mật khẩu của bên thứ ba đã đặt cờ BE/BS không chính xác và chiếm một phần lớn các vấn đề về passkey.
Các kiến trúc single-activity (Android) và single-scene (iOS) đòi hỏi việc quản lý vòng
đời một cách tỉ mỉ. Khi một bảng (sheet) của trình quản lý mật khẩu xuất hiện và bị đóng,
ứng dụng của bạn phải giữ nguyên trạng thái, xử lý các lệnh gọi lại (callback) và tiếp tục
hoạt động một cách chính xác. Điều này đặc biệt quan trọng trên Android, nơi cấu hình
launchMode
có thể gây ra hành vi không mong muốn.
Ví dụ, chúng tôi phát hiện ra rằng việc đặt MainActivity
thành
launchMode="singleInstance"
đã tạo ra vấn đề. Trên một số phiên bản Android và các tùy
chỉnh của nhà sản xuất (OEM), chế độ này khiến giao diện người dùng Passkey Credential
Manager mở ra như một tác vụ riêng biệt. Điều này không chỉ thêm một mục ứng dụng khó
hiểu, bổ sung vào màn hình "Ứng dụng gần đây" mà còn có thể khiến ứng dụng bị treo nếu nó
được đưa xuống nền trong khi hộp thoại passkey đang mở.
Cách khắc phục được đề xuất là thay đổi cấu hình thành launchMode="singleTask"
. Điều này
ngăn Credential Manager tạo ra một tác vụ riêng biệt, đảm bảo vòng đời dễ dự đoán hơn trên
các OEM khác nhau (Samsung, Google, Vivo, v.v.) và giảm nguy cơ xảy ra lỗi cụ thể của nhà
cung cấp. Nó cung cấp một nền tảng ổn định hơn để kiểm thử điều hướng, các lớp phủ và
deeplink.
Chúng tôi đã quan sát thấy rằng các vấn đề về vòng đời như vậy thường bị nhầm lẫn là "lỗi của trình quản lý mật khẩu" trong khi thực chất chúng là vấn đề ở cấp độ ứng dụng. Việc sử dụng công cụ đo lường và kiểm thử đúng cách trên các nhà cung cấp khác nhau giúp xác định sớm các mẫu này.
Recent Articles
♟️
Sinh trắc học và Nhận thức của người thanh toán trong Liên kết động
🔑
Giải pháp xác minh danh tính kỹ thuật số cho một thế giới an toàn
🔑
Tuân thủ An ninh mạng là gì?
🔑
Các loại thẻ thông minh FIDO2 tốt nhất cho xác thực doanh nghiệp năm 2025
⚙️
Kiểm thử Trình quản lý Mật khẩu cho Passkeys trên Ứng dụng Gốc
Tập trung việc kiểm thử passkey trên ứng dụng gốc của bạn vào các trình quản lý mật khẩu của bên thứ ba được sử dụng rộng rãi nhất:
Mục tiêu chính (mức độ bao phủ thiết yếu):
Mục tiêu phụ (dựa trên cơ sở người dùng của bạn):
Tránh sa đà vào việc kiểm thử mọi trình quản lý mật khẩu có sẵn. Hãy tập trung vào các nhà cung cấp chiếm 90% cơ sở người dùng của bạn. Dữ liệu phân tích của chúng tôi cho thấy năm mục tiêu chính đã bao phủ 85% người dùng trình quản lý mật khẩu của bên thứ ba ở EU/USA/UK/AUS/NZ.
Trước khi bắt đầu mỗi lần chạy kiểm thử, hãy đảm bảo một môi trường sạch sẽ, có thể tái tạo:
1. Dọn dẹp trạng thái thông tin xác thực:
2. Ổn định môi trường kiểm thử:
Mỗi bài kiểm thử xác thực các khía cạnh cụ thể của chức năng passkey. Ghi lại kết quả một cách có hệ thống bằng trạng thái đạt/không đạt và ghi chú chi tiết cho bất kỳ sự bất thường nào.
Xác thực việc xử lý hủy bỏ một cách mượt mà
✓ Bảng của trình quản lý mật khẩu mở ra chính xác ✓ Người dùng hủy bỏ mà không tạo passkey ✓ Ứng dụng quay trở lại màn hình đăng nhập ✓ Không có thông tin xác thực mồ côi trong trình quản lý mật khẩu ✓ Giao diện người dùng hiển thị các tùy chọn thử lại phù hợp
Xác minh việc tạo passkey sau luồng xác thực
✓ Xác thực cục bộ khởi chạy một cách đáng tin cậy ✓ Xác thực sinh trắc học hoàn tất thành công ✓ Thông tin xác thực được tạo với RP ID chính xác ✓ Ứng dụng chuyển sang trạng thái đã xác thực mà không bị lặp
Kiểm thử các kịch bản xác thực tiêu chuẩn
✓ Giao diện lớp phủ Passkey xuất hiện hoặc người dùng cung cấp tên người dùng trong kịch bản trường văn bản ✓ Quét sinh trắc học và một lời nhắc sinh trắc học duy nhất dẫn đến xác thực thành công ✓ Không có vòng lặp lựa chọn hoặc bảng xuất hiện lại ✓ Phiên làm việc vẫn ổn định sau khi xác thực
Xác thực việc quản lý passkey trong ứng dụng
✓ RP ID, khả năng khám phá và cờ BE/BS chính xác ✓ Ứng dụng vẫn ở trạng thái xác thực sau khi tạo ✓ Trình quản lý mật khẩu cập nhật ngay lập tức với các nhãn chính xác
Kiểm thử việc quản lý vòng đời thông tin xác thực
✓ Xóa passkey trong cài đặt ✓ Không thể đăng nhập bằng passkey ✓ Tùy chọn dự phòng phù hợp được cung cấp
Xác thực khả năng chuyển đổi từ ứng dụng sang web
✓ Trình duyệt nhận dạng các passkey do ứng dụng tạo ✓ Bảng lựa chọn hiển thị liên kết RP chính xác ✓ Xác thực hoàn tất mà không cần dùng đến QR/CDA
Kiểm thử việc chia sẻ thông tin xác thực từ web sang ứng dụng
✓ Ứng dụng hiển thị thông tin xác thực do web tạo trong phần lựa chọn ✓ Xác thực thành công ngay lần thử đầu tiên ✓ Không bị buộc phải quay lại dùng mật khẩu
Xác minh việc đồng bộ hóa passkey từ ứng dụng gốc sang trình duyệt máy tính
✓ Passkey do ứng dụng tạo đồng bộ hóa với trình quản lý mật khẩu trên máy tính ✓ Passkey đã đồng bộ hoạt động liền mạch trong trình duyệt máy tính ✓ Không kích hoạt luồng mã QR / chéo thiết bị ✓ Xác thực hoàn tất mà không có vòng lặp hoặc lỗi
Xác minh việc đồng bộ hóa passkey từ trình duyệt máy tính sang ứng dụng gốc
✓ Passkey do máy tính tạo đồng bộ hóa với trình quản lý mật khẩu di động ✓ Ứng dụng gốc hiển thị chính xác passkey đã đồng bộ ✓ Xác thực thành công mà không cần dùng mật khẩu dự phòng ✓ Log ghi nhận assertion khớp với credential ID chính xác
Xác thực các kịch bản điện thoại-như-khóa-bảo-mật
✓ Điện thoại cung cấp thông tin xác thực do ứng dụng tạo cho CDA trên web ✓ Không có lỗi sai "không có passkey nào" ✓ Phiên làm việc trên web hoàn tất sau khi xác thực sinh trắc học trên di động
Quá trình kiểm thử sâu rộng của chúng tôi đã tiết lộ một số mẫu lặp đi lặp lại ảnh hưởng đến việc tích hợp passkey của trình quản lý mật khẩu của bên thứ ba:
Vấn đề: Thông tin xác thực được tạo trên một thiết bị có thể không xuất hiện ngay lập tức trên các thiết bị khác.
Giải pháp: Triển khai logic thử lại với thời gian chờ tăng theo cấp số nhân. Cung cấp tùy chọn làm mới thủ công cho người dùng gặp phải độ trễ đồng bộ hóa.
Vấn đề: Hành vi của trình quản lý mật khẩu thay đổi đáng kể giữa các phiên bản hệ điều hành, đặc biệt là trên Android 14+ và iOS 17+.
Giải pháp: Duy trì một ma trận tương thích và điều chỉnh các luồng dựa trên phiên bản HĐH được phát hiện. Cân nhắc các yêu cầu phiên bản tối thiểu để có trải nghiệm tối ưu.
Việc triển khai thành công hỗ trợ passkey từ trình quản lý mật khẩu của bên thứ ba trong các ứng dụng gốc đòi hỏi sự kiểm thử có phương pháp và chú ý đến chi tiết. Kế hoạch kiểm thử toàn diện của chúng tôi, được tinh chỉnh qua quá trình kiểm thử trong thế giới thực, cung cấp một nền tảng vững chắc để xác thực việc tích hợp passkey của bạn.
Những điểm chính cần nhớ để triển khai trong môi trường production:
Hệ sinh thái passkey tiếp tục phát triển nhanh chóng. Các trình quản lý mật khẩu thường xuyên cập nhật việc triển khai của họ, các hệ điều hành giới thiệu các tính năng mới và bản thân đặc tả WebAuthn cũng tiến bộ. Bằng cách thiết lập một khung kiểm thử mạnh mẽ ngay từ bây giờ, bạn sẽ chuẩn bị sẵn sàng để thích ứng khi công nghệ trưởng thành.
Chúng tôi sẽ tiếp tục cập nhật SDK và phương pháp kiểm thử của mình khi các mẫu mới xuất hiện. Việc đầu tư vào kiểm thử toàn diện các trình quản lý mật khẩu của bên thứ ba sẽ mang lại lợi ích lớn trong việc giảm gánh nặng hỗ trợ và cải thiện sự hài lòng của người dùng. Suy cho cùng, xác thực chỉ đơn giản là phải hoạt động được - bất kể người dùng của bạn chọn trình quản lý mật khẩu nào.
Related Articles
Table of Contents