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

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

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

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 は、他の Privacy Sandbox API とも統合されています。たとえば、 Storage Access API は、FedCM 認証をトラスト シグナルとして使用します。 この統合は、認証に FedCM を使用し、SAA を使用してクロスオリジン iframe が必要なストレージにアクセスできるようにするウェブサイトに役立ちます。

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

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

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

FedCM は、ソーシャル ログイン ボタンが多すぎるのではなく、よりシンプルで使いやすいインターフェースを提供します。

セキュリティ

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

FedCM は、フェデレーション 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 のサイズに関係なく、好みの IdP を選択できます。
  • RP は、さまざまな IdP をサポートすることで、より多くのユーザーにリーチできます。
  • ユーザーベースが小さい IdP は、より多くの RP で利用できます。

FedCM を使用すべきユーザー

FedCM は、次の条件に該当する場合にのみ役立ちます。

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

IdP である

FedCM には、ID プロバイダのサポートが必要です。利用者は FedCM を単独で使用できません。RP の場合は、IdP に手順を問い合わせてください。

複数の RP

RP がサードパーティである場合、または ID ソリューションを使用する RP が 5 つ以上ある場合は、FedCM がフェデレーション ID に推奨される API です。

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

FedCM は、サードパーティ Cookie を使用しないブラウジングを行うユーザーでも、基本的なフェデレーション ID フローをサポートしています。FedCM を使用すると、ユーザーは RP でフェデレーション アカウントを使用して登録、ログイン、ログアウトできます。

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

ユーザーによる FedCM の操作

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

利用者にログインする

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

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

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

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

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 法の遵守

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

Vision

Google は、現在の制限に対処し、ユーザー エクスペリエンスを向上させるための新機能を積極的に開発しています。

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

詳細については、ロードマップをご覧ください。