Giới thiệu bản dùng thử theo nguyên gốc Digital Credentials API

Bản dùng thử theo nguyên gốc cho Digital Credentials API sẽ bắt đầu từ Chrome 128. Digital Credentials API là một API nền tảng web mới cho phép các trang web yêu cầu một cách có chọn lọc thông tin có thể xác minh về người dùng thông qua thông tin xác thực kỹ thuật số, chẳng hạn như giấy phép lái xe hoặc thẻ căn cước công dân được lưu trữ trong ví điện tử.

Thông tin khái quát

Thông tin nhận dạng số trong thế giới thực đang trở thành hiện thực với nhiều tổ chức công và tư bắt đầu cấp thông tin xác thực kỹ thuật số ràng buộc trên thiết bị. Ví dụ: giờ đây, bạn có thể cấp giấy phép lái xe trên thiết bị di động và giấy tờ tuỳ thân ở một số tiểu bang chọn lọc tại Hoa Kỳ (chẳng hạn như Arizona, California, Colorado, Georgia và Maryland) cho các ứng dụng ví điện tử như Google Wallet trên thiết bị di động. Các quy định liên quan đến việc chấp nhận thông tin xác thực kỹ thuật số cho một số quy trình xác minh trực tuyến cũng đang xuất hiện và eIDAS 2.0 là một ví dụ.

Giấy phép lái xe trên thiết bị di động trong Google Wallet
Giấy phép lái xe thiết bị di động trong Google Wallet.

Các tính năng của chứng chỉ kỹ thuật số phụ thuộc vào định dạng của chứng chỉ, mặc dù chúng thường bao gồm:

  • Bảo mật và quyền riêng tư nâng cao: Việc sử dụng phương thức mã hoá nâng cao và phương pháp xác thực mạnh mẽ giúp bảo vệ dữ liệu nhạy cảm và đảm bảo hoạt động truy cập an toàn. Ví dụ: việc trình bày thông tin đăng nhập thường được bảo vệ sau quy trình xác thực người dùng thông qua ứng dụng Wallet.
  • Thông tin công bố có chọn lọc: Bên tin cậy (RP) có thể yêu cầu một số thông tin trong thông tin xác thực, nhờ đó, người dùng chỉ có thể chia sẻ dữ liệu cần thiết cho trường hợp sử dụng. Ví dụ: Có thể chia sẻ thông tin về người dùng trên 18 tuổi mà không cần tiết lộ ngày sinh của người dùng đó hay không.
  • Khả năng tương tác: Chứng chỉ danh tính phải tuân thủ các tiêu chuẩn quốc tế, cho phép tương thích giữa các hệ thống và quốc gia khác nhau, tạo điều kiện cho việc chấp nhận xuyên biên giới.
  • Khả năng xác minh: Dữ liệu thông tin xác thực được chia sẻ có chữ ký số của tổ chức phát hành; RP có thể xác minh chữ ký này để xác minh tính xác thực của dữ liệu.

Do thông tin xác thực kỹ thuật số bản chất có thể xác minh được, chúng có thể cho phép các trường hợp sử dụng như:

  • Xác minh độ tuổi: Yêu cầu xác minh tuổi của một người trước khi phân phát nội dung bị giới hạn độ tuổi hoặc mua các mặt hàng bị giới hạn độ tuổi.
  • Xác minh danh tính: Yêu cầu tên và địa chỉ để xác minh danh tính của một người nhằm tuân thủ pháp luật hoặc phòng chống gian lận.
  • Kiểm tra đặc quyền lái xe: Xác minh xem một người có đủ điều kiện lái xe hay không (ví dụ: khi thuê xe ô tô).

Khi các trang web bắt đầu giao tiếp trực tiếp với ứng dụng ví di động (chẳng hạn như bằng cách sử dụng giao thức URL tuỳ chỉnh) để yêu cầu thông tin xác thực kỹ thuật số cho nhiều trường hợp sử dụng, các trình duyệt nhận thấy cơ hội để việc tương tác này trở nên an toàn hơn, chống lại hành vi sai trái và dễ sử dụng hơn thông qua một API được thiết kế riêng.

Ra mắt Digital Credentials API

