FedCM 更新:電腦上的 Multi IdP API、適用於 Android 來源試用的 Chrome Button Mode API 和 Continuation Bundle

Natalia Markoborodova
Natalia Markoborodova

自 Chrome 128 起,Multi-IdP API 會在電腦上開始來源試用,而按鈕模式 API繼續套件則會在 Android 上開始來源試用。有了多個 IdP 功能,開發人員可以在單一 get() 呼叫中指定多個支援的 ID 供應器陣列。Button Mode API 新增了新的 UI。有了按鈕模式 API,即使使用者在 API 呼叫時沒有有效的 IdP 工作階段,身分識別提供者也能使用 FedCM API。接續程序包包含 Continuation API 和 Parameters API,可提供類似 OAuth 授權流程的體驗,包括 IdP 提供的權限對話方塊。套件還包含其他變更,例如欄位 API、多個 configURL 和自訂帳戶標籤。

來源試用:Multi IdP API

這項功能可讓使用者從一系列支援的 IdP 中選擇帳戶,而開發人員則可因此提高登入和註冊率。如果使用者使用多個 IdP 登入,系統會提示他們使用其中一個 IdP 登入 RP。

使用者透過多個 IdP API 登入不同的 IdP。

系統會根據使用者現有的帳戶和相關聯的時間戳記,為 ID 提供者排序。

  • 如果使用者先前已透過特定 IdP 登入 RP (也就是說,他們有「回訪帳戶」),系統會優先列出這些 IdP。
  • 在回訪帳戶中,系統會進一步依最近使用時間戳記排序識別資訊提供者,最近使用的識別資訊提供者會顯示在清單頂端。在某些情況下,Chrome 可能沒有回訪帳戶的時間戳記資料。這可能是因為使用者在 FedCM 實作時間戳記記錄之前登入。這些帳戶會列在有時間戳記的帳戶下方。
  • 如果使用者沒有任何 IdP 的回傳帳戶,系統會遵循 RP 提供的順序。

如果開發人員要求,且有單一回訪帳戶,FedCM 就會允許自動重新驗證。在多個 IdP 的情況下,如果多個 IdP 都有回歸帳戶,使用者就不會自動重新驗證。自動重新驗證功能強烈建議使用回訪帳戶。只有在瀏覽器明確辨識帳戶時,才會啟動自動重新驗證程序。這表示使用者必須先前在這個 RP 上使用 FedCM 的特定帳戶。

如果使用者的登入狀態設為已登出 IdP,則呼叫 FedCM 不會擷取該 IdP 的帳戶。同樣地,如果使用者已登出所有可用的 IdP,系統就不會在小工具模式中自動顯示 FedCM 登入提示。

如果瀏覽器中儲存的 IdP 登入狀態已登入,但擷取要求未傳回任何此 IdP 的帳戶 (例如,如果使用者工作階段已到期,但瀏覽器尚未更新登入狀態),系統會顯示不相符的 UI,建議使用者使用不相符的 IdP 登入。

如果使用者的登入狀態為已登入,但工作階段已逾時,系統會顯示不相符的 UI。

如要進一步瞭解登入狀態,請參閱說明文件。如需更多實作詳細資訊,請參閱開發人員指南

來源試用:Multi IdP API

您可以嘗試使用示範 RP 中的 Multi IdP API,也可以使用 Chrome 128 以上版本嘗試開發人員版本。

以使用者身分試用

以使用者的身分親自體驗。請確認下列項目:

  • Chrome 未設定為封鎖網頁 chrome://settings/content/federatedIdentityApi 上的第三方登入提示。
  • 您已登入多個測試 IdP。按照展示頁面上的指示操作。

請注意,如要在未註冊原始來源試用方案的網站上試用多重 ID 提供者,您必須在 chrome://flags/#fedcm-multi-idp 下啟用功能旗標。

以開發人員身分試用

如果登入服務供應商在 RP 上嵌入了 JavaScript SDK (建議做法),供應商就能實作 navigator.credentials.get() 呼叫,啟用多個 IdP,而 RP 開發人員則不必變更程式碼。否則,RP 需要自行呼叫 FedCM API。

如要在 RP 上測試多個 IdP,請按照下列方式指定支援的供應商陣列:

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);
}

