FedCM: プライバシー保護 ID 連携 API

このページでは、FedCM のメリットFedCM の実装を検討すべきユーザーユーザーが FedCM を操作する方法について説明します。

Federated Credential Management(FedCM)は、サードパーティ Cookie やナビゲーション リダイレクトに依存しない、プライバシー重視でユーザー フレンドリーなフェデレーション ID サービス(ID プロバイダでログインなど)へのアプローチです。

FedCM を使用すると、ユーザーはウェブサイトでサードパーティの ID プロバイダを使用して新しい方法で認証できるようになります。

ID 連携とは

ID 連携は、個人(ユーザーまたはエンティティ)の認証または認可を信頼できる外部 ID プロバイダ(IdP)に委任します。その後、IdP は個人が RP(証明書利用者)のウェブサイトにログインすることを許可します。ID 連携では、RP は IdP に依存して、新しいユーザー名とパスワードを必要とせずにユーザーにアカウントを提供します。

フェデレーション ID ソリューションを使用すると、ユーザーは RP ごとに別の認証情報を作成する必要がなくなります。これにより、ユーザー エクスペリエンスが向上し、フィッシングの可能性が減少し、RP が信頼できる ID プロバイダから検証済みのユーザー情報を取得できるようになります。

従来のソリューションとサードパーティ Cookie

従来の ID 連携メカニズムは、iframe、リダイレクト、サードパーティ Cookie に依存しており、プライバシーに関する懸念が生じています。これらのソリューションは、ウェブ全体でユーザーをトラッキングするために悪用される可能性があり、ブラウザは正当な ID サービスと望ましくない監視を区別できません。

プライバシーに関する懸念から、主要なブラウザではサードパーティ Cookie の使用が制限されています。これにより、一部の機能に影響が生じる可能性があります。コミュニティの取り組みと Google の調査を通じて、サードパーティ Cookie の制限の影響を受ける ID 連携関連の統合がいくつかあることがわかりました。

FedCM を使用した ID 連携

FedCM はプロトコルに依存しません。スタンドアロン ソリューションとして実装することも、さまざまなプロトコルが利用できる追加レイヤとして実装することもできます。たとえば、機能的な OAuth サーバーは、FedCM エンドポイントを実装し、FedCM のレスポンスで返された認証コードを OAuth アクセス トークンと交換することで、FedCM のブラウザを介したワンタップ ログイン エクスペリエンスと直感的な UI を活用できます。

FedCM が必要な理由

従来のソリューションと比較して、ウェブ エコシステムに複数のメリットをもたらし、ユーザー、RP、IdP デベロッパーを念頭に置いて設計されています。

サードパーティ Cookie を使用しない ID ソリューションのサポート

FedCM は、ウェブ全体でユーザーをトラッキングするためによく使用されるサードパーティ Cookie への依存を減らすのに役立ちます。この API を使用すると、サードパーティ Cookie を利用できない場合(シークレット モードなど)でも、パーソナライズされたログイン エクスペリエンスを提供できます。

FedCM は、他のプライバシー サンドボックス API とも統合されています。たとえば、Storage Access API は FedCM 認証を信頼シグナルとして使用します。この統合は、認証に FedCM を使用し、必要なストレージにクロスオリジン iframe がアクセスできるように SAA を使用するウェブサイトに役立ちます。

ユーザー エクスペリエンスの向上

FedCM は、ワンタップでログイン プロセスを簡素化するためのブラウザを介した UI ダイアログを導入します。この API は、ログイン ページが乱雑になる問題(NASCAR 問題とも呼ばれます)にも対応しています。

NASCAR の問題の例: 7 つの異なるログイン オプションを選択したことで、UI が煩雑になったウェブサイト。
NASCAR の問題の例: IdP の選択肢が多すぎるため、UI が乱雑になっているウェブサイト。

FedCM は、ソーシャル ログイン ボタンが多数表示されるのではなく、よりシンプルなユーザー フレンドリーなインターフェースを提供します。

