Federated Credential Management API の更新

Federated Credential Management API は Chrome 108 でリリースされていますが、今後も進化していくことが予想されます。互換性のない変更は予定されていません。

これらの更新は、

以下の条件に該当する場合は、この更新が適用されます。

この API を初めて検討する場合や、まだ試してみていない場合は、Federated Credential Management API の概要をご覧ください。

変更履歴

FedCM API の変更に関する最新情報については、ブログまたはニュースレターをご覧ください。

Chrome 132(2024 年 11 月)

Chrome 131(2024 年 10 月)

Chrome 125(2024 年 4 月)

Chrome 123(2024 年 2 月)

  • Domain Hint API のサポートを追加しました。Domain Hint API を使用すると、RP は FedCM API 呼び出しで domainHint プロパティを指定して、ユーザーに一致するアカウントのみを表示できます。

Chrome 122(2024 年 1 月)

  • Disconnect API のサポートを追加しました。Disconnect API を使用すると、RP はサードパーティ Cookie に依存することなく、ユーザーを IdP のアカウントから切断できます。
  • RP と IdP が同じサイトにある場合、/.well-known/web-identity のチェックがスキップされるようになりました。
  • サブリソースで同じサイトのログイン ステータスを設定できるようになりました。

Chrome 121(2023 年 12 月)

  • FedCM の自動再認証をトリガーするための緩和された条件:
    • FedCM の自動再認証機能は、ユーザーが再びアクセスしたときにのみトリガーされます。つまり、自動再認証をトリガーするには、ユーザーがブラウザ インスタンスごとに FedCM を使用して RP に 1 回ログインする必要があります。この条件は、トラッカーが ID プロバイダ(IdP)を装い、ユーザーの認識や同意なしにブラウザを騙してユーザーの自動再認証を誘発するリスクを軽減するために導入されました。ただし、トラッカーが RP コンテキストでサードパーティ Cookie にアクセスできる場合、この設計ではプライバシー上のメリットを保証できません。FedCM は、サードパーティ Cookie で利用可能な機能のサブセットのみを提供します。そのため、トラッカーがすでに RP コンテキストでサードパーティ Cookie にアクセスしている場合、FedCM へのアクセスによってプライバシー リスクが増加することはありません。
      サードパーティ Cookie には正当な用途があり、条件を緩和することで UX が向上するため、Chrome 121 からこの動作が変更されます。ユーザーをリピーターとして扱う条件の制限を緩和することにしました。RP コンテキストで IdP がサードパーティ Cookie を使用できる場合、Chrome は approved_clients リストで指定されたユーザーのアカウント ステータスに関する IdP のクレームを信頼し、該当する場合は自動再認証をトリガーします。サードパーティ Cookie は、ユーザー設定、エンタープライズ ポリシー、ヒューリスティクス(SafariFirefoxChrome)、その他のウェブ プラットフォーム API(Storage Access API など)で使用できます。今後、IdP がサードパーティ Cookie へのアクセス権を失った場合、ユーザーが FedCM UI で明示的に権限を付与したことがない([Continue as] ボタンをクリックしたなど)場合、そのユーザーは引き続き新規ユーザーとして扱われます。
      デベロッパー側で必要な対応はありません。この変更により、IdP がサードパーティ Cookie にアクセスでき、ユーザーが過去に RP でアカウントを作成したことを主張している場合、自動再認証フローによりトリガーされる可能性が高くなります。

Chrome 120(2023 年 11 月)

  • Chrome 120 で、次の 3 つの機能のサポートを追加しました。
    • Login Status API: Login Status API は、ウェブサイト(特に IdP)がユーザーのログイン ステータスをブラウザに通知するメカニズムです。この API を使用すると、ブラウザは IdP への不要なリクエストを減らし、潜在的なタイミング攻撃を軽減できます。Login Status API は FedCM の要件です。この変更により、サードパーティ Cookie がブロックされている場合に FedCM を有効にするために chrome://flags/#fedcm-without-third-party-cookies フラグが必要ではなくなりました。
    • Error API: Error API は、IdP から提供されたエラー情報を含むブラウザ UI を表示して、ユーザーに通知します。
    • Auto-Selected Flag API: Auto-Selected Flag API は、自動再認証または明示的なメディエーションが発生したときに、[Continue as] ボタンをタップして明示的なユーザー権限が取得されたかどうかを IdP と RP の両方と共有します。共有は、IdP と RP の通信に対してユーザーの許可が付与された後にのみ行われます。

