Nội dung cập nhật về API Federated Credential Management

Federated Credential Management API đã được phát hành trong Chrome 108 nhưng dự kiến sẽ tiếp tục phát triển. Không có thay đổi có thể gây lỗi nào trong kế hoạch.

Những nội dung cập nhật này dành cho đối tượng nào?

Những nội dung cập nhật này là dành cho bạn nếu:

  • Bạn là một IdP sử dụng API Quản lý thông tin xác thực liên kết.
  • Bạn là một IdP hoặc RP và muốn mở rộng API cho phù hợp với trường hợp sử dụng của mình – ví dụ: bạn đang quan sát hoặc tham gia các cuộc thảo luận về kho lưu trữ CG của FedID và muốn tìm hiểu những thay đổi đối với API này.
  • Bạn là một nhà cung cấp trình duyệt và muốn theo dõi trạng thái triển khai của API này.

Nếu bạn mới sử dụng API này hoặc chưa thử nghiệm, hãy đọc bài viết giới thiệu về API Quản lý thông tin xác thực liên kết.

Nhật ký thay đổi

Để luôn nắm bắt thông tin mới nhất về những thay đổi đối với API FedCM, hãy đăng ký nhận bản tin của chúng tôi.

Chrome 125 (tháng 4 năm 2024)

Chrome 123 (tháng 2 năm 2024)

  • Thêm tính năng hỗ trợ API Gợi ý miền. API Gợi ý miền cho phép RP chỉ định thuộc tính domainHint trong lệnh gọi API FedCM để chỉ hiển thị các tài khoản trùng khớp của người dùng.

Chrome 122 (tháng 1 năm 2024)

