Chrome 128 より、Multi-IdP API のデスクトップでのオリジン トライアルが開始され、Button Mode API と Continuation バンドルの Android でのオリジン トライアルが開始されます。マルチ IdP 機能を使用すると、デベロッパーは 1 回の get()
呼び出しで、サポートされている複数の ID プロバイダの配列を指定できます。Button Mode API は新しい UI を追加します。Button Mode API を使用すると、ユーザーが API 呼び出し時に有効な IdP セッションを持っていない場合でも、IDP は FedCM API を使用できます。Continuation バンドルは、Continuation API と Parameters API で構成されています。これにより、IDP 提供の権限ダイアログを含む OAuth 認可フローのようなエクスペリエンスを実現できます。このバンドルには、Fields API、複数の configURL
、カスタム アカウントラベルなどの変更も含まれています。
送信元トライアル: Multi IdP API
この機能により、ユーザーはサポートされている一連の IdP からアカウントを選択できます。RP は、ログイン率と登録率の向上というメリットを得ることができます。ユーザーが複数の IdP でログインしている場合は、いずれかの IdP を使用して RP にログインするよう求められます。
IdP の優先順位は、ユーザーの既存のアカウントとそれに関連付けられたタイムスタンプに基づいて決定されます。
- ユーザーが以前に特定の IdP を使用して RP にログインしたことがあれば(つまり「リピーター アカウント」がある場合)、その IdP が最初に表示されます。
- 再利用されたアカウント内の IdP は、最近使用されたタイムスタンプ順に並べ替えられ、最近使用された IdP がリストの上部に表示されます。再訪したアカウントのタイムスタンプ データが Chrome にない場合もあります。これは、FedCM にタイムスタンプ ログが実装される前にユーザーがログインしたためと考えられます。これらのアカウントは、タイムスタンプのあるアカウントの下に表示されます。
- ユーザーが IdP で復元可能なアカウントを持っていない場合、RP が指定した順序が尊重されます。
FedCM では、デベロッパーがリクエストし、リピーター アカウントが 1 つある場合に、自動再認証が可能です。複数の IdP で再利用可能なアカウントが存在する場合、マルチ IdP ではユーザーは自動的に再認証されません。自動再認証では、再利用するアカウントが必須です。ブラウザがアカウントを明示的に認識した場合にのみ、自動再認証が開始されます。つまり、ユーザーは、この RP でこの特定のアカウントで FedCM を以前に使用している必要があります。
ユーザーのログイン ステータスが IdP に対してログアウトに設定されている場合、FedCM を呼び出しても、その IdP のアカウントは取得されません。同様に、利用可能なすべての IdP でユーザーのステータスがログアウトの場合、ウィジェット モードで FedCM ログイン プロンプトは自動的に表示されません。
IdP のブラウザに保存されているログイン ステータスがログイン済みであるにもかかわらず、取得リクエストによってこの IdP のアカウントが返されなかった場合(ユーザー セッションが期限切れになったが、ログイン ステータスがブラウザによってまだ更新されていない場合など)、IdP に不一致の UI が表示され、不一致の IdP でログインするようユーザーに提案されます。
ログイン ステータスの詳細については、ドキュメントをご覧ください。実装の詳細については、デベロッパー ガイドをご覧ください。
送信元トライアル: Multi IdP API
Multi IdP API は、デモ RP でユーザーとして、または Chrome 128 以降を使用しているデベロッパーとして試すことができます。
ユーザーとして試す
ユーザーとして試してみることもできます。次の点をご確認ください。
- Chrome は、ページ
chrome://settings/content/federatedIdentityApi
でサードパーティのログイン プロンプトをブロックするように設定されていません。 - 複数のデモ IdP にログインしている。デモページの手順に沿って操作します。
オリジンがオリジン トライアルに登録されていないサイトでマルチ IDP を試すには、chrome://flags/#fedcm-multi-idp
で機能フラグを有効にする必要があります。
デベロッパーとして試す
ログイン プロバイダが RP に JavaScript SDK を埋め込んでいる場合(推奨)、複数の IdP を有効にする navigator.credentials.get()
呼び出しをプロバイダが実装できるため、RP デベロッパーはコードを変更する必要はありません。それ以外の場合は、RP が FedCM API を直接呼び出す必要があります。
RP でマルチ ID プロバイダをテストするには、サポートされているプロバイダの配列を次のように指定します。
try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configUrl: "https://idp1.example/foo.json", // first IdP
clientId: "123",
},
{
configUrl: "https://idp2.example/bar.json", // second IdP
clientId: "456",
}
]
}
});
const token = cred.token;
const currentConfigFileUrl = cred.configURL;
if (cred.configURL === 'https://idp1.example/foo.json') {
// handle the token for idp1.example
} else if (cred.configURL === 'https://idp2.example/bar.json') {
// handle the token for idp2.example
}
} catch (error) {
console.error("Error during credential retrieval:", error);
}
生成されたオブジェクト内の configURL
属性には、ユーザーが認証した IdP の構成ファイルの URL が保存されます。結果の token
の処理方法は IdP によって異なるため、RP が決定できます。
オリジン トライアルに参加する
オリジン トライアルでは、新機能を試して、その使いやすさ、実用性、効果についてフィードバックを送信できます。詳細については、起点のトライアルの開始をご覧ください。
マルチ ID プロバイダ機能は、Chrome 128 以降のオリジン トライアルに登録することでお試しいただけます。
RP は、マルチ ID プロバイダを試すためにオリジンを登録し、ファーストパーティのオリジン トライアルを実施できます。IdP は、サードパーティのオリジン トライアルに登録し、JavaScript SDK を使用してすべての RP でマルチ IdP 機能を利用することもできます。
オリジン トライアルに参加する手順は次のとおりです。
- Multi IdP API オリジン トライアルの登録ページに移動します。
- [登録] ボタンをクリックし、フォームに記入してトークンをリクエストします。
- ファーストパーティ オリジン トライアルに登録するには、[ウェブ オリジン] フィールドに RP のオリジンを入力します。サードパーティのオリジン トライアルの場合は、IdP の JavaScript SDK のオリジンを入力し、[サードパーティの一致] チェックボックスをオンにします。
- [送信] をクリックします。
- RP ページで発行されたトークンを指定します。
- ファーストパーティ オリジン トライアルの参加者の場合:
<head>
内のメタタグとして:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- HTTP ヘッダーの場合:
Origin-Trial: TOKEN_GOES_HERE
- サードパーティのオリジン トライアルの参加者の場合:
- プログラムでトークンを指定する。
- ファーストパーティ オリジン トライアルの参加者の場合:
Android 版 Chrome の Button Mode API
Chrome バージョン 128 より、Button Mode API のオリジン トライアルが Chrome on Android で開始されます。これは、パソコン版での最初のトライアルに続くものです。Button Mode API を使用すると、ID プロバイダは、ユーザーが API 呼び出し時に IdP からログアウトしている場合でも、FedCM API を使用できます。ログイン フローはユーザーの操作によって開始されるため、ユーザーの意図をより正確に反映できます。
Chrome 128 では、IdP が RP の公式ロゴアイコンを クライアント メタデータ エンドポイント レスポンスに直接含めることができる新機能が導入されます。これにより、ボタン モードのモバイル デバイスの UI が改善されます。
構成ファイルの IdP ブランディングと同様に、RP のアイコンは IdP 側で構成し、次のように client_metadata_endpoint
レスポンスで返すことができます。
"privacy_policy_url": "https://rp.example/privacy_policy.html",
"terms_of_service_url": "https://rp.example/terms_of_service.html",
"icons": [{
"url": "https://idp.example/rp-icon.ico",
"size": 40
}]

