Webアプリ向け顔認証API

fio.js で FACEIO の顔認証を統合します。FACEIO Console でアプリケーションを作成してウィジェットを読み込み、enroll() と authenticate() を呼び出します。返された Facial ID は、バックエンドのセッションロジックに関連付けます。

FACEIO Consoleに接続してアプリケーションを作成し、APIを管理し、登録、認証、Facial IDイベント用のWebhookを設定します。

チームが自社開発ではなくFACEIOを選ぶ理由

カメラキャプチャ、ライブネスチェック、照合基盤をゼロから構築せずに顔認証を追加できます。

顔認証をゼロから構築するには、実際の製品フローをリリースする前に、ライブネスチェック、アンチスプーフィング、認識エンジンの挙動、照合品質、ブラウザ間のカメラキャプチャに対応する必要があります。セキュリティとプライバシーに関わるインフラ作業です。

FACEIO はこれらのレイヤーをマネージド API とブラウザー向けライブラリにまとめています。アプリケーションは Facial ID と認証結果を受け取り、バックエンドはユーザーマッピング、セッション作成、認可、アカウント復旧ポリシーを管理します。短期間で導入する場合は、マネージド顔認証サービスとして利用できます。

自社開発

  • 数か月の開発期間
  • 認識エンジンの評価と調整
  • ブラウザの差異に対応する継続的な保守
  • 同意、保持、削除、地域ポリシーへの対応

FACEIO APIの利用

  • コンパクトなブラウザSDK統合
  • キャプチャフローにライブネスチェックを内蔵
  • SDKがカメラとデバイス間の互換性を処理
  • バックエンドで扱いやすいFacial IDとペイロードのマッピング

要点: FACEIO がブラウザーでの撮影と顔認証フローを処理し、アプリケーションがセッションと認可ロジックを管理します。アーキテクチャ全体については、Web アプリ向け生体認証を参照してください。

APIの主要機能

FACEIO API と fio.js SDK は、認証ライフサイクル全体をカバーする 2 つの主要メソッドを提供します。エンドポイント単位の制御については、REST API リファレンスを参照してください。

  • enroll()

    FACEIO ウィジェットで登録フローを開始します。ユーザーの明示的な同意後、設定された顔認識エンジンが不可逆の生体認証ハッシュまたはアプリケーションインデックスエントリを作成し、FACEIO は一意の Facial ID を返します。バックエンドは、その Facial ID をユーザーレコードに関連付けて保存します。

  • authenticate()

    ライブ認証フローを開始し、ライブネスを確認します。一致に成功すると、関連するペイロードと Facial ID を返します。バックエンドは結果を検証してセッションを作成できます。パスワードレスログインの設計については、Web アプリ向け生体認証ログインを参照してください。

ペイロードとセッション処理

登録時に、開発者が定義したペイロード(例:{ user_id: "abc123" })を付加できます。同じペイロードが認証成功後に返されるため、追加の検索を行わずに認証イベントを内部ユーザーレコードへ関連付け、Webhooksで監査イベントを処理できます。

顔認証APIを4ステップで統合

フロントエンド統合は意図的に小さく設計されています。SDKウィジェットがカメラ権限、キャプチャUI、ライブネスチェックを処理するため、アプリケーション側でこれらを実装する必要はありません。

// ステップ1 - ページにSDKを埋め込む
<script src="https://cdn.faceio.net/fio.js"></script>

// ステップ2 - Public IDで初期化
const faceio = new faceIO('YOUR_APP_ID');

// ステップ3 - 新しいユーザーを登録
faceio.enroll({ locale: 'auto', payload: { userId: 'abc123' } });

// ステップ4 - 再訪時に認証
faceio.authenticate({ locale: 'auto' })
  .then((data) => sendToBackend(data.facialId, data.payload))
  .catch((err) => handleError(err));

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 呼び出しでバックエンドへ送信します。サーバーはプライベートキーで結果を検証し、ペイロードのマッピングからユーザーを特定して、署名付きセッショントークンを発行します。このパターンについては、パスワードレス認証の導入ガイドを参照してください。

まとめ

FACEIO は、認識スタックを自社構築せずに利用できるブラウザー撮影と顔認証のフローを提供します。標準統合では、script タグ 1 つ、SDK の enroll() と authenticate()、およびバックエンドでの結果検証を使用します。次に、スタートガイドと統合ガイドを確認してください。

ログインフローにFACEIOを接続

FACEIO アプリケーションを作成し、Public ID をコピーして fio.js を読み込み、登録と認証の結果をバックエンドのセッションフローに接続します。

Public IDの設定
フレームワークに依存しないSDK
サーバー側検証