Ngày xuất bản: 3 tháng 10 năm 2025
Chúng tôi rất vui mừng thông báo rằng Digital Credentials API hiện được bật theo mặc định từ Chrome 141. Ngoài ra, iOS 26 còn hỗ trợ Digital Credentials API cho Chrome và các trình duyệt khác. API này mang đến một cấp độ bảo mật và quyền riêng tư mới cho quy trình xác minh danh tính trên web, cho phép các trang web yêu cầu và nhận thông tin có thể xác minh từ người dùng theo cách tiêu chuẩn.
Sau khi Origin Trial thành công, Digital Credentials API hiện hỗ trợ cả việc trình bày thông tin xác thực trên cùng một thiết bị trên Android và việc trình bày trên nhiều thiết bị trên Chrome dành cho máy tính.
Thông tin khái quát
Cho đến nay, việc xác minh danh tính trực tuyến là một quy trình phức tạp, thường yêu cầu người dùng tải bản quét giấy tờ tuỳ thân lên. Hành vi này thường có nghĩa là chia sẻ nhiều dữ liệu hơn mức cần thiết, điều này gây ra những lo ngại đáng kể về quyền riêng tư cho người dùng. Đối với nhà phát triển, điều này cũng tạo ra rủi ro, vì họ phải đảm bảo rằng giải pháp của mình có khả năng xử lý và lưu trữ dữ liệu nhạy cảm thường không đồng nhất theo cách bảo mật và bảo đảm quyền riêng tư.
Đồng thời, các quy định như eIDAS 2.0 đang yêu cầu chính phủ cung cấp phương thức nhận dạng kỹ thuật số cho người dân. Những ví danh tính kỹ thuật số này phải có khả năng lưu trữ nhiều thông tin xác thực, bao gồm cả giấy tờ xác minh danh tính và tuổi. Các nhà cung cấp dịch vụ trực tuyến có thể yêu cầu thông tin đăng nhập này để xác minh danh tính người dùng.
Nhận thấy tiềm năng của thông tin xác thực kỹ thuật số trong việc đáp ứng cả nhu cầu của người dùng về quyền riêng tư và nhu cầu của nhà phát triển về việc xác minh dữ liệu người dùng, cộng đồng tiêu chuẩn web trong W3C đã phát triển một giải pháp: Digital Credentials API (API Thông tin xác thực kỹ thuật số). Digital Credentials API (API Thông tin xác thực kỹ thuật số) hướng đến mục tiêu giải quyết vấn đề này bằng cách giới thiệu một giao diện tích hợp để xác minh thông tin người dùng, giúp cải thiện tính bảo mật, quyền riêng tư và trải nghiệm người dùng so với các giải pháp thay thế. Với API này, người dùng không còn cần tải các tài liệu nhạy cảm như bản chụp giấy tờ tuỳ thân lên nhiều trang web. Thay vào đó, các trang web có thể tạo dựng niềm tin với người dùng bằng cách chỉ yêu cầu dữ liệu cụ thể, được ký bằng mật mã mà họ cần từ các tổ chức phát hành đáng tin cậy.
Các tính năng cốt lõi
Digital Credentials API được xây dựng dựa trên 3 nguyên tắc cốt lõi: quyền riêng tư, khả năng hỗ trợ trên nhiều nền tảng và tiêu chuẩn hoá.
Quyền riêng tư
Digital Credentials API giúp tăng cường quyền riêng tư và tính bảo mật trên mạng. Tính năng này cho phép người dùng xuất trình một giấy tờ tuỳ thân kỹ thuật số trong ví di động cho các trang web để xác minh những thông tin cụ thể mà không cần tiết lộ dữ liệu nhạy cảm cơ bản. Ví dụ: API này có thể xác minh rằng người dùng trên 18 tuổi mà không tiết lộ toàn bộ ngày sinh của họ. Nguyên tắc "chọn lọc thông tin công khai" này đảm bảo rằng các trang web chỉ nhận được thông tin tối thiểu cần thiết.
Digital Credentials API cũng tương thích với các giao thức Chứng minh không tiết lộ (ZKP), chẳng hạn như ZK Longfellow của Google. Giao thức này đảm bảo quyền riêng tư của người dùng bằng cách trả về một bằng chứng mật mã rằng một khẳng định nhất định về danh tính là đúng mà không tiết lộ bất kỳ thông tin nào khác.
Hỗ trợ nhiều nền tảng
Digital Credentials API hướng đến việc hỗ trợ nhiều nền tảng để người dùng có thể trình bày thông tin đã xác minh một cách thuận tiện trên các thiết bị.
Trên Android: Cung cấp giao diện người dùng tích hợp, cho phép người dùng chọn thông tin đăng nhập trong ứng dụng ví đã cài đặt.
Trên máy tính: Người dùng có thể xuất trình thông tin đăng nhập từ ví di động của họ cho một trang web trong trình duyệt máy tính. Bằng cách quét mã QR, hệ thống sẽ thiết lập một kết nối an toàn, được mã hoá hai đầu và chống lừa đảo giữa máy tính và thiết bị di động. Kết nối này sử dụng giao thức CTAP để xác minh khoảng cách của người dùng thông qua BLE, đảm bảo rằng họ đang ở gần và kiểm soát cả hai thiết bị.
Chuẩn hoá
Khả năng tương tác là yếu tố then chốt. Trong Chrome, Digital Credentials API (API Thông tin xác thực kỹ thuật số) không phụ thuộc vào nền tảng giao thức và tương thích với nhiều giao thức trình bày, chẳng hạn như OpenID4VP và Phụ lục C của ISO 18013-7. Apple cũng đã ra mắt dịch vụ hỗ trợ cho Digital Credentials API (API Thông tin xác thực kỹ thuật số) từ Safari 26.0.
Ngoài ra, Digital Credentials API còn dựa trên tính năng hỗ trợ quản lý thông tin xác thực tích hợp trong Android và một hệ sinh thái ngày càng phát triển gồm các ví tương thích. Google Wallet là một ứng dụng sử dụng sớm, với sự hỗ trợ của Samsung Wallet và 1Password sắp ra mắt.
Có gì mới kể từ bản dùng thử Nguồn gốc?
Đối với những người đã tham gia bản dùng thử theo nguyên gốc trước đây của chúng tôi, bạn sẽ nhận thấy Digital Credentials API đã chuyển từ navigator.identity.get()
sang navigator.credentials.get()
, điều này phù hợp với nỗ lực hợp nhất danh tính trên diện rộng bằng Credential Management API.
Ngoài ra, tham số providers
đã được đổi tên thành requests
và request
đã được đổi tên thành data
.
Triển khai
Việc tích hợp Digital Credentials API bao gồm 2 bước chính: phát hiện tính năng và yêu cầu thông tin xác thực. Nhà phát triển cũng nên triển khai logic tuỳ chỉnh để xác định xem ứng dụng của họ có thể sử dụng thông tin đăng nhập hay không.
Phát hiện đối tượng
Trước khi bạn cho thấy nút "Xác minh bằng thông tin đăng nhập kỹ thuật số", hãy kiểm tra xem Digital Credentials API có hoạt động trong trình duyệt của người dùng hay không.
if (typeof DigitalCredential !== "undefined") {
// Digital Credentials API is supported
} else {
// Digital Credentials API is not supported
}
Yêu cầu thông tin đăng nhập
Yêu cầu thông tin xác thực liên quan đến một lệnh gọi đến navigator.credentials.get()
có tham số digital
. Trong loại thông tin đăng nhập kỹ thuật số, hãy thêm một mảng requests
chứa DigitalCredentialGetRequest với các tham số cơ bản sau:
protocol
: Chỉ định một giao thức trao đổi bằng một chuỗi. Ví dụ:"openid4vp"
hoặc"org-iso-mdoc"
. Phát hiện xem trình duyệt có hỗ trợ giao thức hay không như sau:if (DigitalCredential.userAgentAllowsProtocol("example-protocol")) { // Create a request with this protocol } else { // Protocol is not supported }
data
: Một đối tượng có các tham số mà ứng dụng ví kỹ thuật số chấp nhận cho giao thức được chỉ định. Đối với"openid4vp"
, các tham số được xác định trong OpenID cho Bản trình bày có thể xác minh (OID4VP) cho quy cách API Thông tin đăng nhập kỹ thuật số của W3C.try { const digitalCredential = await navigator.credentials.get({ digital: { requests: [{ protocol: "openid4vp-v1-unsigned", data: { response_type: "vp_token", nonce: "[some-nonce]", client_metadata: {...}, dcql_query: {...} } }] } }); // Decrypt payload respons and verify credentials on the backend const response = await fetch("/verify", { method: "POST", body: JSON.stringify(digitalCredential.data), headers: { 'Content-Type': 'application/json' } }); } catch (e) { // Handle errors, such as the user canceling the request console.error(e); }
Ví dụ: để yêu cầu họ, tên và giá trị boolean của người dùng cho biết người dùng có trên 21 tuổi hay không, bạn có thể chỉ định tải trọng sau:
{
protocol: 'openid4vp-v1-unsigned',
data: {
response_type: 'vp_token',
nonce: '[some-nonce]',
// Contains the Verifier metadata values, including supported credential formats and response encryption public key
client_metadata: {
// Supported credential formats. Refer to the documentation for specific values
vp_formats_supported: {...},
// Public key(s). Refer to the documentation for more detail.
jwks: {...}
},
dcql_query: {
// A wallet will try to find credentials it holds that match these definitions.
credentials: [
{
// A locally unique identifier for this credential definition within the query.
id: "cred_vc",
format: "dc+sd-jwt",
meta: {
// 'vct_values' specifies the Verifiable Credential allowed type.
// In this case, it's a European Digital Identity (EUDI) Personal Identification Data (PID) credential.
vct_values: [
"urn:eudi:pid:1"
]
},
// 'claims' is an array of specific data that's being requested.
claims: [
{
// The path ["age_equal_or_over", "18"] corresponds to accessing `credential.age_equal_or_over['18']`.
path: [
"age_equal_or_over",
"18"
]
}
]
}
]
}
}
}
Trong ví dụ này, client_metadata
phải chỉ định danh sách các định dạng được hỗ trợ. Hãy tham khảo quy cách để biết những giá trị có thể sử dụng. Tập hợp giá trị jwks
không bắt buộc được đặt trong client_metadata
phải chứa các khoá công khai dùng để mã hoá phản hồi. Bạn cũng có thể xem mã minh hoạ để biết thêm ví dụ.
Dưới đây là ví dụ về một tải trọng phản hồi được mã hoá của đối tượng DigitalCredential:
{
// This is an example for a response using an OpenID4VP protocol.
// The format of the 'data' object will differ for other protocols.
"protocol": "openid4vp-v1-unsigned",
"data": {
// To decrypt this JWE payload, use the private key.
// The decrypted payload will be a JSON object containing the
// Verifiable Presentation in the 'vp_token' claim.
"response": "[jwe-token]"
}
}
Trong ví dụ này, hệ thống yêu cầu thông tin đăng nhập bằng giao thức openid4vp-v1-unsigned
và phản hồi chứa response
trong thuộc tính data
.
Cách phân tích cú pháp phản hồi chính xác sẽ tuỳ thuộc vào giao thức. Bạn thường cần phải:
- Giải mã tải trọng phản hồi. Phương thức giải mã phụ thuộc vào giao thức được sử dụng. Xem cách giải mã tải trọng cho
openid4vp
(bằng JWE) vàorg-iso-mdoc
(bằng tính năng Mã hoá khoá công khai kết hợp). - Xác minh chữ ký và tổ chức phát hành. Để biết thêm thông tin chi tiết, hãy xem tài liệu Chấp nhận thông tin đăng nhập kỹ thuật số trực tuyến.
Để xem mã mẫu cho các giao thức khác nhau, hãy xem mã cho bản minh hoạ hoặc phiên bản được lưu trữ trực tiếp.
Xác minh độ tin cậy của tổ chức phát hành
Chữ ký mật mã của thông tin xác thực kỹ thuật số chứng minh rằng thông tin xác thực đó là xác thực. Tuy nhiên, nhà phát triển phải xác minh rằng tổ chức phát hành phù hợp và đáng tin cậy cho trường hợp sử dụng cụ thể của họ. Ví dụ: để cấp chiết khấu cho sinh viên đại học, một trang web thương mại điện tử sẽ yêu cầu thông tin xác thực do một trường đại học được công nhận cấp và sẽ từ chối thông tin xác thực do bất kỳ thực thể nào khác ký. Một cách phổ biến để xác minh độ tin cậy của tổ chức phát hành là duy trì danh sách các tổ chức phát hành đã được phê duyệt và từ chối mọi tổ chức phát hành không khớp.
Bắt đầu
Bạn đã sẵn sàng bắt đầu xây dựng? Sau đây là những thông tin bạn cần biết.
- Phạm vi cung cấp: Theo mặc định, Chrome 141 trở lên sẽ bật Digital Credentials API trên nhiều nền tảng.
- Điều kiện tiên quyết: Người dùng cần có một thiết bị tương thích, chẳng hạn như thiết bị Android chạy Dịch vụ Google Play phiên bản 24.0 trở lên hoặc thiết bị iOS chạy phiên bản 26 trở lên. Thiết bị phải cài đặt một ứng dụng ví điện tử hỗ trợ Digital Credentials API, ví dụ: Ví Google hoặc ví minh hoạ.
- Dùng thử bản minh hoạ: Cách tốt nhất để hiểu trải nghiệm người dùng và kiểm thử việc triển khai là dùng thử bản minh hoạ trực tiếp tại https://verifier.multipaz.org bằng Chrome 141 trở lên.
Tài nguyên
Để biết thêm thông tin, hãy xem các tài nguyên sau:
- Hướng dẫn cho nhà phát triển: Digital Credentials API
- Quy cách: Thông tin xác thực kỹ thuật số của W3C
- Hỗ trợ Android: Android hỗ trợ Thông tin đăng nhập kỹ thuật số
Chia sẻ ý kiến phản hồi của bạn
Giờ đây, khi Digital Credentials API đã được phát hành, chúng tôi rất muốn biết trải nghiệm của bạn khi xây dựng bằng API này. Báo cáo vấn đề để chia sẻ ý kiến phản hồi hoặc báo cáo lỗi.