Chrome 121 (tháng 12 năm 2023)

  • Điều kiện thoải mái để kích hoạt tính năng tự động xác thực lại của FedCM:
    • Tính năng tự động xác thực lại trong FedCM chỉ được kích hoạt khi người dùng quay lại. Điều này có nghĩa là người dùng cần đăng nhập vào RP bằng FedCM một lần trên mọi phiên bản trình duyệt, trước khi có thể kích hoạt tính năng tự động xác thực lại. Điều kiện này ban đầu được đưa ra để giảm thiểu nguy cơ các trình theo dõi giả vờ là nhà cung cấp danh tính (IdP) và lừa trình duyệt tự động xác thực lại người dùng mà họ không hay biết hoặc không đồng ý. Tuy nhiên, thiết kế này không thể đảm bảo lợi ích về quyền riêng tư nếu trình theo dõi có quyền truy cập vào cookie của bên thứ ba trong ngữ cảnh RP. FedCM chỉ cung cấp một số tính năng có thể có thông qua cookie của bên thứ ba. Vì vậy, nếu trình theo dõi đã có quyền truy cập vào cookie của bên thứ ba trong bối cảnh RP, thì việc truy cập vào FedCM sẽ không gây ra thêm rủi ro nào về quyền riêng tư.
      Vì có trường hợp sử dụng cookie của bên thứ ba một cách hợp pháp và việc nới lỏng điều kiện sẽ giúp cải thiện trải nghiệm người dùng, nên hành vi này sẽ thay đổi từ Chrome 121. Chúng tôi đã quyết định nới lỏng hạn chế của điều kiện để coi người dùng là quay lại: nếu cookie của bên thứ ba có sẵn cho IdP trong ngữ cảnh RP, Chrome sẽ tin tưởng tuyên bố của IdP về trạng thái tài khoản của người dùng được chỉ định thông qua danh sách approved_clients và kích hoạt tính năng tự động xác thực lại nếu có. Bạn có thể sử dụng cookie của bên thứ ba thông qua: chế độ cài đặt người dùng, chính sách dành cho doanh nghiệp, thông tin phỏng đoán (Safari, Firefox, Chrome) và các API nền tảng web khác (chẳng hạn như Storage Access API (API Truy cập bộ nhớ). Xin lưu ý rằng khi IdP mất quyền truy cập vào cookie của bên thứ ba trong tương lai, nếu người dùng chưa từng cấp quyền rõ ràng trên giao diện người dùng FedCM (ví dụ: nhấp vào nút Tiếp tục bằng) trước đó, thì họ vẫn sẽ được coi là người dùng mới.
      Nhà phát triển không cần làm gì cả. Xin lưu ý rằng quy trình tự động xác thực lại có thể được kích hoạt nhiều hơn với thay đổi này nếu IdP có quyền truy cập vào cookie của bên thứ ba và tuyên bố rằng trước đây người dùng đã tạo tài khoản trên RP.

Chrome 120 (tháng 11 năm 2023)

  • Thêm tính năng hỗ trợ cho 3 tính năng sau trong Chrome 120:
    • API trạng thái đăng nhập: API trạng thái đăng nhập là một cơ chế trong đó một trang web, đặc biệt là IdP, thông báo cho trình duyệt về trạng thái đăng nhập của người dùng. Với API này, trình duyệt có thể giảm các yêu cầu không cần thiết đối với IdP và giảm thiểu các cuộc tấn công có thể xảy ra về thời gian. API trạng thái đăng nhập là một yêu cầu đối với FedCM. Với thay đổi này, cờ chrome://flags/#fedcm-without-third-party-cookies không còn cần thiết để bật FedCM khi cookie của bên thứ ba bị chặn.
    • Error API: API Lỗi thông báo cho người dùng bằng cách hiển thị giao diện người dùng của trình duyệt kèm theo thông tin về lỗi do IdP cung cấp.
    • API cờ được chọn tự động: API cờ được chọn tự động chia sẻ thông tin về việc có được sự cho phép rõ ràng của người dùng hay không bằng cách nhấn vào nút Tiếp tục dưới dạng với cả IdP và RP, bất cứ khi nào hệ thống tự động xác thực lại hoặc dàn xếp rõ ràng xảy ra. Việc chia sẻ chỉ diễn ra sau khi người dùng được cấp quyền để giao tiếp với IdP và RP.

Chrome 117 (tháng 9 năm 2023)

Chrome 116 (tháng 8 năm 2023)

  • Thêm tính năng hỗ trợ cho 3 tính năng sau trong Chrome 116:
    • API Gợi ý đăng nhập: Chỉ định một tài khoản người dùng ưu tiên để đăng nhập.
    • API Thông tin người dùng: Tìm nạp thông tin của người dùng cũ để nhà cung cấp danh tính (IdP) có thể hiển thị nút đăng nhập được cá nhân hoá trong iframe.
    • RP Context API: Sử dụng tiêu đề khác với "Sign in" (Đăng nhập) trong hộp thoại FedCM.
  • Hiện có Bản dùng thử theo nguyên gốc cho API trạng thái đăng nhập của IdP. Tìm hiểu thêm về vấn đề này trong bài viết Nội dung cập nhật của FedCM: API trạng thái đăng nhập của IdP, Gợi ý đăng nhập và các thông tin khác.

Chrome 115 (tháng 6 năm 2023)

  • Hỗ trợ thêm tính năng tự động xác thực lại, cho phép người dùng tự động xác thực lại khi họ quay lại sau lần xác thực ban đầu bằng FedCM. Điều này giúp cải thiện trải nghiệm người dùng và cho phép đơn giản hoá quá trình xác thực lại bên bị hạn chế sau khi có sự đồng ý ban đầu. Tìm hiểu thêm về tính năng tự động xác thực lại FedCM.

Chrome 110 (tháng 2 năm 2023)

  • Đối với điểm cuối xác nhận mã nhận dạng, các IdP cần kiểm tra tiêu đề Origin (thay vì tiêu đề Referer) để xem giá trị có khớp với nguồn gốc của mã ứng dụng khách hay không.
  • Hiện đã hỗ trợ iframe trên nhiều nguồn gốc cho FedCM. Trình nhúng phải chỉ định Permissions-Policy identity-credentials-get để cho phép API FedCM trong iframe được nhúng trên nhiều nguồn gốc. Bạn có thể xem ví dụ về iframe trên nhiều nguồn gốc.
  • Đã thêm một cờ Chrome mới chrome://flags/#fedcm-without-third-party-cookies. Với cờ này, bạn có thể kiểm thử chức năng FedCM trong Chrome bằng cách chặn cookie của bên thứ ba. Tìm hiểu thêm trong tài liệu của FedCM.

Chrome 108 (Tháng 10 năm 2022)

  • "tệp kê khai cấp cao nhất" hiện được gọi là "tệp phổ biến" trong tài liệu. Bạn không cần thay đổi cách triển khai.
  • "Tệp kê khai IdP" hiện được gọi là "tệp cấu hình" trong tài liệu. Bạn không cần thay đổi cách triển khai.
  • id_token_endpoint trong "tệp cấu hình" được đổi tên thành id_assertion_endpoint.
  • Các yêu cầu gửi tới IdP hiện bao gồm tiêu đề Sec-Fetch-Dest: webidentity thay vì tiêu đề Sec-FedCM-CSRF: ?1.

Chrome 105 (tháng 8 năm 2022)

  • Đã thêm thông tin bảo mật quan trọng vào tài liệu. Nhà cung cấp danh tính (IdP) cần kiểm tra xem tiêu đề Referer có khớp với nguồn gốc RP đã đăng ký trước trên điểm cuối của mã thông báo giá trị nhận dạng hay không.
  • Tệp kê khai cấp cao nhất được đổi tên từ /.well-known/fedcm.json thành /.well-known/web-identity và URL được chỉ định trong provider_urls phải bao gồm tên tệp.
  • Các phương thức login(), logout()revoke() trên các thực thể FederatedCredential không còn hoạt động nữa.
  • API Quản lý thông tin xác thực liên kết hiện sử dụng loại IdentityCredential mới thay vì FederatedCredential. Bạn có thể dùng lớp này để phát hiện tính năng nhưng lại là một thay đổi lớn vô hình.
  • Di chuyển chức năng đăng nhập từ tổ hợp navigator.credentials.get()FederatedCredential.prototype.login() sang navigator.credentials.get().
  • Điểm cuối thu hồi trong tệp kê khai không còn hiệu lực nữa.
  • Hãy sử dụng trường identity thay vì trường federated cho các lệnh gọi navigator.credentials.get().
  • url hiện là configURL và phải là URL đầy đủ cho tệp JSON chứa tệp kê khai thay vì đường dẫn cho lệnh gọi navigator.credentials.get().
  • nonce hiện là một tham số không bắt buộc cho navigator.credentials.get().
  • Không còn có thể dùng hint dưới dạng một tuỳ chọn cho navigator.credentials.get().
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (tháng 6 năm 2022)

Chrome 103 (tháng 5 năm 2022)

  • Hỗ trợ môi trường máy tính để bàn.
  • Hỗ trợ chế độ cài đặt theo từng bên bị hạn chế (RP) trên máy tính.
  • Điểm cuối của siêu dữ liệu ứng dụng hiện là không bắt buộc. Trong điểm cuối này, URL chính sách quyền riêng tư cũng là không bắt buộc.
  • Thêm một lưu ý về việc sử dụng CSP connect-src trong tài liệu này.

Tài nguyên