セキュリティ

フェデレーション ID アプローチを使用すると、ユーザーは IdP によって管理される信頼できるアカウントを使用できます。この方法では、ユーザーがすべてのサイトに認証情報を追加する必要はありません。これにより、フィッシング攻撃の対象領域が縮小されます。また、RP は、独自の堅牢なセキュリティ対策を実装する代わりに、安全な ID 管理を専門とする IdP の専門知識を利用できます。

FedCM は、ユーザーにとって連携 ID フローをさらに便利なものにし、安全性の低い ID フローよりも連携 ID フローを好んで利用してもらうことを目指しています。

より多くのユーザーにパーソナライズされたエクスペリエンスを提供

FedCM は、アカウント登録フローでの UX の摩擦を軽減します。Google Identity Service のケーススタディによると、ユーザーは FedCM のワンタップ フローでアカウントを作成することを、複数ステップのログイン オプションよりも好んでいます。

FedCM を使用すると、より多くの IdP がユーザーにワンタップ ログイン エクスペリエンスを提供できるようになります。ワンタップ ID フローを提供する IdP が増えることで、ユーザーは RP でより多くの IdP から選択できるようになります。FedCM は、最も関連性の高いアカウントをユーザーに提示することで、IdP 選択メカニズムを改善します。

登録率が高くなると、RP はより多くのユーザーにパーソナライズされたエクスペリエンスを提供できます。

多様な ID プロバイダのサポート

FedCM の簡素化された UI は、ユーザーに関連する IdP のパーソナライズされたリストを表示することを目的としています。FedCM の IdP 選択メカニズムにより、RP が選択できる IdP は、IdP のユーザーベースの規模によって制限されなくなります。たとえば、一部のユーザーは small-idp.example のアカウントのみを持ち、bigger-idp.example のアカウントを持っていない可能性があります。

Multi-IdP 機能を使用すると、rp.example は UI を煩雑にすることなく small-idp.examplebigger-idp.example の両方をサポートできます。これにより、すべての関係者にメリットがあります。

  • ユーザーは、規模の大小を問わず、任意の IdP を選択できます。
  • RP は多様な IdP のサポートを通じてより多くのユーザーにリーチできます
  • ユーザーベースが小さい IdP は、より多くの RP で利用できます。

FedCM の対象ユーザー

FedCM は、次の条件に該当する場合にのみ有用であると考えられます。

  • サードパーティの RP を持つ ID プロバイダ(IdP)である。
  • 独自の ID ソリューションがあり、複数のドメインがそのソリューションに依存している。
  • サードパーティ Cookie を使用しないブラウジングを選択したユーザーに対しても、フェデレーション ID フローをサポートすることを目標としています。

IdP の場合

FedCM には、ID プロバイダのサポートが必要です。信頼できるパーティは FedCM を単独で使用できません。RP の場合は、IdP に手順の提供を依頼できます。

複数の RP

RP がサードパーティである場合、または ID ソリューションを使用する RP が 4 つ以上ある場合は、連携 ID に FedCM API を使用することをおすすめします。

Cookie なしの ID 連携フローをサポートすることを目指している

FedCM は、サードパーティ Cookie を使用せずにブラウジングするユーザーに対しても、フェデレーション ID の重要なフローをサポートします。FedCM を使用すると、ユーザーは RP でフェデレーション アカウントを使用して登録、ログイン、ログアウトできます。

また、FedCM は Storage Access API の信頼シグナルとしても機能し、IdP が開始したストレージ アクセス リクエストの摩擦を解消します。

FedCM のユーザー操作

FedCM は認証プロトコルに依存しないように設計されており、ユーザーがサードパーティの IdP を使用して RP を認証するための新しいフローを提供します。デモで FedCM をお試しください。

証明書利用者へのログイン

ユーザーは、RP がサポートする IdP のセットからアカウントを選択できます。複数の IdP でログインしているユーザーには、いずれかの IdP を使用して RP にログインするよう求めるメッセージが表示されます。

