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

Xin giới thiệu một số bản cập nhật cho FedCM, trong đó có bản dùng thử mới theo nguyên gốc 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 web để liên kết danh tính bảo đảm quyền riêng tư. Với liên kết danh tính, RP (bên tin cậy) dựa vào một IdP (nhà cung cấp danh tính) để cung cấp cho người dùng mà không cần tên người dùng và mật khẩu mới.

FedCM là một API được thiết kế có mục đích giú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 được chia sẻ, đồng thời ngăn chặn hành vi sai trái ngoài ý muốn.

Nội dung cập nhật

Sau đây là một số điểm cập nhật đối với việc triển khai FedCM của Chrome:

Để biết tất cả các bản cập nhật trước đây cho API, hãy xem tính năng Quản lý thông tin xác thực liên kết Cập nhật API.

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

Tự động xác thực lại FedCM ("tự động xác thực lại" nói ngắn gọn) 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. Tên viết tắt xác thực" ở đâ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 bằng cách nhấn vào nút "Continue as..." (Tiếp tục bằ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.

Mộ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.
Mộ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.

RP có thể yêu cầu tự động xác thực lại bằng cách gọi navigator.credentials.get() thông qua 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ể dùng FedCM. Ví dụ: người dùng chưa vô hiệu hoá FedCM trên toàn cầu hoặc bên bị hạn chế.
  • 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 được đă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 vừa qua.

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

Một người dùng đang tự động xác thực lại cho một bên bị hạn chế bằng FedCM

Dùng thử

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

Đối với mục đích thử nghiệm, bạn có thể đặt lại thời gian yên lặng 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 bên bị hạn chế.
  3. Nhấp vào biểu tượng dấu ba chấm ⋮ rồi chọn Xoá khỏi nhật ký.
  4. Khởi động lại Chrome.

Tham gia 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 thứ ba bản dùng thử theo nguyên gốc có trên Chrome 112 thông qua 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.

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 cứ vấn đề nào trong quá trình thử nghiệm, bạn có thể chia sẻ tại crbug.com trong thành phần Blink>Identity>FedCM.

Nhiếp ảnh gia: Alex Perz về Không hiển thị màn hình