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

Chúng tôi xin giới thiệu một vài nội dung cập nhật cho FedCM, bao gồm cả bản dùng thử theo nguyên gốc mới cho tính năng tự động xác thực lại.

API Quản lý thông tin xác thực liên kết (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 trung thành) 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 riêng cho phép trình duyệt hiểu được bối cảnh trao đổi thông tin RP và IdP, 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 mục đích.

Các bản cập nhật

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

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

Phiên bản mới nhất của FedCM có tính năng tự động xác thực lại mới. Tính năng này cho phép tự động xác thực lại người dùng khi họ quay lại sau lần xác thực ban đầu bằng FedCM. Tính năng tự động xác thực lại đã có mặt dưới dạng bản dùng thử theo nguyên gốc kể từ Chrome 112.

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

Hiện tại, sau khi người dùng tạo tài khoản liên kết trên RP với IdP thông qua FedCM, lần tiếp theo họ truy cập trang web đó, họ cần thực hiện các bước tương tự trong giao diện người dùng. Điều này nghĩa là các ứng dụng đó 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. Là một trong những mục đích chính của FedCM là ngăn việc theo dõi bí mật, trải nghiệm người dùng (UX) này có ý nghĩa trước khi người dùng tạo tài khoản liên kết, nhưng lại trở nên không cần thiết và rườm rà sau khi người dùng trải qua tài khoản 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,  sẽ không có lợi ích về quyền riêng tư hay tính bảo mật nào khi yêu cầu người dùng xác nhận rõ ràng một nội dung mà họ đã xác nhận trước đó. Đó là lý do Chrome ra mắt một trải nghiệm đơn giản hơn mà các bên bị hạn chế có thể lựa chọn cho người dùng cũ của họ.

Chế độ tự động xác thực lại FedCM ("tự động xác thực lại" ("auto-reauthn") nói ngắn gọn) sẽ tự động xác thực lại người dùng (khi RP chọn tham gia), khi họ quay lại sau lần xác thực ban đầu bằng FedCM. Quy trình "Xác thực ban đầu" ở đây có nghĩa là người dùng tạo 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 "Continue as..." (Tiếp tục dưới dạng...) lần đầu tiên trên hộp thoại đăng nhập của FedCM 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.

Bên bị hạn chế có thể yêu cầu tự động xác thực lại bằng cách gọi navigator.credentials.get() bằng 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 diễn ra trong các điều kiện sau:

  • FedCM có thể sử dụng được. Ví dụ: người dùng chưa tắt FedCM trên toàn cầu 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 đã không xảy ra trong vòng 10 phút qua.

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

Người dùng được tự động xác thực lại cho RP bằng FedCM

Dùng thử

Bạn có thể thử xác thực lại FedCM cục bộ 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 ba dấu chấm ⋮ rồi chọn Xoá khỏi nhật ký.
  4. Khởi động lại Chrome.

Tham gia bản dùng thử theo nguyê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ử theo nguyê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ý.

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

  1. Chuyển tới trang đăng ký dùng thử theo nguyên gốc.
  2. Nhấp vào nút Đă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 trên 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 thư viện JavaScript hoặc SDK được phân phát từ nguồn 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.

Thu hút 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ẻ các vấn đề đó trên trang crbug.com trong thành phần Blink>Identity>FedCM.

Ảnh của Alex Perz trên Unsplash