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 の変更に関する最新情報については、Google のブログまたはニュースレターをご覧ください。

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 に一度ログインする必要があります。この条件は当初、トラッカーが ID プロバイダ(IdP)になりすまし、ブラウザをだまして、ユーザーに気づかれずに同意せずに自動再認証させてしまうリスクを軽減するために導入されました。ただし、この設計では、トラッカーが RP のコンテキストでサードパーティ Cookie にアクセスできる場合、プライバシー保護のメリットを保証できません。FedCM はサードパーティ Cookie を介して可能な機能のサブセットのみを提供するため、トラッカーが RP コンテキストでサードパーティ Cookie にすでにアクセスできる場合、FedCM へのアクセスによって追加のプライバシー リスクは発生しません。
      サードパーティ Cookie の正当な使用があり、条件を緩和することで UX が向上するため、この動作は Chrome 121 から変更されます。Google は、ユーザーを戻りとして扱う条件の制限を緩和することにしました。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 は、自動再認証が行われるか、明示的なメディエーションが発生するたびに、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 サポートが利用可能になりました。埋め込みでは、Permissions-Policy identity-credentials-get を指定して、埋め込まれたクロスオリジン iframe で FedCM API を許可する必要があります。クロスオリジン iframe のをご確認ください。
  • 新しい Chrome フラグ chrome://flags/#fedcm-without-third-party-cookies を追加しました。このフラグを使用すると、サードパーティ Cookie をブロックして、Chrome で FedCM 機能をテストできます。詳しくは、FedCM のドキュメントをご覧ください。

Chrome 108(2022 年 10 月)

  • ドキュメントでは、「トップレベル マニフェスト」は「well-known ファイル」と呼ばれるようになりました。実装の変更は必要ありません。
  • ドキュメントでの「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 の使用に関する注意事項を追加しました。

リソース