ユーザーのアカウントは次の順序で表示されます。

  • ユーザーのデバイスでアクセスされたアカウントが最初に表示され、最も最近アクセスされたアカウントが最初に表示されます。
  • 次に、IdP に基づいて RP でユーザーがアクセスしたアカウントが表示されます。アクセスされたアカウントに関する情報は、approved_clients アカウント エンドポイントのプロパティ値から抽出されます。
  • RP で使用したことがないアカウントは最後に表示されます。

これらの優先度階層内に複数のアカウントがある場合、これらのアカウントは、RP が get() 呼び出しで提供した IdP の順序に基づいてさらに並べ替えられます。

FedCM UI モード

FedCM には、パッシブアクティブの 2 つの UI モードがあります。

パッシブ モード。パッシブ モードでは、FedCM プロンプトを表示するためにユーザーの操作は必要ありません。ユーザーが RP(証明書発行者)のウェブサイトにアクセスすると、次の条件が満たされている場合、navigator.credentials.get() が呼び出されたときに FedCM ログイン ダイアログが表示されます。

  • ユーザーがサポートされている IdP の少なくとも 1 つにログインしている。利用可能なすべての IdP でユーザーのステータスがログアウトの場合、FedCM ログイン プロンプトは自動的に表示されません。
  • ユーザーのブラウザで FedCM クールダウン設定が設定されていません。
  • ユーザーがブラウザの設定で FedCM を無効にしていない。ユーザーが FedCM をオプトアウトする方法について詳しくは、こちらをご覧ください。
ユーザーは、パッシブ モードで異なる IdP を使用して順次認証します。1 つの IdP でログインとログアウトを行い、次の IdP で認証します。

アクティブ モード。アクティブ モードでは、FedCM プロンプトをトリガーするには、一時的なユーザー アクティベーション([…でログイン] ボタンのクリックなど)が必要です。

ユーザーがアクティブ モードの FedCM を使用して RP にログインします。

[ユーザーとして続行] をタップすると、ログインが完了します。成功すると、ブラウザは、ユーザーが IdP を使用して RP にフェデレーション アカウントを作成したという事実を保存します。

ユーザーが IdP を使用して RP にアカウントを持っていない場合は、RP の利用規約やプライバシー ポリシーなどの追加の開示テキストを含む登録ダイアログが表示されます。

ePrivacy 法の遵守

FedCM を IdP または RP として使用する場合、ユーザーの端末機器に情報を保存したり、すでに保存されている情報にアクセスしたりすることになります。これは、欧州経済領域(EEA)および英国の ePrivacy 法の対象となるアクティビティであり、一般的にユーザーの同意が必要となります。ユーザーが明示的にリクエストしたオンライン サービスを提供するために FedCM の使用が厳密に必要であり、したがって同意要件の対象外となるかどうかを判断するのは、お客様の責任です。

Vision

Google は、現在の制限に対処し、より優れたユーザー エクスペリエンスを提供するために、新機能の開発を積極的に進めています。

  • ユーザーにとってスムーズで直感的、かつ侵入性の低い認証プロセスを実現するため、より静かな UX の策定を検討しています。
  • Google は、ユーザーのプライバシーの強化に全力を尽くしています。IdP トラッキングの問題を軽減する委任型の NextGen FedCM モデルに移行する予定です。NextGen では、IdP がユーザーを追跡しなくても、ユーザーは RP にログインできます。
  • FedCM は、RP の選択に基づいて、より幅広い IdP の選択肢をユーザーに提示することを目的としています。これを実現するために、Multi-IdP API と IdP 登録 API を開発しています。
  • Google は、FedCM をパスキーなどの他の認証方法や、統一された認証エクスペリエンスを導入するための自動入力などの追加手段と統合するよう積極的に取り組んでいます。

詳しくは、ロードマップをご覧ください。