ウィジェットで認証し、バックエンドでアクセスを決定する
FACEIO はブラウザの認証フローを処理しますが、JavaScript だけでアクセスを決定しないでください。バックエンドで返された Facial ID を対象アカウントへ関連付け、アカウント状態とリクエストのコンテキストを確認して、許可するアクセスを決定します。
fio.js SDK はブラウザでカメラ撮影、ライブネスチェック、顔認証を実行します。結果はフロントエンドへ返されますが、最終的な認可判断ではありません。バックエンドでアカウント、セッション、アクセスのルールを適用してください。
このチェックリストは、Web アプリの顔認証に関する API とセキュリティ上の判断を扱います。UI フローは統合ガイドを、製品の範囲は顔認証 APIのページを参照してください。
サーバー側認証チェックリスト
セッションを発行する前に、サーバーで次の項目を確認します。
- 秘密の API キーをフロントエンド、モバイルアプリのバンドル、公開リポジトリへ含めないでください。ブラウザでは公開 App ID を使用し、API キーはサーバーだけで管理します。
- Facial ID が現在も登録されていることを確認する必要がある場合は、バックエンドから
CHECKFACIALIDを使用します。このエンドポイントは特定のブラウザコールバックを認証するものではありません。 - 結果を対象のアカウント、テナント、アプリケーションのコンテキストへ関連付けます。クライアントから送られたユーザー ID を信頼元にしないでください。
- ポリシーで追加要素が必要な場合は PIN 確認を使用します。Always Ask for PIN と SETFACIALIDPINCODE でポリシー設定とバックエンド管理を確認してください。
- 成功および失敗した認証イベントを、確認に必要なコンテキストとともに記録します。検証メディア、顔画像、生体認証ハッシュはログに保存しないでください。
- 認証チェックに失敗した場合の再試行、代替アクセス、ロック、手動確認のルールを定めます。
- IP と Facial ID 単位で試行回数を制限し、繰り返し撮影や自動化された不正利用を抑えます。
セッションの関連付けとトークンの発行
バックエンドでアカウント状態とリクエストのコンテキストを確認した後、セッションを発行できます。ブラウザから送られたアカウント ID ではなく、返された Facial ID に対応するアカウントへセッションを関連付けます。
よくある実装ミス
クライアントの状態を信頼する
フロントエンドのコールバックが成功しただけで、アカウントを選択したりアクセスを許可したりしないでください。バックエンドで Facial ID を関連付け、セッション、テナント、認可ルールを適用します。
セッションを関連付けない
認証結果が成功しても、正しいアカウントと要求された操作への関連付けが必要です。ブラウザからアカウント ID を受け入れるのではなく、バックエンドでセッションを関連付けます。
運用メトリクスを記録しない
登録完了、認証結果、カメラエラー、再試行、サポート対応を記録します。これらのメトリクスにより、導入上の問題と製品上の問題を区別できます。
API キーを公開する
API キーはサーバー側の秘密情報です。フロントエンド、公開リポジトリ、モバイルアプリのバンドルに含まれていた場合は、FACEIO Console ですぐに更新してください。
API 統合の開発者向けリソース
次の FACEIO リソースを使用して、fio.js、Facial IDs、Webhooks、API キーの保護、本番向けアカウントフローを確認してください。
よくある質問
サーバーはクライアント側の認証結果をどのように処理しますか?
ブラウザはユーザーが制御できる環境です。fio.js の結果を入力として扱い、バックエンドで Facial ID を対象アカウントへ関連付け、アカウントとリクエストのコンテキストを確認してからセッションを発行するか判断します。Facial ID が登録中か確認する場合は CHECKFACIALID を使用できますが、特定のブラウザコールバックを認証するエンドポイントではありません。
FACEIO API キーはどこに保存しますか?
サーバー側だけに保存し、環境変数またはシークレットマネージャーの使用を推奨します。フロントエンド、モバイルアプリのバンドル、公開リポジトリへ含めないでください。公開 App ID はブラウザで使用できますが、API キーは使用できません。
認証イベントでは何をログに記録しますか?
日時、Facial ID、結果、App ID、確認に必要なコンテキストを記録します。検証メディア、顔画像、生体認証ハッシュは記録しないでください。セキュリティとプライバシーのガイドも確認してください。
API チェックリストと導入チェックリストの違いは何ですか?
導入チェックリストは UX、同意、プライバシー、展開段階を扱います。この API チェックリストは、サーバー側のアカウント確認、セッションの関連付け、API キー、認証後の判断に重点を置きます。
関連ガイド
安全な API 統合を準備する
アカウント認証では FACEIO SDK のフローを使用し、秘密の API キーをバックエンドで管理し、Facial IDs を自社アカウントへ関連付けてサーバー側のセッション制御を適用します。登録を伴わない 2 枚の顔画像比較については、オンライン顔照合 APIを参照してください。