Chrome 117(2023 年 9 月)

Chrome 116(2023 年 8 月)

  • Chrome 116 で、次の 3 つの機能のサポートを追加しました。
    • Login Hint API: ログインする優先ユーザー アカウントを指定します。
    • User Info API: リピーターの情報を取得して、ID プロバイダ(IdP)が iframe 内にパーソナライズされたログインボタンをレンダリングできるようにします。
    • RP Context API: FedCM ダイアログで「ログイン」とは異なるタイトルを使用します。
  • IdP Sign-In Status API のオリジン トライアルが利用可能になりました。詳しくは、FedCM の更新: IdP Sign-In Status API、ログイン ヒントなどをご覧ください。

Chrome 115(2023 年 6 月)

  • FedCM を使用して最初の認証後にユーザーが戻ってきたときに自動的に再認証できるように、自動再認証のサポートを追加しました。これにより、ユーザー エクスペリエンスが向上し、最初の認証後に RP に対する再認証をより効率的に行うことができます。詳しくは、FedCM の自動再認証をご覧ください。

Chrome 110(2023 年 2 月)

  • ID アサーション エンドポイントの場合、IdP は(Referer ヘッダーではなく)Origin ヘッダーをチェックし、値がクライアント ID のオリジンと一致するかどうかを確認する必要があります。
  • FedCM のクロスオリジン iframe サポートが利用可能になりました。埋め込み元は、埋め込まれたクロスオリジン iframe で FedCM API を許可するように Permissions-Policy identity-credentials-get を指定する必要があります。クロスオリジン iframe のを確認できます。
  • 新しい Chrome フラグ chrome://flags/#fedcm-without-third-party-cookies を追加しました。このフラグを使用すると、サードパーティ Cookie をブロックして、Chrome で FedCM 機能をテストできます。詳しくは、FedCM のドキュメントをご覧ください。

Chrome 108(2022 年 10 月)

  • ドキュメント内の「トップレベル マニフェスト」が「well-known file」に変更されました。実装の変更は必要ありません。
  • ドキュメント内の「IdP マニフェスト」が「構成ファイル」に変更されました。実装の変更は必要ありません。
  • 「config ファイル」の id_token_endpoint の名前が id_assertion_endpoint に変更されました。
  • IdP へのリクエストに、Sec-FedCM-CSRF: ?1 ヘッダーではなく Sec-Fetch-Dest: webidentity ヘッダーが含まれるようになりました。

Chrome 105(2022 年 8 月)

  • 重要なセキュリティ情報をドキュメントに追加しました。ID プロバイダ(IdP)は、Referer ヘッダーが、ID トークン エンドポイントで事前に登録された RP のオリジンと一致しているかどうかを確認する必要があります。
  • 最上位のマニフェストの名前が /.well-known/fedcm.json から /.well-known/web-identity に変更され、provider_urls で指定された URL にファイル名が含まれるようになりました。
  • FederatedCredential インスタンスのメソッド login()logout()revoke() は使用できなくなりました。
  • Federated Credential Management API で、FederatedCredential ではなく新しい型 IdentityCredential が使用されるようになりました。これは特徴検出に使用できますが、それ以外の場合はほとんど目に見えない変更です。
  • ログイン機能を navigator.credentials.get()FederatedCredential.prototype.login() の組み合わせから navigator.credentials.get() に移動しました。
  • マニフェストの失効エンドポイントが有効でなくなった。
  • navigator.credentials.get() 呼び出しでは、federated フィールドではなく identity フィールドを使用します。
  • urlconfigURL に変更され、navigator.credentials.get() 呼び出しのパスではなく、マニフェスト JSON ファイルの完全な URL にする必要があります。
  • noncenavigator.credentials.get() の省略可能なパラメータになりました。
  • hintnavigator.credentials.get() のオプションとして使用できなくなりました。
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104(2022 年 6 月)

Chrome 103(2022 年 5 月)

  • デスクトップ環境をサポートします。
  • デスクトップで RP ごとの設定をサポート。
  • クライアント メタデータ エンドポイントがオプションになりました。このエンドポイントでは、プライバシー ポリシーの URL も省略可能です。
  • ドキュメントに CSP connect-src の使用に関する注意事項を追加しました。

リソース