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

API Quản lý thông tin xác thực liên kết đã được xuất bản trong Chrome 108 nhưng dự kiến sẽ tiếp tục phát triển. Chưa có sự thay đổi nào có thể gây lỗi.

Những bản cập nhật này dành cho ai?

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

  • Bạn là một IdP (nhà cung cấp danh tính) sử dụng API Quản lý thông tin xác thực liên kết.
  • Bạn là một IdP (nhà cung cấp danh tính) hoặc RP (nhà cung cấp danh tính) và muốn mở rộng API này để 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ữ FedID CG và muốn tìm hiểu về những thay đổi đối với API này.
  • Bạn là một nhà cung cấp trình duyệt và bạn muốn nắm bắt 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 phần 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 xem blog của chúng tôi hoặc bản tin.

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

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

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

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

  • Thêm tính năng hỗ trợ cho tính năng Ngắt kết nối API. API Ngắt kết nối cho phép các bên bị hạn chế ngắt kết nối người dùng của họ khỏi tài khoản của IdP mà không cần dựa vào cookie của bên thứ ba.
  • Việc kiểm tra /.well-known/web-identity hiện sẽ bị bỏ qua khi RP và IdP (nhà cung cấp danh tính) ở cùng một trang web.
  • Các tài nguyên phụ hiện có thể đặt trạng thái đăng nhập trên cùng một trang web.

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

  • Điều kiện nới lỏng để kích hoạt tính năng tự động xác thực lại 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ơ trình theo dõi giả mạo là nhà cung cấp danh tính (IdP) và lừa trình duyệt tự động xác thực lại một người dùng mà họ không 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 trên 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ì quyền truy cập vào FedCM sẽ không gây ra rủi ro nào khác về quyền riêng tư.
      Vì có việc 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ẽ 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 các hạn chế về điều kiện để coi một người dùng là người dùng quay lại: nếu cookie của bên thứ ba có sẵn cho IdP theo ngữ cảnh RP, Chrome sẽ tin tưởng xác nhận 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ó. Cookie của bên thứ ba có thể được cung cấp thông qua: chế độ cài đặt của người dùng, chính sách dành cho doanh nghiệp, phương pháp 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). 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 trước đó 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 Continue as (Tiếp tục dưới dạng)), 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 thay đổi này có thể được kích hoạt nhiều hơn qua quy trình tự động xác thực lại nếu IdP có quyền truy cập vào cookie của bên thứ ba và xác nhận rằng trước đây người dùng đã tạo một tài khoản trên RP.

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

  • Hỗ trợ thêm 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 đó 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. Nhờ API này, trình duyệt có thể giảm các yêu cầu không cần thiết đến IdP và giảm thiểu các cuộc tấn công thời gian tiềm ẩn. 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, bạn không cần phải bật cờ chrome://flags/#fedcm-without-third-party-cookies để bật FedCM khi cookie của bên thứ ba bị chặn nữa.
    • API lỗi: 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 với 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 cho biết liệu người dùng đã được cấp quyền rõ ràng hay chưa bằng cách nhấn vào nút Continue as (Tiếp tục dưới dạng) với cả IdP và RP, bất cứ khi nào quá trình tự động xác thực lại diễn ra hoặc diễn ra một quy trình dàn xếp rõ ràng. Hoạt động chia sẻ chỉ diễn ra sau khi người dùng được cấp quyền để giao tiếp với IdP (nhà cung cấp danh tính) và RP.

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

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

  • Hỗ trợ thêm 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 dành cho API trạng thái đăng nhập qua IdP. Tìm hiểu thêm về điều này trong Thông tin cập nhật về FedCM: API trạng thái đăng nhập qua IdP, Gợi ý đăng nhập và nhiều thông tin khác.

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

  • Bổ sung tính năng hỗ trợ xác thực lại tự động, 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 lần đầ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 xác thực lại đơn giản hơn cho bên bị hạn chế sau lần đồ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, 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 đã có tính năng 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 trên nhiều nguồn gốc được nhúng. Bạn có thể xem ví dụ về iframe trên nhiều nguồn gốc.
  • Đã thêm 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 đến 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 mà RP đã đăng ký trước trên điểm cuối của mã thông báo mã 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 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 mới IdentityCredential thay vì FederatedCredential. Bạn có thể dùng thông tin này để phát hiện tính năng, nhưng thường không phải là một thay đổi lớn.
  • 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.
  • 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().
  • hint không còn là 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 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, bạn cũng không bắt buộc phải thêm URL chính sách quyền riêng tư.
  • Thêm một thông báo trước về việc sử dụng CSP connect-src trong tài liệu này.

Tài nguyên