Digital Credentials API là một API mới trên nền tảng web cho phép các trang web bên bị hạn chế quyền truy cập (RP) yêu cầu trình bày thông tin xác thực kỹ thuật số qua các ứng dụng ví. API này có trong Chrome dưới dạng bản dùng thử theo nguyên gốc kể từ Chrome 128.

API này không phụ thuộc vào giao thức, cho phép RP chỉ định một giao thức dựa trên các yêu cầu của giao thức đó. Khi một bên bị hạn chế đưa ra yêu cầu, trình duyệt sẽ gửi yêu cầu tới hệ điều hành của thiết bị di động để tìm thông tin đăng nhập trùng khớp trong các ứng dụng ví đã cài đặt. Nếu tìm thấy bất kỳ thẻ/vé nào, thì hệ điều hành thiết bị di động sẽ nhắc người dùng chọn một ứng dụng và gửi yêu cầu đến ví do người dùng chọn. Sau khi xác thực cục bộ, ví sẽ trả về một phản hồi có chứa dữ liệu thông tin xác thực được yêu cầu.

Sơ đồ giao tiếp giữa trình duyệt, ví và bên đáng tin cậy.

Trước tiên, Chrome sẽ hỗ trợ API trong Chrome trên Android để yêu cầu thông tin đăng nhập từ các ứng dụng ví trên cùng một thiết bị. Trong tương lai, chúng tôi dự định hỗ trợ phiên bản Chrome dành cho máy tính để yêu cầu thông tin đăng nhập trên nhiều thiết bị từ một thiết bị di động khác.

Khi ra mắt, Google Wallet sẽ tích hợp với API thông tin xác thực kỹ thuật số, cho phép các doanh nghiệp và tổ chức được chọn bắt đầu yêu cầu người dùng xuất trình giấy tờ tuỳ thân trực tuyến, thông qua Chrome trên Android và xác minh tính xác thực của dữ liệu được truyền bằng cách kiểm tra chữ ký mật mã. Để tham gia, hãy điền vào biểu mẫu này để bày tỏ sự quan tâm đến việc chấp nhận giấy tờ tuỳ thân điện tử trên Google Wallet.

Tài khoản Google cũng sẽ sớm sử dụng API này để xác minh một số người dùng ngày sinh. Người dùng cư trú ở một tiểu bang tại Hoa Kỳ được hỗ trợ sẽ có thể sử dụng thẻ căn cước do tiểu bang hoặc giấy phép lái xe được cấp trong các ứng dụng ví hiện có (bao gồm cả Google Wallet) để chia sẻ liền mạch ngày sinh của mình với Google mà không phải chia sẻ những thông tin chi tiết khác về danh tính. Điều này cho phép người dùng chứng minh với Google theo cách bảo đảm quyền riêng tư rằng họ đáp ứng các yêu cầu về độ tuổi liên quan đến tài khoản.

Dùng thử

Để dùng thử Digital Credentials API, hãy làm theo hướng dẫn:

  1. Cài đặt ứng dụng ví minh hoạ theo hướng dẫn trên trang này.
    • Tải ứng dụng ví minh hoạ xuống thiết bị Android của bạn.
    • Chạy lệnh adb install -t <path-to-apk> để cài đặt ứng dụng.
  2. Khởi chạy ứng dụng IC Wallet và cung cấp một giấy phép lái xe trên thiết bị di động minh hoạ (mDL).
    • Nhấn vào nút trình đơn rồi chọn Thêm tài liệu tự ký.
  3. Truy cập vào https://digital-credentials.dev bằng Chrome 128 trở lên.
  4. Nhấn vào Yêu cầu thông tin xác thực (OpenID4VP).

Hãy xem bản minh hoạ sử dụng https://digital-credentials.dev, một trang web kiểm tra dành cho các nhà phát triển để tạo yêu cầu về thông tin xác thực cho nhiều thuộc tính:

Dưới đây là cách hoạt động của bản minh hoạ theo từng bước:

1. Người dùng truy cập vào trang web của bên tin cậy đó và được yêu cầu xuất trình họ tên, tên đã xác minh và đảm bảo độ tuổi trên 21 tuổi.
2. Trình duyệt sẽ xác nhận xem người dùng có định chia sẻ bất kỳ thông tin xác thực kỹ thuật số nào với trang web này hay không.
3. Hệ điều hành hiển thị thông tin đang được yêu cầu và thông tin đăng nhập đủ điều kiện có thể khớp với yêu cầu để người dùng chọn và hoàn tất yêu cầu.
4 điểm. Ví sẽ xác thực người dùng cục bộ bằng tính năng mở khoá màn hình.

5 điểm. Thông tin xác thực kỹ thuật số được yêu cầu hiện đã được chuyển đến trang web của bên đáng tin cậy.

Cách hoạt động của API này

API Thông tin xác thực kỹ thuật số được xây dựng dựa trên nền tảng của API Quản lý thông tin xác thực, nhưng là từ một nền tảng API độc lập: navigator.identity. Khi gọi navigator.identity.get(), trang web có thể yêu cầu thông tin xác thực kỹ thuật số được lưu trữ trên ứng dụng ví di động. của Google.

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

Nền tảng API cơ bản tương tự như navigator.credentials.get(), ngoại trừ việc API này chỉ chấp nhận loại thông tin đăng nhập "digital". Trong loại thông tin xác thực kỹ thuật số, hãy thêm mảng providers chứa IdentityRequestProvider với các tham số cơ bản sau:

Tải trọng mẫu cho loại thông tin xác thực kỹ thuật số sử dụng OID4VP:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {     
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

Theo yêu cầu này, ví có mDL trên thiết bị sẽ cung cấp một bộ thông tin xác thực có thể xác minh, trong đó chứa:

  • Họ của người dùng.
  • Tên của người dùng.
  • Giá trị boolean cho biết người dùng đã trên 21 tuổi hay chưa.

Dưới đây là ví dụ về tải trọng phản hồi:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

Trong ví dụ này, thông tin xác thực được yêu cầu bằng giao thức "openid4vp" và phản hồi chứa "vp_token" trong thuộc tính data. Vui lòng xem OpenID cho bản trình bày có thể xác minh (OID4VP) cho quy cách của W3C Digital Credentials API để tìm hiểu cách phân tích cú pháp phản hồi và xác minh thông tin xác thực.

Digital Credentials API được hỗ trợ trên Chrome trên Android dưới dạng bản dùng thử theo nguyên gốc. Chrome trên máy tính và iOS hiện không hỗ trợ tính năng này. Đối với các công cụ trình duyệt khác, Nhóm cộng đồng vườn ươm web W3C sẽ hỗ trợ các cuộc trò chuyện đang diễn ra.

Tham gia dùng thử theo nguyên gốc

Để phát triển, bạn có thể bật Digital Credentials API trên thiết bị bằng cách bật cờ Chrome chrome://flags#web-identity-digital-credentials trong Chrome 128 trở lên.

Tính năng này cũng được cung cấp dưới dạng bản dùng thử theo nguyên gốc. Bản dùng thử theo nguyên gốc cho phép bạn dùng thử các tính năng mới và đưa ra ý kiến phản hồi về khả năng hữu dụng, tính thực tế và hiệu quả của các tính năng đó cho cộng đồng tiêu chuẩn web. Để biết thêm thông tin, hãy xem bài viết Bắt đầu sử dụng bản dùng thử theo nguyên gốc. Để đăng ký dùng thử theo nguyên gốc này hoặc một bản dùng thử theo nguyên gốc khác, hãy truy cập vào trang đăng ký.

  1. Yêu cầu một mã thông báo cho máy chủ gốc của bạn.
  2. Thêm mã thông báo vào các trang của bạn. Có hai cách để thực hiện việc đó:
    • Thêm một thẻ origin-trial <meta> vào đầu mỗi trang. Ví dụ: tệp này có thể có dạng như sau: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Nếu có thể định cấu hình máy chủ thì bạn cũng có thể thêm mã thông báo đó bằng cách sử dụng tiêu đề HTTP Origin-Trial. Tiêu đề phản hồi thu được sẽ có dạng như sau:Origin-Trial: TOKEN_GOES_HERE.

Chia sẻ ý kiến phản hồi

Nếu bạn có ý kiến phản hồi về Digital Credentials API, hãy gửi ý kiến phản hồi đó tới công cụ theo dõi lỗi Chromium chuyên dụng.