Thông tin cập nhật của FedCM: Bản dùng thử gốc để tự động xác thực lại

Giới thiệu một số nội dung cập nhật cho FedCM, bao gồm cả bản dùng thử mới về nguồn gốc để tự động xác thực lại.

Federated Credential Management API (FedCM) là một API web để liên kết danh tính bảo đảm quyền riêng tư. Với tính năng liên kết danh tính, RP (bên phụ thuộc) dựa vào IdP (nhà cung cấp danh tính) để cung cấp cho người dùng một tài khoản mà không yêu cầu tên người dùng và mật khẩu mới.

FedCM là một API được xây dựng theo mục đích cho phép trình duyệt hiểu được ngữ cảnh trong đó RP và IdP trao đổi thông tin, thông báo cho người dùng về thông tin và cấp đặc quyền đang được chia sẻ, đồng thời ngăn chặn hành vi sử dụng sai trái ngoài ý muốn.

Nội dung cập nhật

Có một số nội dung cập nhật về việc triển khai FedCM của Chrome:

Để biết tất cả nội dung cập nhật trước đây đối với API, hãy xem Thông tin cập nhật về API quản lý thông tin xác thực liên kết.

Phiên bản FedCM mới nhất có một tính năng tự động xác thực lại mới, cho phép tự động xác thực lại người dùng khi họ quay lại sau khi xác thực lần đầu bằng FedCM. Tính năng tự động xác thực lại có sẵn dưới dạng bản dùng thử theo nguyên gốc bắt đầu từ Chrome 112.

Tự động xác thực lại

Hiện tại, sau khi người dùng tạo một tài khoản liên kết trên một RP với một IdP thông qua FedCM, thì lần tiếp theo họ truy cập vào trang web, họ cần thực hiện các bước tương tự trong giao diện người dùng. Tức là họ cần xác nhận và xác thực lại một cách rõ ràng để tiếp tục quy trình đăng nhập. Vì một trong những mục tiêu chính của FedCM là ngăn chặn hoạt động theo dõi ẩn, nên trải nghiệm người dùng (UX) này sẽ phù hợp trước khi người dùng tạo tài khoản liên kết, nhưng sẽ trở nên không cần thiết và rườm rà sau khi người dùng đã trải qua một lần. Sau khi người dùng cấp quyền cho phép giao tiếp giữa RP và IdP,  việc thực thi một xác nhận rõ ràng khác của người dùng đối với nội dung mà họ đã xác nhận trước đó sẽ không mang lại lợi ích nào về quyền riêng tư hoặc bảo mật. Đó là lý do Chrome ra mắt một trải nghiệm người dùng đơn giản hơn mà các nhà cung cấp dịch vụ thanh toán (RP) có thể chọn cho người dùng cũ.

Tính năng tự động xác thực lại bằng FedCM (viết tắt là "tự động xác thực lại") sẽ tự động xác thực lại người dùng (khi RP chọn sử dụng) khi họ quay lại sau khi xác thực lần đầu bằng FedCM. "Quy trình xác thực ban đầu" ở đây có nghĩa là người dùng tạo một tài khoản hoặc đăng nhập vào trang web của RP bằng cách nhấn vào nút "Tiếp tục dưới dạng..." trên hộp thoại đăng nhập của FedCM lần đầu tiên trên cùng một phiên bản trình duyệt.

Hộp thoại mà người dùng nhấn vào để tạo tài khoản hoặc xác thực.
Hộp thoại mà người dùng nhấn vào để tạo tài khoản hoặc xác thực.

RP có thể yêu cầu tự động xác thực lại bằng cách gọi navigator.credentials.get() với autoReauthn: true.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

Với lệnh gọi này, quá trình tự động xác thực lại sẽ diễn ra trong các điều kiện sau:

  • Bạn có thể sử dụng FedCM. Ví dụ: người dùng chưa tắt FedCM trên toàn cục hoặc cho RP.
  • Người dùng chỉ sử dụng một tài khoản FedCM để đăng nhập vào trang web trên trình duyệt này.
  • Người dùng đã đăng nhập vào IdP bằng tài khoản đó.
  • Quá trình tự động xác thực lại không xảy ra trong vòng 10 phút qua.

Khi các điều kiện trên được đáp ứng, hệ thống sẽ tự động xác thực lại người dùng ngay khi navigator.credentials.get() FedCM được gọi.

Người dùng đang tự động xác thực lại với một RP bằng FedCM

Dùng thử

Bạn có thể thử tính năng tự động xác thực lại FedCM trên máy bằng cách bật cờ Chrome chrome://flags#fedcm-auto-re-authn trên Chrome 112 trở lên.

Đối với mục đích kiểm thử, bạn có thể đặt lại khoảng thời gian yên tĩnh 10 phút bằng cách xoá dữ liệu trình duyệt.

  1. Chuyển đến chrome://history.
  2. Trong hộp nhật ký tìm kiếm, hãy nhập nguồn gốc của RP.
  3. Nhấp vào biểu tượng dấu 3 chấm ⋮ rồi chọn Xoá khỏi nhật ký.
  4. Khởi động lại Chrome.

Tham gia thử nghiệm về nguồn gốc

Bạn cũng có thể bật tính năng này trên trang web của mình bằng cách tham gia bản dùng thử nguồn gốc của bên thứ ba có trong Chrome 112 đến Chrome 114.

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 các tiêu chuẩn web. Để biết thêm thông tin, hãy xem Hướng dẫn dùng thử theo nguyên gốc dành cho nhà phát triển web. Để đă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ý.

Để đăng ký nguồn gốc của bên thứ ba bản dùng thử và kích hoạt tính năng này đối với bên thứ ba:

  1. Truy cập vào trang đăng ký bản dùng thử theo nguyên gốc.
  2. Nhấp vào nút Register (Đăng ký) rồi điền vào biểu mẫu để yêu cầu mã thông báo
  3. Nhập nguồn gốc phân phát dưới dạng Nguồn gốc web.
  4. Chọn So khớp bên thứ ba để chèn mã thông báo bằng JavaScript trên các nguồn gốc khác.
  5. Nhấp vào Gửi.
  6. Nhúng mã thông báo đã phát hành vào một bên thứ ba.

Để nhúng mã thông báo vào bên thứ ba, hãy thêm mã sau vào JavaScript của bạn thư viện hoặc SDK được phân phát từ nguồn gốc của trang web đã đăng ký.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Thay thế TOKEN_GOES_HERE bằng mã thông báo của riêng bạn.

Tham gia và chia sẻ ý kiến phản hồi

Nếu có ý kiến phản hồi hoặc gặp bất kỳ vấn đề nào trong quá trình kiểm thử, bạn có thể chia sẻ ý kiến phản hồi hoặc vấn đề đó tại crbug.com trong thành phần Blink>Identity>FedCM.

Ảnh chụp của Alex Perz trên Unsplash