Thông tin cập nhật về FedCM: API Nhiều nhà cung cấp danh tính trên máy tính, API Chế độ nút và Gói tiếp tục dành cho Chrome trên bản dùng thử theo nguyên gốc Android

Natalia Markoborodova
Natalia Markoborodova

Kể từ Chrome 128, Multi-IdP API sẽ bắt đầu một giai đoạn dùng thử theo nguyên gốc trên máy tính, còn Button Mode APIContinuation bundle sẽ bắt đầu một giai đoạn dùng thử theo nguyên gốc trên Android. Với tính năng Multi IdP, nhà phát triển có thể chỉ định một mảng gồm nhiều nhà cung cấp danh tính được hỗ trợ trong một lệnh gọi get() duy nhất. Button Mode API (API Chế độ nút) thêm một giao diện người dùng mới. Với Button Mode API, nhà cung cấp danh tính có thể sử dụng FedCM API ngay cả khi người dùng không có phiên IdP đang hoạt động khi gọi API. Gói Continuation bao gồm Continuation API và Parameters API, cho phép trải nghiệm tương tự như quy trình uỷ quyền OAuth liên quan đến hộp thoại cấp quyền do IdP cung cấp. Gói này cũng bao gồm các thay đổi khác như Fields API, Multiple configURL và Nhãn tài khoản tuỳ chỉnh.

Bản dùng thử theo nguyên gốc: Multi IdP API

Tính năng này cho phép người dùng chọn một tài khoản trong số các IdP được hỗ trợ và các RP sẽ được hưởng lợi từ tỷ lệ đăng nhập và đăng ký cao hơn. Nếu người dùng đăng nhập bằng nhiều IdP, họ sẽ được nhắc đăng nhập vào RP bằng một trong các IdP.

Người dùng đang đăng nhập bằng nhiều IdP thông qua API nhiều IdP.

IdP được ưu tiên dựa trên tài khoản hiện có của người dùng và dấu thời gian được liên kết.

  • Nếu người dùng đã đăng nhập vào RP bằng một IdP cụ thể (tức là họ có "tài khoản cũ"), thì những IdP đó sẽ được liệt kê trước.
  • Trong số các tài khoản trả về, IdP được sắp xếp thêm theo dấu thời gian sử dụng gần đây nhất, với IdP được sử dụng gần đây nhất xuất hiện ở đầu danh sách. Trong một số trường hợp, Chrome có thể không có dữ liệu dấu thời gian cho một tài khoản truy cập lại. Nguyên nhân có thể là do người dùng đã đăng nhập trước khi nhật ký dấu thời gian được triển khai trong FedCM. Những tài khoản này được liệt kê bên dưới những tài khoản có dấu thời gian.
  • Nếu người dùng không có tài khoản nào đang hoạt động với bất kỳ IdP nào, thì thứ tự do RP cung cấp sẽ được tuân thủ.

FedCM cho phép tự động xác thực lại nếu nhà phát triển yêu cầu và nếu có một tài khoản duy nhất được trả về. Trong trường hợp Multi IdP, nếu có các tài khoản trả về cho nhiều IdP, thì người dùng sẽ không được xác thực lại tự động. Việc có tài khoản đang hoạt động là một yêu cầu bắt buộc để tự động xác thực lại. Trình duyệt sẽ chỉ bắt đầu xác thực lại tự động khi trình duyệt đã nhận dạng rõ ràng tài khoản. Điều này ngụ ý rằng người dùng phải đã sử dụng FedCM với tài khoản cụ thể này trên RP này.

Nếu trạng thái đăng nhập của người dùng được đặt thành đã đăng xuất cho một IdP, thì việc gọi FedCM sẽ không tìm nạp tài khoản cho IdP đó. Tương tự, nếu trạng thái của người dùng là đã đăng xuất đối với tất cả IdP có sẵn, thì lời nhắc đăng nhập FedCM sẽ không tự động xuất hiện ở chế độ tiện ích.

