今年の Google I/O では、ブラウザ API の力で Chrome がウェブでのユーザー認証と本人確認を刷新する方法についてお伝えしました。パスワード、パスキー、連携のいずれを使用していても、Chrome では、よりシンプルで安全かつユーザー フレンドリーな統合されたログインと登録の操作が提供されます。
ウェブサイトの登録とログインを強化するための最新のツールとベスト プラクティスをご確認ください。
セッションのページをご覧ください。または、引き続きこの記事をお読みいただき、主なハイライトをご確認ください。
ブラウザをログイン パートナーとして利用する
ウェブでの認証は進化しています。ユーザーの期待の高まり、新しい規制、デジタル ID ツールのエコシステムの拡大に伴い、デベロッパーは、安全でシームレスかつプライバシーを保護するログイン フローや登録フローを提供する必要があります。Chrome がサポートします。
主な重点分野は次の 3 つです。
- ユーザー認証: パスワード管理の改善、パスキーの導入の簡素化、連携認証情報管理(FedCM)による ID 連携の組み込みサポートにより、強力なログイン フローをサポートできます。
- 本人確認: モバイル ウォレットのデジタル認証情報を使用して、年齢や身分証明書の所有権など、確認済みのユーザーの詳細情報をリクエストできます。
- セッション管理: デバイスにバインドされたセッション認証情報を使用してセッションをデバイスにバインドすることで、ログイン後のユーザーを保護します。
これらを実現するツールと API をご確認ください。
ウェブ用の認証情報マネージャー: すべての認証情報に 1 つのログイン UI
ログインは便利である必要があります。ただし、パスワード、パスキー、連携オプションがすべて使用されているため、ユーザーは混乱する選択肢に直面することがよくあります。
Chrome では Credential Manager API を拡張し、タイプに関係なく、1 つの一貫したインターフェースを使用してブラウザから認証情報をリクエストできるようにしています。パスワード マネージャーから認証情報を取得できる場合は、Chrome が 1 つのダイアログで認証情報をユーザーに表示するため、ユーザーの負担が軽減されます。
Chrome で認証情報が見つからない場合は、通知が表示され、独自のログインフローにフォールバックできます。
この新しいエクスペリエンスにより、手間がかからず、よりシームレスにログインできるようになります。
この機能はデベロッパー向けトライアル版です。ローカルで使用を開始するには、password
認証情報と publicKey
認証情報の両方を含む chrome://flags#enable-experimental-web-platform-features
フラグを有効にし、mediation: "immediate"
を使用して即時メディエーションを有効にします。
コードは次のようになります。
const cred = await navigator.credentials.get({
password: true,
publicKey: {
challenge,
rpId: 'example.com'
},
mediation: 'imme
diate',
});
詳しくは、Chrome での即時メディエーションのテストに関するドキュメントをご覧ください。
パスワード: よりスマートで安全に
パスワードは、今でも世界で最も一般的な認証方法です。ブラウザやパスワード マネージャーには、パスワードによるログイン エクスペリエンスを改善するツールが用意されていますが、サイトが必ずしもそれらを採用しているとは限りません。
Chrome は、Google パスワード マネージャーの機能(登録フォームでのパスワード生成やパスワード侵害チェックなど)により、安全な手法をサポートし、認証情報の不正使用についてユーザーに警告します。
サイトでのパスワード使用の利便性を高めるためのツールをいくつかご紹介します。
自動パスワード変更: 不正使用されたパスワードをワンクリックで修正
今年後半に一部ウェブサイトでリリースされるパスワードの自動変更により、認証情報が危険にさらされたときにユーザーが簡単に対応できるようになります。
Chrome でログイン中に不正使用されたパスワードが検出されると、Google パスワード マネージャーは、自動的に修正するオプションをユーザーに提示します。
対応しているウェブサイトで、Chrome は強力なパスワードを生成して、ユーザーのパスワードを自動的に更新できます。
これにより、アカウント設定を探したり、途中でプロセスを放棄したりすることなく、ユーザーがアカウントの安全を確保しやすくなります。
ウェブサイトを最適化して、ブラウザやパスワード マネージャーと連携させる方法があります。
- 自動入力の最適化:
autocomplete="current-password"
とautocomplete="new-password"
を使用して、自動入力とストレージをトリガーします。ログインと登録のガイドをご覧ください。 - パスワード変更用 URL:
<your-website-domain>/.well-known/change-password
からウェブサイトのパスワード変更フォーム(よく知られたパスワード変更用 URL)にリダイレクトします。脆弱なパスワードが検出されると、パスワード マネージャーはユーザーをパスワード変更ページに移動できます。
認証情報のシームレスな共有: アプリとウェブで 1 回ログイン
パスワード マネージャーは、パスワードの保存以外にもさまざまな機能を備えています。ドメインが一致する場合にのみ認証情報を提供することで、フィッシングを防止します。ただし、サービスが複数のドメインとプラットフォームにまたがっている場合、ユーザーは問題に直面する可能性があります。
次に例を示します。
- ユーザーが Android アプリで登録し、後でラップトップでウェブサイトにアクセスした
- または、同じログインを許可する複数のドメインまたはアプリを提供している
共有認証情報がない場合は、保存したパスワードが表示されないため、ユーザーはログインに苦労する可能性があります。
認証情報をシームレスに共有すると、この問題を解決できます。アプリとサイトを関連付けると、Google パスワード マネージャーはこれらのアセット間でパスワードをシームレスに共有できるため、よりスムーズで効率的なログイン エクスペリエンスが実現します。
eBay は、正常なログイン率を 10% 向上させました。詳しくは、シームレスな認証情報共有で eBay がログイン成功率を 10% 改善した方法に関するケーススタディをご覧ください。
パスキー: より簡単で安全なログイン方法
パスキーは、パスワードに代わる強力な手段です。ユーザーは、生体認証(指紋や顔など)、PIN、パターンなどのデバイスのロック解除メカニズムを使用して、ウェブサイトやアプリに安全にログインできます。フィッシングに耐性があり、ユーザー フレンドリーで、ブラウザとオペレーティング システム全体で広く採用されている標準です。
プラットフォーム間でパスキーを同期する
ユーザーはパスキーをパスワード マネージャーに保存しますが、一部のマネージャーはパスキーを同期しません。パスキーを使用できないデバイスからユーザーがログインしようとすると、不便が生じる可能性があります。その場合、Chrome に QR コードが表示され、ユーザーは認証情報を保持している別のデバイスからログインを完了できます。
この手間を軽減するため、Chrome では Google パスワード マネージャーでパスキーの同期をサポートしています。
iOS へのサポートが拡張されたことで、Google パスワード マネージャーのパスキーは、Android、Windows、macOS、ChromeOS、Linux など、すべての主要なプラットフォーム間で同期できるようになりました。詳しくは、サポートされている環境に関する記事をご覧ください。
即時メディエーション: 使用可能な認証情報のみをリクエストする
一部のユーザーは、すべてのデバイスでパスキーを同期していません。ローカルでパスキーが見つからない場合、Chrome に QR コードが表示され、ユーザーが認証情報を保持している別のデバイスを使用できる場合があります。これは有効ですが、手間が増える可能性があります。
この摩擦を軽減するため、Chrome では新しいオプション mediation: 'immediate'
がサポートされています。これにより、サイトは現在のデバイスですでに利用可能な認証情報のみをリクエストできます。何も見つからない場合は、ユーザーには何も表示されません。プロンプト、QR コード、中断なし。Chrome から通知が届くので、代わりに通常のログイン UI を表示できます。
これにより、認証情報のないユーザーに対して QR コードのフローを回避することで、エクスペリエンスが向上します。
このアプローチは、ユーザーが有意なアクション(ログインボタンや購入手続きボタンのクリックなど)を実行するときに使用します。navigator.credentials.get()
と mediation: 'immediate'
を使用すると、現在のデバイスでパスキーを使用できる場合は、Chrome がすぐにユーザーにプロンプトを表示します。そうでない場合は、ユーザーは中断することなく続行し、パスワード フィールド、ワンタイム コード、または別の方法を表示できます。
password: true
を設定すると、ユーザーがログインしやすくなります。これにより、Chrome は保存したパスワードをパスキーとともに返すことができます(利用可能な場合)。
次の例は、即時メディエーションを使用してパスキーをリクエストする方法を示しています。
navigator.credentials.get({
publicKey: {
challenge: new Uint8Array([/* your challenge here */]),
rpId: 'example.com'
},
mediation: 'immediate',
//< password: true == enable this to request passwords alongside passkeys
}).t>hen(credential = {
// Use the credential for sign in
>}).catch(error = {
if (error.name === 'NotAllowedError') {
// No credential found on this device, fall back to another method
} else {
console.error('Error durin
g sign-in', error);
}
});
この機能はデベロッパー トレイルで利用できます。詳細については、WebAuthn 即時メディエーションの説明をご覧ください。
パスキーの自動作成
多くのユーザーは、引き続きパスワードでログインしています。パスキーの導入を支援するため、Chrome では、パスワードによるログインが成功した後にユーザーのパスキーを自動的に作成できる API が導入されます。
パスキーの作成をリクエストするだけで、ユーザーが最近使用した保存済みパスワードを持っている場合、パスワード マネージャーはパスキーを作成し、それが成功したかどうかを通知します。パスキーが利用可能になると、ユーザーに通知が届くことがあります。ユーザーのパスワードは削除されません。
パスキーが作成されていない場合、ブラウザはユーザーの邪魔をしたり、UI を表示したりしません。
これにより、ユーザーはログイン フローを中断することなく、パスキーを段階的に導入できます。
この機能は Chrome 136 以降で利用できます。詳しくは、パスキーをよりシームレスに導入できるようにユーザーをサポートするをご覧ください。
Signal API を使用してパスキーをクリーンアップする
ユーザーがサイトやアプリからパスキーを削除しても、パスワード マネージャーがログイン時にパスキーを提示し、ログインに失敗して混乱を招く可能性があります。Signal API を使用すると、パスキーが削除されたときにアプリがパスワード マネージャーに通知できるため、認証情報リストをクリーンかつ正確に保つことができます。
既知のパスキーのリストをパスワード マネージャーに送信して、パスキーを最新の状態に保つこともできます。これにより、ユーザーの未使用のパスキーをクリーンアップできます。
Signal API は Chrome 132 以降で使用できます。詳しくは、Signal API を使用して、パスキーとサーバー上の認証情報の整合性を維持するをご覧ください。
インポートとエクスポート: 認証情報を携帯する
パスワード マネージャーを切り替えるユーザーは、認証情報を移行するのが難しいと感じることが多いようです。Chrome に、FIDO 標準に基づくパスキーとパスワードのインポートとエクスポートのサポートが追加されます。ユーザーによるファイル操作は必要ありません。
自動入力機能の強化
保存された認証情報をユーザー フレンドリーな方法で表示するため、Chrome ではログイン フォームの準備が整うと自動的に自動入力プルダウンが表示されます。フォームでパスワードとパスキーの両方をサポートし、入力フィールドに自動フォーカスを適用するだけです。
ユーザーがフィールドをクリックしなくても認証情報が表示されるため、便利です。代わりに、ユーザーは使用する認証情報をタップするだけで済むため、手間が省けます。
詳しくは、フォームの自動入力でパスキーを使用してログインするをご覧ください。
更新された学習リソース
パスキーの学習リソースを全面的に改訂し、ユーザーに最適なパスキー エクスペリエンスを提供できるようにしました。
FedCM: フェデレーション ID の改善
Federated Credentials Management API(FedCM)を使用すると、プライバシーとユーザー エクスペリエンスを重視したブラウザ メディエーション フローを使用して、ユーザーが信頼できる ID プロバイダでログインできます。FedCM は、ウェブでの登録とログインを簡素化するため、デベロッパーは少ない労力でシームレスな認証をサポートできます。
スマートな UI
FedCM で、ログイン プロンプトの表示方法と表示タイミングをより細かく制御できるようになりました。次の 2 つのモードがサポートされています。
- パッシブ モード: ユーザーがサイトに戻ると、ブラウザに既知の ID プロバイダのログイン プロンプトが自動的に表示されます。これは慣れているユーザーには適していますが、表示が早すぎると邪魔に感じる可能性があります。
- アクティブ モード: ユーザーがログインボタンをクリックした後にのみプロンプトが表示されるため、より慎重な操作が可能になります。
これは、混乱を減らし、ユーザーに驚かせないために重要です。アクティブ モードでは、ユーザーはサイトに留まり、リダイレクトやその他のダイアログが表示されることはありません。
また、Chrome では、パッシブ モードをよりスマートにするための取り組みも行っています。今後のアップデートでは、サイトとユーザーのシグナルを組み込んだ機械学習技術をテストし、最適なユーザー エクスペリエンスを提供するために UI を表示するタイミングと方法を決定します。
より柔軟な API
FedCM を使用すると、ユーザーが連携 ID でログインする方法について、より柔軟に制御できます。
たとえば、複数の ID プロバイダのサポートにより、ユーザーに 1 つではなくプロバイダのリストを表示できます。つまり、ユーザーは自分に適したアカウントを選択でき、ユーザーのプライバシーを厳密に保護しながらログイン率を高めることができます。
ブラウザは引き続きすべてのステップを仲介します。認証プロバイダは、ユーザーが明示的に許可したもののみを参照し、フロー全体でプライバシーが保護されます。
デジタル認証情報: オンラインで迅速かつ非公開で身分証明書を確認する
デジタル クルデンシャルは世界中で普及しつつあります。ユーザーはデジタル ウォレットを使用して、年齢、学生ステータス、身分証明書などの属性を確認できます。Digital Credentials API を使用すると、ユーザーはモバイル ウォレットから検証済みのクレーム(年齢やライセンス ステータスなど)をウェブサイトと直接共有できます。
Google は W3C や業界リーダーと連携して、これを標準化に取り組んでいます。Google の目標は、プラットフォーム全体で一貫した、ユーザー フレンドリーで安全かつプライバシーに配慮したエクスペリエンスを提供することであり、
興味深い機能の例:
- クロスデバイス サポート。ユーザーはどのデバイスからでも安全に認証情報を提示できます。
- 選択的な開示。ユーザーは不要な情報を公開することなく、「18 歳以上」などの詳細を確認できます。
- 検証可能な情報。カード発行会社がデータにデジタル署名するため、簡単に検証できます。
- 発行。Google は、ユーザーがこれらの認証情報をウォレット アプリにプロビジョニングできるように、Digital Credentials API の拡張に取り組んでいます。
デバイスにバインドされたセッション認証情報: ログイン状態を維持し、保護を継続
ユーザー セッションは Cookie で識別されることが多く、マルウェアはユーザーのデバイスから Cookie を盗む可能性があります。
デバイスにバインドされたセッション認証情報は、セッションを特定のデバイスにリンクします。これにより、セッション ハイジャックのリスクが軽減され、メール アカウントやソーシャル メディア アカウントにログインしているときや、政府サービスにアクセスしているときも保護が強化されます。
DBSC は、ログイン時に使用したデバイスに認証を結び付けることで、より安全で安定したセッションを作成できるようにします。
フィードバック
本日お伝えした内容について、ご意見をお聞かせください。ぜひこのドキュメントのリンクから機能をお試しいただき、ご意見をお聞かせください。