Federated Credential Management API の更新

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

この更新の対象者は誰ですか?

これらの更新は、次の場合に適しています。

  • Federated Credential Management API を使用する IdP である。
  • IdP または RP であり、ユースケースに合わせて API を拡張することに関心がある(たとえば、FedID CG リポジトリに関するディスカッションを観察したり参加したりしていて、API に加えられた変更を把握したいなど)。
  • あなたはブラウザ ベンダーで、API の実装ステータスを確認したいと考えています。

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

変更履歴

FedCM API の変更に関する最新情報を受け取るには、ニュースレターにご登録ください。

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 の自動再認証機能は、ユーザーが戻ってきた場合にのみトリガーされます。つまり、ユーザーは自動再認証をトリガーする前に、ブラウザ インスタンスごとに 1 回 FedCM を使用して RP にログインする必要があります。この条件は当初、トラッカーが 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 で明示的に権限を付与していない場合([次の名前とメールアドレスで続行] ボタンをクリックするなど)、そのユーザーは引き続き新しいユーザーとして扱われます。
      デベロッパー様によるご対応は必要ございません。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 は、自動再認証または明示的なメディエーションが行われたたびに、IdP と RP の両方で [Continue as] ボタンをタップして明示的なユーザー権限が取得されたかどうかを共有します。共有は、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 マニフェスト」は「構成ファイル」という名称に変更されました。実装を変更する必要はありません。
  • 「構成ファイル」内の 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 の使用に関する注意事項を追加しました。

リソース