Nếu trạng thái đăng nhập được lưu trong trình duyệt cho một IdP là đã đăng nhập, nhưng không có tài khoản nào cho IdP này được yêu cầu tìm nạp trả về (ví dụ: nếu phiên người dùng đã hết hạn, nhưng trình duyệt chưa cập nhật trạng thái đăng nhập), thì giao diện người dùng không khớp sẽ xuất hiện cho IdP, đề xuất người dùng đăng nhập bằng IdP không khớp.

Khi người dùng đang đăng nhập nhưng phiên đã hết hạn, giao diện người dùng không khớp sẽ xuất hiện.

Để biết thêm thông tin về trạng thái đăng nhập, hãy xem tài liệu. Hãy xem hướng dẫn dành cho nhà phát triển để biết thêm thông tin chi tiết về cách triển khai.

Bản dùng thử theo nguyên gốc: Multi IdP API

Bạn có thể dùng thử Multi IdP API với tư cách là người dùng trên RP minh hoạ hoặc với tư cách là nhà phát triển sử dụng Chrome 128 trở lên.

Dùng thử với tư cách là người dùng

Hãy tự mình dùng thử với tư cách là người dùng. Đảm bảo rằng:

  • Chrome chưa được định cấu hình để chặn lời nhắc đăng nhập của bên thứ ba trên trang: chrome://settings/content/federatedIdentityApi.
  • Bạn đã đăng nhập vào nhiều IdP minh hoạ. Làm theo hướng dẫn trên trang minh hoạ.

Xin lưu ý rằng để dùng thử Multi-IdP trên những trang web có nguồn gốc chưa được đăng ký cho bản dùng thử nguồn gốc, bạn cần bật cờ tính năng trong chrome://flags/#fedcm-multi-idp.

Dùng thử với vai trò là nhà phát triển

Nếu nhà cung cấp dịch vụ đăng nhập có SDK Javascript được nhúng trên RP (nên dùng), thì nhà cung cấp có thể triển khai lệnh gọi navigator.credentials.get() để bật nhiều IdP và nhà phát triển RP không cần thay đổi mã của họ. Nếu không, RP cần tự gọi FedCM API.

Để kiểm thử Multi IdP trên một RP, hãy chỉ định mảng nhà cung cấp được hỗ trợ như sau:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

Thuộc tính configURL trong đối tượng kết quả lưu trữ URL của tệp cấu hình cho IdP mà người dùng đã xác thực. RP có thể xác định cách xử lý token kết quả vì token này khác nhau tuỳ thuộc vào IdP.

Tham gia dùng thử ban đầu

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 sử dụng, tính thực tế và hiệu quả của các tính năng đó. Để biết thêm thông tin, hãy xem bài viết Bắt đầu sử dụng các thử nghiệm nguồn gốc.

Bạn có thể dùng thử tính năng Multi IdP bằng cách đăng ký dùng thử nguồn gốc bắt đầu từ Chrome 128.

Để dùng thử Multi IdP, RP có thể đăng ký nguồn gốc của họ và chạy thử nguồn gốc của bên thứ nhất. Ngoài ra, IdP cũng có thể đăng ký thử nghiệm nguồn gốc bên thứ ba và sử dụng tính năng Nhiều IdP cho tất cả các RP của họ bằng cách sử dụng SDK Javascript.

Các bước tham gia dùng thử ban đầu:

  1. Chuyển đến trang đăng ký dùng thử Multi IdP API ban đầu. 2. Nhấp vào nút Đăng ký và điền thông tin vào biểu mẫu để yêu cầu mã thông báo.
  2. Để đăng ký dùng thử nguồn gốc của bên thứ nhất, hãy nhập nguồn gốc của RP vào trường "Nguồn gốc trên web". Đối với thử nghiệm nguồn gốc bên thứ ba, hãy nhập nguồn gốc của SDK JavaScript của IdP và đánh dấu vào hộp "So khớp bên thứ ba".
  3. Nhấp vào Gửi.
  4. Cung cấp mã thông báo đã phát hành trên trang RP:
    • Đối với những người tham gia dùng thử nguồn gốc bên thứ nhất: – Dưới dạng thẻ meta trong <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE"> – Dưới dạng tiêu đề HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Đối với những người tham gia dùng thử nguồn gốc bên thứ ba: – Bằng cách cung cấp mã thông báo theo phương thức lập trình.

