開発者向け実装ガイド
顔認証を本番環境に導入する前に確認してください
このガイドは、Web アプリに生体認証を実装するための具体的な手順を必要とする開発チームとプロダクトチーム向けです。製品概要、展開モデル、ビジネス用途については、Web アプリ向け生体認証のページをご覧ください。
1. 認証の役割を決める
実装を始める前に、ユーザー導線のどこで顔認証を使用するかを決めます。役割を明確にすると、プロダクトの説明と認証アーキテクチャの両方を整理できます。
主要なログイン方法
ユーザーの顔登録後、FACEIO を主要なパスワードレス認証として使用します。
第二要素
既存のログインを維持し、追加の本人確認として顔認証を使用します。
追加認証
支払い、管理設定の変更、機密データへのアクセスなど、重要な操作の前だけ顔認証を求めます。
2. Web 認証フローを準備する
本番の生体認証フローには、カメラの起動だけでなく、信頼境界の設計が必要です。ブラウザのウィジェット、バックエンド、セッション層を個別に扱ってください。
- FACEIO Console でアプリを作成し、公開 App ID と非公開の REST API キーを分けて管理します。
- 顔登録、認証、追加認証が必要なページだけで fio.js SDK を読み込みます。
- ユーザーが生体認証に関する同意事項を確認した後にだけ
enroll()を呼び出します。 - ログイン、第二要素、ポリシーに基づく追加認証には
authenticate()を使用します。 - セッションを作成または昇格する前に、認証イベントをサーバー側で検証します。バックエンドの実装には REST API と webhooks の資料を参照してください。
3. ライブネス検出、不正利用対策、ユーザー復旧を設計する
顔認証では、サポート上の行き止まりを作らずに、新しい撮影画像とライブネス指標を評価する必要があります。FACEIO は認証とアンチスプーフィングの結果を提供し、再試行、代替アクセス、リスク判定は Web アプリ側で管理します。
再試行ロジック
カメラ、照明、権限のエラーを分かりやすく説明します。復旧手段を示さず、失敗した撮影を何度も繰り返させないでください。
代替アクセス
端末のカメラが使用できない場合、顔登録のリセットが必要な場合、手動確認が必要な場合に、ユーザーがアクセスを復旧できる方法を定めます。
リスクに応じた処理
Fintech、マーケットプレイス、追加確認が必要な処理では、生体認証を自社のリスク管理策と組み合わせます。顔照合と認証の構成については、Fintech と eKYC のガイド、ID Match、セキュリティベストプラクティスをご覧ください。
4. プライバシー、同意、保持ルールを確認する
生体認証には、パスワードログイン以上に慎重なセキュリティ設計が求められます。本番展開前に、プロダクト、法務、エンジニアリングの各チームで、同意、削除、サポートに関する方針を合意してください。
- 顔登録の前に、明確な生体認証への同意メッセージを表示します。
- 顔認証の利用目的と、該当する場合のオプトアウト方法を説明します。
- DELETEFACIALID REST API エンドポイントを使用する、アカウント、Facial ID、生体認証ハッシュの削除手順を文書化します。
- FACEIO トラストセンター、プライバシーポリシー、プライバシーベストプラクティス、セキュリティベストプラクティスに照らして実装を確認します。
5. 段階的に展開する
段階的な展開により、指標を正確に把握し、予期しないサポート対応を減らせます。限定したユーザーグループから始め、顔登録の完了率、認証成功率、再試行率、サポート件数が安定してから対象を広げます。
試験導入
まず従業員、ベータユーザー、またはリスクの低いユーザー層に生体認証を提供します。
本番展開
監視、サポート経路、バックエンド検証を確認してから、主要なユーザー層へ展開します。
6. バックエンド検証とセッションの関連付け
クライアント側の認証結果をそのまま信頼することは、本番環境でよくある誤りです。ブラウザは信頼できる境界ではなく、返された値は再送や改ざんの対象になります。セッションを発行する前に、すべての認証イベントをバックエンドで個別に検証してください。
- 非公開 REST API キーと返された Facial ID を使用し、認証結果をサーバー側で検証します。
- クライアントから送信されたユーザー ID ではなく、検証済みの Facial ID にセッションを関連付けます。
- PIN Code の検証、タイムスタンプ、リクエスト元、ユーザーの対応関係が記録と一致しない認証結果を拒否します。
- 撮影したメディアや生体認証ハッシュを Web アプリのログに書き込まず、監査に必要な検証イベントだけを記録します。
サーバー側の実装については、セキュリティベストプラクティス、顔認証 API、API チェックリストで詳しく説明しています。
生体認証の開発者向け資料
このチェックリストと以下の FACEIO 公式資料を併用し、初期設定、フロントエンド実装、バックエンド検証、Console の設定を揃えてください。
よくある質問
このチェックリストと生体認証の製品ページは何が違いますか?
このページはエンジニア向けの導入チェックリストです。生体認証の製品ページでは、製品概要、展開モデル、ビジネス上の位置付けを説明しています。実装と展開にはこのチェックリストを使用してください。
パスワードを置き換えず、顔認証を第二要素として使用できますか?
はい。FACEIO は主要なログイン方法、第二要素、追加認証として使用できます。このチェックリストの手順 1 で、ユーザー導線における役割を説明しています。追加認証の構成については、EC 不正利用対策ガイドをご覧ください。
ユーザーのカメラが使用できない場合はどうなりますか?
手順 3 で代替アクセスを説明しています。カメラ、端末、アクセシビリティの問題でユーザーが締め出されないよう、パスワード、OTP、アカウント復旧、サポート対応などの経路を用意してください。
認証結果をバックエンドで検証する必要がありますか?
はい。手順 6 とセキュリティベストプラクティスで説明しています。バックエンドが非公開 REST API キーで検証するまで、クライアント側の結果だけでセッションを発行しないでください。
関連ガイド
生体認証の実装を始める
このチェックリストと FACEIO の導入資料を使用し、各認証イベントをサーバー側のセッション判定に関連付けてください。製品概要については、生体認証の製品ページをご覧ください。FACEIO Console でアプリを作成し、公開 App ID を取得して、fio.js の実装を開始できます。