FACEIOを使い始める
パスワードレス顔認証を 5分以内で実装できます。FACEIOアプリケーションを作成し、セキュリティとプライバシーの設定を確認して、 fio.jsを組み込みます。その後、 enroll() を新規ユーザーに、 authenticate() を既存ユーザーに使用します。
5分以内でFACEIOを導入
WebサイトとWebアプリケーション向けの実践的な設定ガイド
このガイドでは、FACEIOの統合手順を説明します。
FACEIO Console ↗でアプリケーションを作成し、顔認識エンジンを選択して、セキュリティとプライバシーの設定を確認した後、 fio.js ライブラリを読み込みます。続いて新規ユーザーを登録し、既存ユーザーを認証して、Consoleからアプリケーションを管理します。
クイックヒント
動作する登録と認証の例は、 HTML統合テンプレート で確認できます。
統合例: 実際のアプリケーションでFACEIOがどのように動作するか、 コミュニティチュートリアル のフレームワーク別実装例をご覧ください。
FACEIOの統合手順
アプリケーションの作成から本番設定まで、順番に進めます。
FACEIOの仕組み
FACEIOがWebサイトやWebアプリケーションに顔登録と認証を追加する仕組みを確認します。
統合チェックリスト
WebサイトまたはWebアプリケーションに fio.js を統合するための重要な手順を確認します。
アプリケーションを作成
最初のFACEIOアプリケーションを設定し、顔認識エンジンを選択して、セキュリティ設定とウィジェットの外観を調整します。
fio.jsライブラリを追加
fio.js ライブラリをWebサイトに組み込み、アプリケーションのPublic IDで初期化します。
enroll()とauthenticate()
fio.jsで新規ユーザーを登録し、既存ユーザーを認証する方法を確認します。
最初のユーザーを登録
動作するコード例で登録と認証を実装し、結果をバックエンドのアカウントとセッションの処理に接続します。
統合テンプレート
登録と認証の両方を含むHTMLテンプレートを使用します。
アプリケーションを管理
アクティビティの確認、セキュリティ設定、webhookの追加、APIキーの取得、顔インデックスの管理を行います。
FACEIOの概要
FACEIOをWebログインフローに追加する仕組み
要点
FACEIOは、WebサイトとWebアプリケーション向けのクロスブラウザー顔認証フレームワークです。 fio.js ライブラリは既存のフロントエンドから登録・認証ウィジェットを開き、アカウント処理に使用するFacial IDとアプリケーションのpayloadを返します。
FACEIOとは?
-
FACEIOは、 マネージドサービスまたはオンプレミス環境で利用できるクロスブラウザー顔認証フレームワークです。クライアント側JavaScriptライブラリの
fio.jsは、WebサイトとWebアプリケーションに登録と認証のフローを追加します。 -
fio.jsをフロントエンドに追加し、アプリケーションの Public ID で初期化します。新規ユーザーはenroll()で登録し、既存ユーザーは対応ブラウザーとカメラからauthenticate()を実行してログインします。 -
バックエンドでは、返された Facial ID を対象アカウントに関連付け、独自の認可とセッションのルールを適用してください。また、顔認証を完了できないユーザー向けの復旧手段も用意してください。
-
FACEIOは、対応する最新ブラウザー上で一般的なWebカメラやスマートフォンのフロントカメラを使用でき、クライアント側に専用の生体認証センサーは不要です。JavaScriptライブラリ
fio.jsはフレームワークに依存せず、一般的なフロントエンドおよびバックエンド構成に接続できます。
FACEIOの主な機能
新しいキャプチャーを登録済みの顔インデックスと比較し、FACEIOの基本フローではパスワードやOTPを要求せずに認証結果を返します。
アプリケーションの設定時に、対応する 顔認識エンジン とデプロイ先のリージョンを選択します。
fio.jsライブラリはフレームワークに依存せず、JavaScript、React、Vue、Angular、Next.jsなどのフロントエンド構成に統合できます。
対応する最新ブラウザーと一般的なWebカメラまたはフロントカメラで動作します。 アプリケーションを作成 ↗
カメラへのアクセスとブラウザー機能を前提として、主要ブラウザーの現行バージョンに対応しています。
顔認証フローにはlivenessチェックと、デフォルトで有効なPIN Code検証が含まれます。
専用の生体認証センサーを必要とせず、 設定可能なセキュリティ制御 と 文書化されたプライバシー対策 を提供します。
クラウドの顔認識エンジンと オンプレミス版PixLab Insightに対応します。選択した顔認識エンジンが、アプリケーション所有者の設定に従って生体認証ハッシュを管理します。
プライバシーとデータ保護
-
アプリケーション所有者は、必要な通知と同意フローを用意し、代替のアクセス方法を維持し、ユーザーからの削除依頼に対応する必要があります。本番公開前にプライバシーのベストプラクティスを確認してください。
-
FACEIO 自体は生体認証ハッシュを保存、処理、参照しません。アプリケーション所有者が選択した顔認識エンジンが、デプロイと保存の設定に従って管理します。サービスのプライバシーとセキュリティについては、トラストセンターを確認してください。
クイックヒント
動作する登録と認証の例は、 HTML統合テンプレート 詳しくは よくある質問 もご覧ください。
統合チェックリスト
スムーズに fio.js 統合するための重要な手順
まず、 FACEIO Console ↗ でFACEIOアプリケーションを作成し、WebサイトまたはWebアプリケーションに関連付けます。次に、 fio.jsを読み込んで初期化し、テストユーザーを登録して、既存ユーザーの認証フローを確認します。
始める前に
コード例を含む公式統合ガイドは、 デベロッパーセンターで確認できます。
次の手順でユーザー向け顔認証を有効にします。
FACEIO Consoleにアクセス
メールアドレスを使用して FACEIO Console ↗ にログインします。ログイン後、 Application Wizard を使用して最初のFACEIOアプリケーションを作成し、WebサイトまたはWebアプリケーションに関連付けます。
アプリケーションを設定
Application Wizard が設定手順を案内します。アプリケーション名を入力し、 顔認識エンジンを選択します。続いて、クラウドの保存リージョン、セキュリティ設定、ウィジェットの外観を確認します。
fio.jsライブラリを統合
FACEIOアプリケーションを作成したら、顔認証JavaScriptライブラリのfio.jsをWebサイトに実装し、アプリケーションのPublic IDで初期化します。
登録と認証をテスト
fio.jsを読み込んで初期化した後、
enroll() と
authenticate()
を新規ユーザーと既存ユーザーに対して呼び出します。詳細は以降のセクションで説明します。
関連資料
アプリケーションを作成
ConsoleでFACEIOアプリケーションを設定
-
ユーザー向けに顔認証を提供するには、まず
fio.jsを実装するWebサイトまたはWebアプリケーションを、FACEIO Console ↗でFACEIOアプリケーションに関連付けます。 -
登録された各ユーザーには Facial IDが割り当てられ、アプリケーションは
payloadパラメーターを通じて独自のメタデータを関連付けられます。選択した 顔認識エンジンが、分離されたアプリケーションインデックス内の生体認証ハッシュを管理します。FACEIO自体は生体認証ハッシュを保存、処理、参照しません。エンジン、デプロイ先のリージョン、プライバシー設定は、FACEIO ConsoleのApplication Manager ↗で確認してください。 -
新しいアプリケーションは FACEIO Console ↗ で Application Wizardを使って数分で作成できます。ウィザードがアプリケーション名、 顔認識エンジン の選択、セキュリティ設定、ウィジェットのカスタマイズを案内します。
アプリケーションを作成して設定する手順:
FACEIO Console ↗にアクセスします。
Consoleのメイン画面で新しいアプリケーションを選択し、Application Wizardを開きます。
Application Wizardの案内に従い、アプリケーション名とプライバシーポリシーのURLを入力します。次に、顔認識エンジン、クラウドの保存リージョンまたはオンプレミス環境、セキュリティ設定、ウィジェットの外観を指定します。
Application Wizardを開く
設定内容を確認して送信します。アプリケーションの作成後、 Application Manager ↗が開き、手順付きの統合ガイドとともに新しいアプリケーションを管理できます。
アプリケーションを作成しました
ConsoleからアプリケーションのPublic IDをコピーします。この値でfio.jsを初期化してから、enroll()またはauthenticate()を呼び出します。
fio.jsライブラリを追加
顔認証ライブラリをWebサイトに統合
完全なドキュメント
完全な統合ガイドと公式ドキュメントは、 統合ガイドで確認できます。
最初のアプリケーションを
FACEIO Console ↗で最初のアプリケーションを作成したら、FACEIOの顔認証JavaScriptライブラリであるfio.jsをWebサイトまたはWebアプリケーションに統合します。ユーザー向けに顔認証を有効にするために必要な手順です。基本設定は、次に示す3行のコードで行えます。
1
fio.js をサイトに読み込む
fio.jsを使用するHTMLページで、終了</body>タグの直前に次のスニペットを貼り付けます。
fio.jsはFACEIOのCDN ↗から読み込まれます。
上記のスニペットは fio.js を非同期で読み込みます。基本的なHTMLページでは、次のようにライブラリを初期化できます。
fio.js を読み込んだ基本HTMLページ
-
コピー、調整、サーバー上でのテストに使用できる完全なテンプレートは、 HTML統合テンプレート をご覧ください。
-
fio.jsは必ず cdn.faceio.net ↗から直接読み込んでください。自己ホストすると、修正や新機能を受け取れません。
2
faceIO オブジェクトを作成
fio.jsを初期化するには、新しいfaceIO()オブジェクトを作成し、アプリケーションのPublic IDを渡します。次の例のように記述します。このスニペットはステップ1の読み込みコードの直後にも追加できます。完全な例はHTML Boilerplateをご覧ください。
新しいfaceIO()オブジェクトを作成するJavaScriptスニペット
続行する前に、アプリケーションの Public ID が FACEIO Console ↗のApplication Managerに表示されていることを確認し、次の作業を完了してください。
- FACEIOアプリケーションを作成し、顔認識エンジンを選択して、FACEIO Console ↗で有効化する
- Application Manager ↗でPIN Code要件やドメイン制限などのセキュリティ設定を確認し、セキュリティのベストプラクティスも読む
- プライバシーに関する推奨事項とプライバシーのベストプラクティスを確認し、Facial IDの取り扱いを決める
3 ウィジェットを起動
fio.js の読み込みと初期化が完了したら、 enroll() で新規ユーザーを登録し、 authenticate() で既存ユーザーを認証します。
-
enroll()は新規ユーザーの登録 に使用し、 -
authenticate()は既存ユーザーの認証 に使用します。
各メソッドを説明する前に、 fio.js を初めて実装する一般的なHTMLページを示します。
fio.js を読み込み、 enroll() または
authenticate()
参照テンプレート
HTML Boilerplate セクションには、 enroll() と authenticate() の両方を含む完全な実装例があります。
最初のユーザーを登録する前に、 fio.js が提供する基本要素を確認します。
登録と認証のメソッド
新規ユーザーにはenroll()、既存ユーザーにはauthenticate()を使用します
fio.jsは、顔認証フローに2つの主要メソッドを提供します。
enroll() メソッド
-
新規ユーザーを登録するには、先ほど作成した
faceIOオブジェクトのenroll()メソッドを呼び出します。このメソッドを使うと、アプリケーション内で新規ユーザーをトランザクション単位で登録できます。この処理は一般にonboardingと呼ばれ、従来のユーザー登録フローに相当します。 -
enroll()を呼び出すとFACEIO Widgetが開き、必要に応じてユーザーの同意とカメラへのアクセスを求め、登録に必要な顔データを取得します。選択した顔認識エンジンが、今後の認証に使用する生体認証ハッシュを生成してインデックス化します。 -
enroll()は複数のオプションパラメーターを受け取ります。たとえば、localeは操作言語、permissionTimeoutはカメラアクセスの待機時間、payloadはユーザーに関連付ける任意のデータ(メールアドレス、名前、IDなど)を指定します。 このpayloadは、今後の認証に成功したときに返されます。 -
enroll()はPromiseを返し、登録に成功するとuserInfoオブジェクトで解決されます。返り値にはFacial ID、登録日時、details.ageとdetails.genderの推定値が含まれます。Facial IDは、対応するバックエンドアカウントを検索するキーとして使用できます。 -
ユーザーがカメラへのアクセスまたは利用規約を拒否すると、Promiseは対応するエラーコードでrejectされます(
fioErrCode.PERMISSION_REFUSED、fioErrCode.TERMS_NOT_ACCEPTEDなど)。完全な一覧はエラーコードセクションをご覧ください。 -
enroll()メソッドのパラメーター、戻り値、エラー処理については、統合ガイドをご覧ください。
authenticate() メソッド
-
登録済みユーザーを認証して識別するには、
faceIOオブジェクトのauthenticate()メソッドを呼び出します。このメソッドは登録済みユーザーに対してトランザクション単位の認証と識別を実行し、従来のログインフローに相当します。 -
authenticate()を呼び出すとFACEIO Widgetが開き、必要に応じてカメラへのアクセスを求め、設定されたlivenessチェックと顔認識を実行して認証結果を返します。 -
アプリケーションの セキュリティ設定によっては、顔認識エンジンがユーザーを識別した後、 登録時に設定したPIN Codeの確認が必要です。確認後に
authenticate()メソッドが成功します。 -
authenticate()は、カメラアクセスの待機時間を指定するpermissionTimeout、操作言語を指定するlocaleなどのオプションを受け取ります。すべての項目はauthenticate()のドキュメントで確認できます。 -
authenticate()はPromiseを返し、識別に成功するとuserDataオブジェクトで解決されます。主なプロパティは、登録時に関連付けたデータを含むpayloadと、ユーザー固有の識別子であるfacialIdです。これらをバックエンドの検索キーとして使用し、ユーザー固有のデータを取得できます。 -
authenticate()メソッドのパラメーター、戻り値、エラー処理については、統合ガイドをご覧ください。
次へ進む
2つのメソッドを組み合わせ、ユーザー登録と認証の動作例を実装します。
最初のユーザーを登録して認証
登録と認証の動作例
顔認識を開始するには、
faceIO()クラスの2つの主要メソッドであるenroll()またはauthenticate()を呼び出します。enroll()は新規ユーザーの登録に使用し、authenticate()は既存ユーザーを識別します。
新規ユーザーを登録
新規ユーザーの登録では、同意を取得した後に顔特徴を抽出してインデックス化します。enroll()を呼び出すだけで開始できます。
enroll()メソッドの一般的な呼び出し例
-
初期化:アプリケーションのPublic IDで
faceIOオブジェクトを作成します。"app-public-id"をFACEIO Console ↗で取得した実際のPublic IDに置き換えます。 -
登録の呼び出し:
enroll()を呼び出すと登録が始まり、必要に応じてユーザーの同意とカメラへのアクセスを求め、顔特徴を抽出します。payloadパラメーターを使って、ユーザーID(whoami)やメールアドレスなどのデータをユーザーに関連付けられます。 このpayloadは、今後の認証に成功したときに返されます。 -
登録結果:登録に成功すると、Promiseは
userInfoオブジェクトで解決され、一意のFacial ID、登録日時、details.genderとdetails.ageの推定値が返されます。Facial IDをデータベースに保存して、今後の認証をこのユーザーに関連付けてください。 -
エラー処理:登録の失敗を捕捉し、
handleError()関数を実装して各エラーコードを適切に処理してください。すべてのコードは エラーコードのドキュメント で確認できます。
既存ユーザーを認証
同様に、登録済みユーザーの認証はauthenticate()を呼び出すだけで開始できます。
authenticate()メソッドの一般的な呼び出し例
-
初期化:登録例と同様に、アプリケーションのPublic IDで
faceIOオブジェクトを初期化します。 -
認証の呼び出し:
authenticate()を呼び出すと認証が始まり、必要に応じてカメラへのアクセスを求め、顔認識を実行します。localeパラメーターはウィジェットの操作言語を指定します。 -
認証結果:認証に成功すると、Promiseは
userDataオブジェクトで解決されます。userData.facialIdは、すべての認証で同じ値を保つユーザー固有の識別子です。バックエンドでユーザーを検索する主キーとして使用してください。userData.payloadには、登録時に関連付けたデータが含まれます。例:{"whoami": 123456, "email": "john.doe@example.com"}。 -
エラー処理:認証の失敗を捕捉し、
handleError()関数で返されたエラーコードを処理してください。詳しくはエラーコードのドキュメント で確認できます。
次のステップ
HTML統合テンプレート に、 enroll() と authenticate()
を組み合わせた完全なスターターテンプレートがあります。
完全な統合テンプレート
統合フローを含むHTMLスターターテンプレート
HTMLテンプレートは、初期化、登録、認証、エラー処理を1つの参照ファイルにまとめています。本番利用前に、アカウントの関連付け、セッション管理、復旧手段、ユーザー向けメッセージを調整してください。同じコードは GitHub Gist ↗でも確認できます。
重要:プレースホルダーを置き換える
app-public-idを実際のアプリケーションPublic IDに置き換えてください。fio.jsの初期化に使用するPublic IDは、FACEIO Console ↗のApplication Managerで確認できます。
統合テンプレート
実装上の注意
- メソッドの呼び出し:この例では、新規ユーザーの登録に
enroll()、既存ユーザーの認証にauthenticate()を使用します。例を調整する前に、統合ガイドで各メソッドのオプション、戻り値、エラーを確認してください。 -
payloadを調整:
enroll()メソッドのpayloadパラメーターを変更すると、独自のデータを登録ユーザーに関連付けられます。payloadは今後の認証時に返されます。詳しくはenroll()のドキュメントをご覧ください。 - HTTPサーバーが必要:
fio.jsはブラウザーのセキュリティ要件により、HTTPサーバー経由で読み込む必要があります。ファイルシステムから直接実行することはできません。テンプレートをサーバーのHTMLディレクトリに配置し、ブラウザーからアクセスしてください。詳しくはセキュリティのベストプラクティスをご覧ください。 - Facial IDを保存:登録に成功したら、返された
facialIdをデータベースに保存してユーザーアカウントに関連付けます。このIDを今後の認証で検索キーとして使用します。 - エラー処理:エラーハンドラーは返されたエラーコードを受け取ります。WebサイトまたはWebアプリのUIと復旧フローに合わせて各メッセージを調整してください。
統合例の完了
これで、fio.jsの読み込み、enroll()の呼び出し、authenticate()の呼び出しを含む参照実装が完成しました。次に、アプリケーション管理と本番環境向けの設定を確認します。
アプリケーションを管理
アプリケーションの設定、イベント、ユーザー、APIアクセスを確認
FACEIO Console ↗のApplication Managerを使用し、fio.jsを統合した各アプリケーションの設定と動作を確認します。
リアルタイムアクティビティ
アプリケーションの登録と認証のアクティビティを確認します。
セキュリティ設定
PIN Code要件、ドメインoriginのフィルタリング、国コード制限などのセキュリティ設定を確認します。
ユーザー管理
登録済みの Facial ID を削除し、ユーザーの削除請求に対応します。
webhook統合
webhook を設定し、リアルタイムイベントの通知とバックエンド同期に使用します。
顔インデックスの管理
アプリケーションの顔インデックス管理、保存容量の拡張、 on-premiseへの移行、S3 bucketへの転送を行います。
ウィジェットのカスタマイズ
ウィジェットのテーマ、色、レイアウトをWebサイトのデザインに合わせます。
APIキーの管理
APIキー を取得し、バックエンドAPIの呼び出しとクォータを確認します。
サポートと保守
サポート窓口からチケットの作成、プランの変更、アプリケーションのライフサイクル管理を行います。
FACEIOの統合を続ける
アプリケーションを作成して登録と認証をテストし、返されたFacial IDをバックエンドのアカウント情報に関連付けます。本番公開前にセキュリティとプライバシーのガイドを確認してください。