結果物件中的 configURL 屬性會儲存使用者用於驗證的 IdP 設定檔網址。RP 可以決定如何處理產生的 token,因為這會因 IdP 而異。

參與來源試用

來源試用計畫可讓您試用新功能,並針對其可用性、實用性和成效提供意見回饋。詳情請參閱「開始使用原點試播功能」。

您可以註冊 Chrome 128 以上版本的原點試用版,試用多重 IdP 功能。

如要試用多個 IdP,RP 可以註冊其來源,並執行第一方來源測試。IdP 也可以註冊第三方來源測試,並讓所有使用 Javascript SDK 的 RP 都能使用多個 IdP 功能。

參與來源試用測試的步驟:

  1. 前往 Multi IdP API 來源試用計畫的註冊頁面
  2. 按一下「註冊」按鈕,然後填寫表單,即可索取權杖。
  3. 如要註冊第一方來源試用,請在「網站來源」欄位中輸入 RP 的來源。如要進行第三方來源測試,請輸入 IdP 的 JavaScript SDK 來源,然後勾選「第三方比對」方塊。
  4. 按一下「提交」
  5. 在 RP 頁面上提供已核發的權杖:
    • 適用於 1P 來源試用計畫參與者:
      • 做為 <head> 中的中繼標記:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • 做為 HTTP 標頭:Origin-Trial: TOKEN_GOES_HERE
    • 第三方來源試用計畫參與者:
      • 透過程式輔助方式提供權杖。

Android 版 Chrome 的按鈕模式 API

從 Chrome 第 128 版開始,Button Mode API 的來源試用將在 Android 版 Chrome 上開始,這是繼電腦版試用後的後續動作。透過按鈕模式 API,即使使用者在 API 呼叫時已登出 IdP,識別資訊提供者仍可使用 FedCM API。登入流程是由使用者手勢啟動,更能反映使用者的意圖。

Chrome 128 推出了新功能,讓 IdP 可直接在用戶端中繼資料端點回應中加入 RP 的官方標誌圖示。這項功能可改善行動裝置在按鈕模式下的使用者介面。

與設定檔中的 IdP 品牌相同,RP 的圖示可以在 IdP 端設定,並在 client_metadata_endpoint 回應中傳回,如下所示:

  "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
   }]
IdP 和 RP 的標誌圖示。
在行動版揭露資訊使用者介面中,IdP 和 RP 的標誌圖示。

如要進一步瞭解圖示支援功能,請參閱開發人員說明文件

如果使用者尚未登入,FedCM 會透過 Chrome 自訂分頁 (CCT) 提示使用者使用 IdP 提供的 login_url 登入 IdP。

使用者透過行動裝置上的按鈕模式登入。

如果使用者使用回訪帳戶重新驗證,系統就不會顯示揭露資訊 UI。

使用者登入已使用的帳戶。不會顯示揭露事項 UI。

如要註冊來源試用,請參閱 電腦上的 Button Mode API 說明。如果您已在電腦上註冊原始試用版,則從 Chrome 128 開始,Android 版 Chrome 也會自動提供這項功能。

Android 版 Chrome 的接續 API 套件

從 Chrome 第 128 版開始,Continuation API 套件將在 Android 版 Chrome 的來源試用中提供,這是在電腦上進行初步試驗後的後續測試。這個套件包含多項 FedCM 功能,包括 Continuation APIParameters APIFields APIMultiple configURLsCustom Account Labels

Continuation API 可啟用多步驟登入流程。Parameters API 可讓您將其他參數傳遞至 IdP。Fields API 可讓 RP 在 FedCM 對話方塊中,為揭露資訊 UI 要求特定帳戶屬性。此外,多個 configURL 可支援 IdP 的多個設定檔,而自訂帳戶標籤可讓 IdP 為帳戶加上註解,讓 RP 可依據這些標籤篩選帳戶。

如要進一步瞭解 Continuation API 套件,請參閱有關 電腦版 Continuation API 套件的網誌文章。如要註冊原生試用版,請按照這些操作說明操作。如果你已在電腦上註冊原始試用版,則從 Chrome 128 開始,Android 版 Chrome 也會自動提供這些功能。

互動及分享意見回饋

如有任何意見或問題,請回報問題。我們會持續更新標準 FedCM 開發人員指南,以及累積的更新記錄頁面