プライバシーを保護した ID 連携のウェブ API です。
FedCM とは何ですか?
FedCM(Federated Credential Management)は、サードパーティ Cookie やナビゲーション リダイレクトに依存しない、ID 連携サービス(「~でログイン」など)へのプライバシーを保護したアプローチです。
実装ステータス
- Chrome 平台状态
- Chrome 108 中已提供 FedCM。
- FedCM 提案可供公开讨论。
- 其他浏览器尚不支持 FedCM。
- Mozilla 正在实现 Firefox 的原型,并且 Apple 已表示对就 FedCM 提案展开合作的普遍支持和兴趣。
今後、Google は ID プロバイダ(IdP)、リレーリング パーティ(RP)、ブラウザ ベンダーから寄せられたフィードバックに基づいて、いくつかの新機能を導入する予定です。アイデンティティ プロバイダが FedCM を採用することをおすすめしますが、FedCM はまだ開発中の API であることをご承知おきください。
下位互換性のない変更をデプロイする際の課題を最小限に抑えるために、ID プロバイダには次の 2 つの推奨事項があります。
- ニュースレターに登録すると、API の進化に伴う最新情報をお送りします。
- Google は、API が成熟するまでの間、IdP が JavaScript SDK を使用して FedCM API を配布し、RP が SDK をセルフホストしないようにすることを推奨しています。これにより、すべてのリレーリング パーティに再デプロイを依頼することなく、API の進化に合わせて IdP が変更を加えることができます。
FedCM が必要な理由
過去 10 年間、ID 連携は、サイトごとのユーザー名とパスワードと比較して、信頼性、使いやすさ(パスワード不要のシングル サインオンなど)、セキュリティ(フィッシングや認証情報の不正使用攻撃に対する耐性の向上など)の点で、ウェブでの認証の基準を引き上げるうえで中心的な役割を果たしてきました。
ID 連携では、RP(リレーリング パーティ)は IdP(ID プロバイダ)に依存して、新しいユーザー名とパスワードを要求せずにユーザーにアカウントを提供します。
残念ながら、ID 連携が依存しているメカニズム(iframe、リダイレクト、Cookie)は、ウェブ全体でユーザーを追跡するために積極的に悪用されています。ユーザー エージェントは ID 連携とトラッキングを区別できないため、さまざまな種類の不正行為を軽減すると、ID 連携のデプロイが難しくなります。
Federated Credentials Management API(FedCM)は、ユーザーが IdP からアカウントを選択してウェブサイトにログインできるブラウザ メディエーション ダイアログを公開することで、ウェブ上のフェデレーション ID フローのユースケース固有の抽象化を提供します。
FedCM は、ウェブ上の ID を改善するための複数のステップからなる取り組みです。最初のステップでは、サードパーティ Cookie の制限が連携 ID に与える影響を軽減することに重点を置いています(その他のステップについては、ロードマップ セクションをご覧ください)。
影響を受けると予想されるもの
コミュニティの取り組みと Google の調査により、サードパーティ Cookie の制限の影響を受ける、ID 連携に関連する統合がいくつかあることが判明しました。
- OpenID Connect フロントチャネル ログアウト
- OpenID Connect セッション管理
- iframe ベースのバックグラウンド トークンの更新
- iframe ベースのログイン ウィジェット
FedCM の最初の目標は、サードパーティ Cookie の制限が ID 連携に及ぼす影響を軽減することです。影響を受けると予想される領域は次のとおりです。ここに記載されていないユースケースがある場合は、フィードバックをお寄せください。
他の API の信頼シグナルとしての FedCM
FedCM は、フェデレーション ID の処理に加えて、他のプライバシー サンドボックス API の信頼シグナルとしても機能します。
Chrome 131 以降、Storage Access API(SAA)は、FedCM を信頼シグナルとして使用します。この統合は、認証に FedCM と SAA の両方に依存し、クロスオリジン iframe が必要なストレージにアクセスできるようにするウェブサイトに役立ちます。
ユーザーが RP のオプトインで FedCM で認証すると、RP のウェブサイトに埋め込まれた IdP のコンテンツは requestStorageAccess()
メソッドを呼び出して、追加のユーザー プロンプトを必要とせずに、独自のトップレベル Cookie へのストレージ アクセスを自動的に取得できます。この権限は、ユーザーが FedCM でログインしていて、FedCM のログイン状態が有効である場合にのみ自動的に付与されます。詳細については、Storage Access API のドキュメントをご覧ください。
FedCM の対象ユーザー
FedCM は、以下の条件がすべて該当する場合にのみ役立ちます。
- ID プロバイダ(IdP)である。
- サードパーティ Cookie の制限の影響を受けています。
- RP はサードパーティのサイトです。RP が関連性の高いサイトである場合は、関連するウェブサイト セットの方が適している可能性があります。
IdP である
FedCM では、ID プロバイダのサポートが必要です。信頼する当事者は、FedCM を単独で使用できません。RP の場合は、IdP に手順を尋ねることができます。
サードパーティ Cookie の制限の影響を受けている
FedCM は、現在の統合がサードパーティ Cookie の制限の影響を受けている場合にのみ使用してください。
サードパーティ Cookie を使用できない場合でも ID 連携が引き続き機能するかどうか不明な場合は、Chrome でサードパーティ Cookie をブロックして、ウェブサイトへの影響をテストできます。
サードパーティ Cookie を使用せずに ID 連携に検出可能な影響がない場合は、FedCM を使用せずに現在の統合を引き続き使用できます。
何を確認すればよいかわからない場合は、サードパーティ Cookie の制限が影響すると予想される既知の機能についてご確認ください。
RP がサードパーティである
RP が IdP とファーストパーティの関係にある ID プロバイダの場合は、関連するウェブサイト セットの方が適している可能性があります。関連ウェブサイト セット(RWS)は、組織がサイト間の関係を宣言して、ブラウザが制限されているサードパーティ Cookie の特定の目的でのアクセスを許可できるようにする方法です。これにより、サードパーティ Cookie が制限されている場合でも、関連性の高いサイトのセット間でサードパーティ Cookie を機能させることができます。
ユーザーは FedCM をどのように操作しますか?
FedCM の主な目的は、サードパーティ Cookie の制限による影響を軽減することです。ユーザーは Chrome のユーザー設定で FedCM を有効または無効にできます。
FedCM はプロトコルに依存しないよう設計されており、次の認証関連機能を提供します。
デモでその仕組みをご確認ください。
利用者側の事業者にログインする
FedCM には次の 2 つの UI モードがあります。
パッシブ モード。パッシブ モードでは、FedCM プロンプトを表示するためにユーザー操作は必要ありません。ユーザーがリレーリング パーティ(RP)のウェブサイトにアクセスすると、navigator.credentials.get()
が呼び出され、ユーザーが IdP にログインしている場合に、FedCM ログイン ダイアログが表示されることがあります。
アクティブ モード。アクティブ モードでは、FedCM プロンプトをトリガーするにはユーザー操作(ボタンのクリックなど)が必要です。
ユーザーが IdP で RP のアカウントを持っていない場合は、登録ダイアログが表示され、RP の利用規約やプライバシー ポリシー(提供されている場合)などの追加の開示テキストが表示されます。
ユーザーは [... として続行] をタップしてログインを完了できます。成功すると、ユーザーが IdP を使用して RP に連携アカウントを作成したことがブラウザに保存されます。
RP は、FedCM をサポートしていないブラウザでも動作することが想定されています。ユーザーは、そのようなブラウザで FedCM 以外の既存のログイン プロセスを使用できる必要があります。詳しくは、FedCM でのログインの仕組みをご覧ください。
FedCM を有効または無効にする設定
ユーザーは、パッシブ モードで FedCM を有効または無効にできます。ログイン リクエストはユーザーの操作によって開始されるため、アクティブ モードには影響しません。ブラウザはユーザーがログインフローを完了できるようにする必要があります。
パソコン
パソコン版 Chrome の FedCM は、chrome://settings/content/federatedIdentityApi
で有効または無効にできます。
Android
Android 版 Chrome で FedCM を有効または無効にするには、Chrome の [設定] > [サイトの設定] > [サードパーティのログイン] に移動し、切り替えボタンを変更します。
プロンプトのクールダウン期間
ユーザーが UI を手動で閉じると、エントリが設定 UI に一時的に追加され、同じウェブサイトに UI が表示されなくなる期間が設定されます。期間が経過すると UI は再度有効になりますが、連続して閉じるとその期間は指数関数的に延長されます。たとえば、Chrome では次のようになります。
連続して閉鎖された回数 | FedCM プロンプトが抑制される期間 |
---|---|
1 | 2 時間 |
2 | 1 日 |
3 | 1 週間 |
4+ | 4 週間 |
他のブラウザでは、独自のクールダウン期間が定義されている場合があります。
ユーザーは、設定ページに移動するか、PageInfo UI(URL バーの横にある鍵アイコン)をクリックして権限をリセットすることで、RP で FedCM を手動で再度有効にできます。
ロードマップ
現在、FedCM にいくつかの変更を加えています。詳しくは、最新情報をご覧ください。
- 変更ログ: Federated Credential Management API の更新。
まだ解決すべき問題がいくつかあります。たとえば、IdP、RP、ブラウザ ベンダーから報告された問題などです。Google は、これらの問題を解決する方法があることを確認しています。
- クロスオリジン iframe のサポート: IdP は、クロスオリジン iframe 内から FedCM を呼び出すことができます(更新)。
- パーソナライズされたボタン: IdP は、IdP が所有するクロスオリジン iframe 内から、ログインボタンにリピーター ユーザーの ID を表示できます(更新)。
- 指標エンドポイント: IdP にパフォーマンス指標を提供します。
また、現在解決されていない問題もいくつかあります。たとえば、評価またはプロトタイプ作成中の特定の提案などです。
- CORS: Apple と Mozilla と協議して、FedCM フェッチの仕様を改善しています。
- Multiple-IdP API: 連携型の FedCM アカウント選択ツールで複数の IdP をサポートする方法を検討しています。
- IdP Sign-in Status API: Mozilla はタイミング攻撃の問題を特定しました。Google は、この問題を軽減するために、IdP が事前にユーザーのログイン ステータスをブラウザに通知する方法を検討しています。(更新)
- Sign in to IdP API: さまざまなシナリオをサポートするため、ユーザーが IdP にログインしていない場合、ブラウザはユーザーが RP を離れることなくログインできる UI を提供します。
最後に、Mozilla、Apple、TAG 審査担当者からのフィードバックに基づき、まだ行う必要があると Google が考えることがあります。Google は、以下の未解決の問題に対する最適なソリューションの評価に取り組んでいます。
- ユーザーの理解と意図の一致を改善する: Mozilla が指摘したように、Google は引き続き、さまざまな UX の定式化とサーフェス領域、トリガー条件を検討していきます。
- ID 属性と選択的な開示: TAG 審査担当者からのコメントにもあるように、Google は、ID 属性(メールアドレス、年齢層、電話番号など)をある程度選択的に共有するメカニズムを提供したいと考えています。
- プライバシー プロパティの向上: Mozilla が標準に関する立場で提案したように、Google は、IdP の匿名化や指向型識別子など、プライバシーの保証を強化するメカニズムを継続的に検討していきます。
- WebAuthn との関係: Apple が提案したように、パスキーの進展を楽しみにしています。また、FedCM、パスワード、WebAuthn、WebOTP の間で整合性のあるエクスペリエンスを提供できるよう取り組んでいます。
- ログイン ステータス: Apple がプライバシー CG の ログイン ステータス API で提案したように、ユーザーのログイン ステータスは、ブラウザが十分な情報に基づいて判断するのに役立つ有用な情報であるという考えに Google も賛同しています。この情報からどのような機会が生まれるか楽しみです。(更新)
- エンタープライズと教育: FedID CG で明らかなように、フロントチャネル ログアウト(IdP が RP にログアウト シグナルを送信する機能)や SAML のサポートなど、FedCM で十分にサポートされていない多くのユースケースがまだあります。
- mDL / VC などとの関係: Mobile Document Request API などを使用して、これらの機能が FedCM にどのように適合するかを理解するための作業を継続します。
FedCM API を使用する
FedCM を使用するには、Chrome の IdP と RP の両方で安全なコンテキスト(HTTPS または localhost)が必要です。
FedCM と統合するには、アカウントリスト、アサーションの発行、(必要に応じて)クライアント メタデータ用の well-known ファイル、構成ファイル、エンドポイントを作成する必要があります。そこから、FedCM は、RP が IdP でログインするために使用できる JavaScript API を公開します。
FedCM API の使用方法については、FedCM デベロッパー ガイドをご覧ください。
意見交換とフィードバックの提供
- GitHub: 説明を読み、問題を報告し、ディスカッションに参加してください。
- デベロッパー サポート: プライバシー サンドボックス デベロッパー サポート リポジトリで質問や意見交換を行えます。
e プライバシー法の遵守
FedCM を IdP または RP として使用すると、ユーザーの端末機器に情報の保存や、すでに保存されている情報へのアクセスが行われます。そのため、欧州経済領域(EEA)と英国では、通常ユーザーの同意が必要な e プライバシー法の対象となるアクティビティとなります。ユーザーが明示的にリクエストしたオンライン サービスを提供するために FedCM の使用が厳密に必要であり、同意の要件が免除されるかどうかを判断するのはお客様の責任です。詳しくは、プライバシー サンドボックスのプライバシー関連のコンプライアンスに関するよくある質問をご覧ください。