公開日: 2025 年 9 月 8 日
複数の業界のリーダーは、優れたユーザー エクスペリエンスを提供しながらプライバシーを保護することの重要性を理解しています。Seznam は、ユーザー エクスペリエンスとプライバシーを損なうことなく、Federated Credential Management(FedCM)の統合に成功しました。
FedCM のメリットを享受できる企業
さまざまなドメインの組織が FedCM をソリューションに統合しています。FedCM はフェデレーション ID 管理用に設計されているため、ID プロバイダ(IdP)が主な受益者となります。この情報は、ログイン エクスペリエンスの向上に役立てられます。e コマース サービス プロバイダや決済プロバイダ(多くは ID プロバイダも兼ねています)も、FedCM を通じてユーザー エクスペリエンスを改善する機会を特定しています。
Seznam
Seznam は、チェコ共和国の人口の 90% にリーチするヨーロッパのテクノロジー企業であり、ID プロバイダです。ソーシャル、知識、コンテンツのハブとして機能します。Seznam は FedCM を採用し、パートナーのプラットフォームで運営されているオンライン ストアの顧客が Seznam アカウントを使用してログインできるようにしました。
FedCM を導入したことで、Seznam はパートナー ネットワークでのユーザーのログイン率を大幅に向上させ、ユーザー エクスペリエンスを改善し、サードパーティ Cookie の利用可否に関係なく一貫した ID フローを実現しました。
目的
Seznam は、いくつかのメリットを認識して FedCM の実装を選択しました。
- FedCM はエンドユーザーを念頭に置いて設計されており、ユーザーは IdP に提供する情報を管理できます。これは、ユーザーに安全でプライベートな環境を提供するという Seznam のビジョンに沿ったものです。
- FedCM はブラウザの組み込み機能であり、OAuth 2.0 標準を使用する Seznam の既存のログイン エクスペリエンスと互換性があります。
- FedCM は、ID 連携に対するプライバシー重視のアプローチです。たとえば、ユーザーがログインした場合、ユーザーの RP へのアクセスは IdP とのみ共有されます。これは、持続可能なビジネスに関する Seznam の見解と一致しています。
実装の詳細
Seznam は、既存の OAuth ソリューションの上にレイヤとして FedCM を実装しました。このアーキテクチャでは、FedCM フローによって OAuth 認可コードが IdP から RP に安全に送信されます。
実装にかかる労力
Seznam は、FedCM の実装が簡単で、既存のアプローチと一致していることを確認しました。調査と API 実装には 1 か月かかり、2 人のデベロッパーが必要でした。FedCM の本番環境への導入には 2 か月もかかりませんでした。このプロセスは反復的で、API の学習にかなりの時間を費やしました。
課題
早期導入者として、Seznam はいくつかの課題を特定し、API の成熟に役立つ貴重なフィードバックを提供しました。
複数の ID プロバイダのサポート
Seznam は、FedCM が複数の ID プロバイダをサポートしていることに注目しました。この機能により、ユーザーはパートナー RP で Seznam アカウントと Google アカウントのどちらかを選択できるようになりました。しかし、Seznam が FedCM の実装に初めて取り組んだとき、この機能は実装の初期段階にあり、デベロッパーはオリジン トライアルに登録し、トークンを使用してユーザー向けに機能を有効にする必要がありました。そのため、Seznam は Chrome Stable でこの機能がリリースされるまで待つことにしました。
この機能は Chrome 136 以降で利用可能で、デベロッパーは複数の ID プロバイダのサポートを構成できます。たとえば、Seznam と Google の両方の ID プロバイダをサポートする場合、IdP は 1 回の get() 呼び出しに両方のプロバイダを含めることができます。RP は個別に含めることができます。
// Executed on the RP's side:
const credential = await navigator.credentials.get({
identity: {
providers: [
{
// IdP1: Seznam config file URL
configURL: 'https://szn.cz/.well-known/web-identity',
clientId: '123',
},
{
// Allow Google Sign-in
configURL: 'https://accounts.google.com/gsi/fedcm.json',
clientId: '456',
},
],
},
});
Seznam は、この機能がソリューションの一部になることを示しています。また、FedCM チームは、複数の get() 呼び出しをサポートする複数の SDK のサポートを実装しています。
プライベート DNS
Seznam は、テスト段階でネットワーク構成に関する問題に直面しました。テスト IdP サーバーはプライベート ネットワーク内にあり、プライベート DNS 経由でのみアクセス可能でした。この設定は、公開前の内部テスト環境や開発環境でよく使用されます。
ただし、この設定には問題があります。well-known ファイルは eTLD+1 から提供される必要がありますが、プライベート開発ドメインは公開サフィックス リストに登録されていないため、ブラウザは開発ドメインでホストされている well-known ファイルを取得するリクエストを送信しません。
login.idp.example: 本番環境ドメインの例。idp.example/.well-known/web-identity: 本番環境のwell-knownファイルの例。login.dev.idp.example: 開発ドメインの例。login.dev.idp.example/.well-known/web-identity: 開発環境のwell-knownファイルの例。
FedCM 実装がプライベート ドメインでホストされている場合、ブラウザから well-known ファイルへのリクエストで次のエラーが発生します。
The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED
このエラーは、Chrome の #fedcm-without-well-known-enforcement フラグを有効にすることで解決できます。このフラグを有効にすると、ブラウザはテスト用に well-known ファイルの取得をスキップします。Chrome でテストフラグを有効にする方法をご確認ください。
カスタム情報開示
Seznam は、FedCM の初期 UI デザインに加えて、追加情報も表示したいと考えていました。標準の FedCM ダイアログには、特定のデータ(通常はユーザーのプロフィール画像、名前、メールアドレス)が RP と共有されることを示す固定メッセージがユーザーに表示されます。
FedCM チームはフィードバックを取り入れ、ユーザーに表示される開示情報をカスタマイズできるように API を拡張しました。たとえば、Continue on 機能を使用すると、IdP はユーザーをカスタムページにリダイレクトして、追加の情報や権限をリクエストできます。Chrome 132 以降でサポートされているカスタム パラメータとフィールドの機能を使用すると、さらにカスタマイズできます。
証明書利用者のオリジンの検証
IdP サーバーは、受信した FedCM リクエストの Origin HTTP ヘッダーを検証して、リクエストが RP が IdP に事前登録したオリジンと一致することを確認する必要があります。これにより、FedCM の ID アサーション リクエストが、client_id を使用する攻撃者ではなく、承認済みの RP から送信されるようになります。
Seznam には、パートナー RP が Seznam に登録する際に、RP のオリジンデータをリクエストしないというコーナー ケースがあります。つまり、RP のオリジンを検証できません。
Seznam の FedCM 統合は、既存の OAuth ソリューションをベースに構築されています。このため、RP の client_id と client_secret の両方を検証するという代替手段を取り、オリジンをチェックしなくてもソリューションの安全性を維持できるようにしました。
ID プロバイダのユーザー向けドメイン
Seznam のユーザー認証インフラストラクチャは主に szn.cz ドメインで動作しており、FedCM に必要な IdP エンドポイントがホストされています。ただし、主な企業 ID と、ユーザーがそのサービスを広く認識し、信頼しているドメインは seznam.cz です。
FedCM ダイアログには、IdP エンドポイントの実際のオリジン ドメイン(szn.cz)が表示されます。seznam.cz ブランドに慣れているユーザーは、ログイン プロセス中にあまり馴染みのない szn.cz ドメインでログインするよう求められると、混乱して躊躇する可能性があります。
Chrome 141 以降では、FedCM で IdP 実装をホストしているドメインとは異なるドメインを表示することはできません。この制限は、ユーザーの透明性を確保することを目的とした意図的な設計上の選択です。ただし、FedCM チームは、この制限によって生じる可能性のある課題を認識しており、潜在的な調整について議論しています。
影響
FedCM API を使用することで、Seznam はパートナー ユーザーにシングルタップ認証フローを提供できるようになりました。他の認証方法と比較して、FedCM の UX のメリットが強調されました。
Seznam は、FedCM ログインに移行したウェブサイトでユーザー エンゲージメントが大幅に増加したことを確認しましたが、他の要因から正確な直接的影響を分離するための包括的な分析は実施していません。FedCM 統合の前は、同意済みのハッシュ化されたメールアドレスを使用してユーザーを識別し、ゲスト購入を許可する実装でした。このような分析を行ううえでの課題は、ユーザーのコンバージョンが FedCM に起因するものなのか、それともゲスト購入で完了したのかを推定することでした。Seznam の仮説では、FedCM の使いやすさが向上したことが、このコンバージョン率の向上に貢献した可能性があるとされています。
まとめ
Seznam は FedCM の実装に成功し、既存の OAuth ソリューションに加えて別の認証フローを提供しています。Seznam は、ID プロバイダのサポート、プライベート DNS の設定、開示テキストのカスタマイズ、証明書利用者オリジンの検証、ユーザー向けのドメイン表示に関連する課題に直面しましたが、API は実装以来成熟してきました。FedCM チームは、Seznam などのアーリー アダプターからのフィードバックを取り入れ、これらの課題に対処するための優れたツールを実現しました。次のステップとして、Seznam は複数の ID プロバイダに対する FedCM のサポートを実装する予定です。