Button Mode API cho Chrome trên Android

Từ Chrome phiên bản 128, bản dùng thử theo nguyên gốc của Button Mode API sẽ bắt đầu trên Chrome trên Android, sau bản dùng thử ban đầu trên máy tính. Với Button Mode API, nhà cung cấp danh tính có thể sử dụng FedCM API ngay cả khi người dùng đã đăng xuất khỏi IdP khi gọi API. Luồng đăng nhập được bắt đầu bằng một cử chỉ của người dùng, giúp phản ánh rõ hơn ý định của người dùng.

Trong Chrome 128, một tính năng mới được ra mắt cho phép IdP đưa biểu tượng logo chính thức của RP ngay trong phản hồi điểm cuối siêu dữ liệu của ứng dụng khách. Điều này giúp cải thiện giao diện người dùng trên thiết bị di động ở chế độ nút.

Tương tự như thương hiệu IdP trong tệp cấu hình, bạn có thể định cấu hình các biểu tượng của RP ở phía IdP và trả về trong phản hồi client_metadata_endpoint như sau:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Biểu tượng biểu trưng của IdP và RP.
Biểu tượng biểu trưng của IdP và RP trong giao diện người dùng công bố trên thiết bị di động.

Để tìm hiểu thêm về tính năng hỗ trợ biểu tượng, hãy xem tài liệu dành cho nhà phát triển.

Nếu người dùng chưa đăng nhập, FedCM sẽ nhắc người dùng đăng nhập vào IdP bằng login_url do IdP cung cấp thông qua Thẻ Chrome tuỳ chỉnh (CCT).

Nếu người dùng đang xác thực lại bằng một tài khoản cũ, thì giao diện người dùng thông tin công bố sẽ không xuất hiện.

Người dùng đang đăng nhập bằng một tài khoản cũ. Giao diện người dùng thông tin công bố không xuất hiện.

Để đăng ký dùng thử nguồn gốc, hãy xem hướng dẫn về Button Mode API trên máy tính. Nếu bạn đã đăng ký dùng thử theo nguyên gốc trên máy tính, thì tính năng này sẽ tự động có sẵn cho bạn trên Chrome trên Android kể từ Chrome 128.

Gói Continuation API cho Chrome trên Android

Kể từ Chrome phiên bản 128, gói Continuation API sẽ có sẵn cho Chrome trên Android trong một thử nghiệm theo nguyên gốc, sau thử nghiệm ban đầu trên máy tính. Gói này bao gồm nhiều tính năng FedCM, trong đó có Continuation API, Parameters API, Fields API, Multiple configURLsCustom Account Labels.

Continuation API cho phép quy trình đăng nhập nhiều bước. API Tham số cho phép truyền các tham số bổ sung đến IdP. Fields API cho phép RP yêu cầu các thuộc tính tài khoản cụ thể cho giao diện người dùng công bố trong hộp thoại FedCM. Ngoài ra, Multiple configURL hỗ trợ nhiều tệp cấu hình cho một IdP và Nhãn tài khoản tuỳ chỉnh cho phép IdP chú thích tài khoản để RP có thể lọc các tài khoản theo những nhãn này.

Để tìm hiểu thêm về gói Continuation API, hãy xem bài đăng trên blog về gói Continuation API trên máy tính. Để đăng ký thử nghiệm nguồn gốc, hãy làm theo hướng dẫn này. Nếu bạn đã đăng ký dùng thử theo nguyên gốc trên máy tính, thì các tính năng này sẽ tự động có sẵn cho bạn trên Chrome cho Android kể từ Chrome 128.

Tương tác và chia sẻ ý kiến phản hồi

Nếu có ý kiến phản hồi hoặc gặp phải vấn đề, bạn có thể báo cáo vấn đề. Chúng tôi sẽ luôn cập nhật hướng dẫn chính thức dành cho nhà phát triển FedCM, cùng với trang nhật ký cập nhật tích luỹ.