Webアプリ向け顔認証API
fio.js で FACEIO の顔認証を統合します。FACEIO Console でアプリケーションを作成してウィジェットを読み込み、enroll() と authenticate() を呼び出します。返された Facial ID は、バックエンドのセッションロジックに関連付けます。
チームが自社開発ではなくFACEIOを選ぶ理由
カメラキャプチャ、ライブネスチェック、照合基盤をゼロから構築せずに顔認証を追加できます。
顔認証をゼロから構築するには、実際の製品フローをリリースする前に、ライブネスチェック、アンチスプーフィング、認識エンジンの挙動、照合品質、ブラウザ間のカメラキャプチャに対応する必要があります。セキュリティとプライバシーに関わるインフラ作業です。
FACEIO はこれらのレイヤーをマネージド API とブラウザー向けライブラリにまとめています。アプリケーションは Facial ID と認証結果を受け取り、バックエンドはユーザーマッピング、セッション作成、認可、アカウント復旧ポリシーを管理します。短期間で導入する場合は、マネージド顔認証サービスとして利用できます。
自社開発
- 数か月の開発期間
- 認識エンジンの評価と調整
- ブラウザの差異に対応する継続的な保守
- 同意、保持、削除、地域ポリシーへの対応
FACEIO APIの利用
- コンパクトなブラウザSDK統合
- キャプチャフローにライブネスチェックを内蔵
- SDKがカメラとデバイス間の互換性を処理
- バックエンドで扱いやすいFacial IDとペイロードのマッピング
要点: FACEIO がブラウザーでの撮影と顔認証フローを処理し、アプリケーションがセッションと認可ロジックを管理します。アーキテクチャ全体については、Web アプリ向け生体認証を参照してください。
APIの主要機能
FACEIO API と fio.js SDK は、認証ライフサイクル全体をカバーする 2 つの主要メソッドを提供します。エンドポイント単位の制御については、REST API リファレンスを参照してください。
-
authenticate()ライブ認証フローを開始し、ライブネスを確認します。一致に成功すると、関連するペイロードと Facial ID を返します。バックエンドは結果を検証してセッションを作成できます。パスワードレスログインの設計については、Web アプリ向け生体認証ログインを参照してください。
ペイロードとセッション処理
登録時に、開発者が定義したペイロード(例:{ user_id: "abc123" })を付加できます。同じペイロードが認証成功後に返されるため、追加の検索を行わずに認証イベントを内部ユーザーレコードへ関連付け、Webhooksで監査イベントを処理できます。
顔認証APIを4ステップで統合
フロントエンド統合は意図的に小さく設計されています。SDKウィジェットがカメラ権限、キャプチャUI、ライブネスチェックを処理するため、アプリケーション側でこれらを実装する必要はありません。
authenticate() が成功したら、返された facialId とペイロードをサーバーへ送り、信頼できるセッションを作成します。詳しい手順は、統合ガイド、Webhooks ドキュメント、セキュリティのベストプラクティスを参照してください。
組み込みのセキュリティとライブネス検出
FACEIO API は各認証イベントに複数のセキュリティ制御を適用します。既定の制御に加えて、アプリケーション要件に合わせた設定を FACEIO Console で管理できます。プラットフォームのセキュリティ方針については、トラストセンターを参照してください。
-
ライブネスとアンチスプーフィング
各キャプチャで人間が実際に存在することを確認し、写真、印刷画像、録画映像、画面リプレイ、合成メディア、マスクによる試行など、一般的な提示攻撃を拒否するよう設計されています。
-
プライベートAPIキーの検証
バックエンドはプライベートREST APIキーを使って認証イベントを検証します。偽造または再生されたフロントエンドの応答を有効なセッションとして扱わないよう、キーはサーバーに保管してください。
-
アプリケーション単位のFacial ID
各 FACEIO アプリケーションは分離されています。Facial ID、ペイロード、認識エンジンのインデックスはアプリケーション単位で管理され、プラットフォームのレート制限が総当たり試行の低減に役立ちます。
ベストプラクティス: プライベート API キーをクライアント側のコードに公開しないでください。セッション検証と Facial ID のマッピングはサーバーで行います。実装方法については、セキュリティのベストプラクティスとプライバシーのベストプラクティスを確認してください。
実装パターンの選択
FACEIOの統合の多くは、信頼性とコンプライアンスの要件に応じて、2つのパターンのいずれかを使用します。
フロントエンドのみのパターン
低リスクのフローやプロトタイプに適しています。 enroll() と authenticate() はブラウザで実行され、返されたFacial IDを使ってユーザーを識別し、クライアント側のセッションを開始します。
フロントエンド+バックエンド検証 推奨
authenticate() がフロントエンドで Facial ID を返したら、アプリケーションは認証済み API 呼び出しでバックエンドへ送信します。サーバーはプライベートキーで結果を検証し、ペイロードのマッピングからユーザーを特定して、署名付きセッショントークンを発行します。このパターンについては、パスワードレス認証の導入ガイドを参照してください。
- 信頼境界をサーバー側に維持
- による監査ログに対応 Webhook
- 重要な操作のステップアップ検証に対応( 生体認証ログインのパターン)
実装リソース
顔認証APIで構築
FACEIO APIのリソースを使ってアプリケーションを作成し、JavaScript SDKを統合し、サーバー側で認証結果を検証して、信頼できる認証イベントをバックエンドシステムへ送信します。
ログインフローにFACEIOを接続
FACEIO アプリケーションを作成し、Public ID をコピーして fio.js を読み込み、登録と認証の結果をバックエンドのセッションフローに接続します。