コンテンツにスキップ

ボイスエージェント向け安全な発信者認証の設計

公開日
最終更新日

聴くこの記事を聴く

ボイスエージェントは、シンプルなFAQ対応から、アカウントの変更や取引処理、機密データへのアクセスなど、実際に行動するシステムへと急速に進化しています。この変化により、重要な課題が生まれます。それは「どのようにして発信者の本人確認を行うか」です。

もし

この記事では、エンタープライズ導入現場でForward Deployed Engineerとして培った実績ある認証パターンを紹介します。埋め込みウィジェット向けのセッション認証から、電話特有の方法やOTP認証まで、5つの主要アプローチを解説し、それぞれをElevenLabsプラットフォーム上で決定論的なワークフローゲーティングを使って実装する方法を説明します。

特に重要なのは、認証を会話の推測に任せてはいけない理由を示すことです。認証は、分離されたサブエージェントやツールベースの検証、条件付きワークフロー分岐によって設計し、認証済みユーザーだけが特権操作に到達できるようにする必要があります。

まとめ

認証済みユーザーだけがアカウント関連情報にアクセスできるようにするため、ElevenLabsのワークフローによる厳格な環境・アクセス分離を推奨します。認証は必ず、成功・失敗をブール値で返すツールコールとして実装し、ElevenLabsのワークフロービルダーでディスパッチツールとして設定してください。

決定的認証のためのアーキテクチャ基盤

認証済みユーザーだけがアカウント関連情報にアクセスできるようにするため、ElevenLabsのワークフローによる厳格な環境・アクセス分離をおすすめします。認証は必ず、成功・失敗をブール値で返すツールコールを使い、ElevenLabsのワークフロービルダーでディスパッチツールとして設定してください。

転送条件をツールコールの結果に直接リンクすることで、アカウントデータにアクセスできるサブエージェントは認証成功後のみ到達可能となり、未認証ユーザーからは完全に隔離されます。これにより、認証はLLMの判断に依存せず決定的となり、認証が確認できない限り下流ノードへの進行も防げます。

代替案として、転送式(transfer expression)を使った信頼性の高い転送方法も利用できます。これらの式は、ツールコールの結果で更新される動的変数を参照します。

Workflow Image

ユーザー本人確認の方法

これらの認証方法はElevenLabsプラットフォームで標準サポートされていませんが、CRMやバックエンド/データベースと連携するサーバーサイドツールを使って実装できます。認証データはそちらに保存されます。

ユーザー本人認証の方法

これらの認証方法はElevenLabsプラットフォームに標準搭載されていませんが、CRMやバックエンド/データベースと連携するサーバーサイドツールを使って実装できます(認証データはそちらに保存)。

ホストアプリケーション認証


Documentation on Dynamic Variables:

詳しい設定方法は、

知識ベース認証(KBA)

ボイスエージェントが発信者にアカウント番号、郵便番号、生年月日、セキュリティ回答などの認証情報を尋ねます。サーバーサイドツール(Webhookやバックエンドコール)が、これらの値をデータベース(CRMやIDストアなど)と照合します。ツールは、ブール値(is_error)と説明テキストを含む成功/失敗結果を返します。

この方法は決定的なワークフローゲーティングで実装できます。必要な情報を尋ねた後、ツールディスパッチを設定し、ツールの成功/失敗ステータスに応じてワークフローの分岐条件を設定し、認証済みユーザーを「特権」エージェントノードへ誘導します。

詳しくは、

システム動的変数(電話のみ)

電話(TwilioやSIPトランク経由)での会話では、エージェントは自動的に電話専用のシステム変数(system__caller_id=発信者の電話番号など)にアクセスできます。この変数は会話開始時に自動でセットされます。

参照方法は2つあります:

システム動的変数と開始Webhookに関するドキュメント:

セキュリティ注意:

詳しくは、

高度な知識ベース/セキュリティ質問認証

エージェントが複数のセキュリティ質問を出し、発信者が所定回数正解した場合のみアクセスを許可できます。エージェントは、あらかじめ用意した質問リスト(生年月日、郵便番号、ペットの名前など)からランダムに選び、回答をデータベースへのツールコールで検証します。

Expressions

ドキュメントはこちら:https://panel.temphost.top/docs/eleven-agents/customization/agent-workflows#edges-and-flow-control 

ワンタイムコード

詳しくは、

ワンタイムコード

  1. コード生成:エージェントがサーバーツールコールで専用エンドポイントにリクエストし、安全なワンタイムコードを生成して、ユーザーの希望するチャネル(SMSやメール)に送信します。
  2. ユーザープロンプト:エージェントがユーザーに受け取ったコードの入力を求めます。音声モードでは、ユーザーがコードを口頭で伝え、音声認識で取得します。
  3. コード検証:エージェントがユーザー入力のコードを2回目のツールコールでバックエンドの検証サービスに送信します。バックエンドはコードが一致し、有効期限切れや既使用でないかを確認します。
  4. ワークフロー分岐:エージェントは検証結果に応じて処理します。成功:コードが正しければ、成功条件で認証後のワークフローへ進みます。失敗:コードが間違っていれば、再入力を促すか、リカバリー手順(例:新しいコード送信)を実行します。

実装ワークフローの詳細は以下の通りです:

まとめ

セキュリティ対策:総当たり攻撃防止のためレート制限を設け、コードの有効期限は3~5分程度にし、再試行回数も制限してください。音声入力の場合は、スピーチtoテキストの精度確認プロンプトも検討しましょう。

関連記事

最高品質のAIオーディオで創造する