アイコンのサポートについて詳しくは、デベロッパー向けドキュメントをご覧ください。
ユーザーがまだログインしていない場合、FedCM は Chrome カスタムタブ(CCT)を介して IdP から提供された login_url
を使用して IdP にログインするようユーザーに求めます。
ユーザーが以前に使用したアカウントで再認証する場合、開示 UI は表示されません。
オリジン トライアルに登録するには、パソコン版 Button Mode API の手順をご覧ください。パソコンでオリジン トライアルにすでに登録している場合は、Chrome 128 以降、Android 版 Chrome でこの機能が自動的に利用可能になります。
Chrome for Android 用の Continuation API バンドル
Chrome バージョン 128 以降、Continuation API バンドルが、パソコンでの最初のトライアルに続いて、オリジン トライアルの一環として Android 版 Chrome で利用可能になります。このバンドルは、Continuation API、Parameters API、Fields API、複数の configURL、カスタム アカウントラベルなど、複数の FedCM 機能で構成されています。
Continuation API を使用すると、複数ステップのログインフローを有効にできます。Parameters API を使用すると、IdP に追加のパラメータを渡すことができます。Fields API を使用すると、RP は FedCM ダイアログの開示 UI に表示する特定のアカウント属性をリクエストできます。また、複数の configURL
は IdP の複数の構成ファイルをサポートし、カスタム アカウントラベルを使用すると、IdP がアカウントにアノテーションを付け、RP がこれらのラベルでアカウントをフィルタリングできるようにします。
Continuation API バンドルの詳細については、パソコン版 Continuation API バンドルに関するブログ投稿をご覧ください。オリジン トライアルに登録するには、こちらの手順に沿って操作してください。パソコンでオライジナル トライアルにすでに登録している場合は、Chrome 128 以降、Android 版 Chrome で自動的にこれらの機能をご利用いただけるようになります。
意見交換とフィードバックの提供
フィードバックがある場合や問題が発生した場合は、問題を報告してください。正規の FedCM デベロッパー ガイドと、蓄積された更新ログページは最新の状態に保たれます。