外部のテレフォニーサービスプロバイダーに接続する
テレフォニーインラインフックを使用して外部のテレフォニーサービスプロバイダーに接続すると、ユーザーにワンタイムパスコード(OTP)を送信できるようになります。ここでは、テレフォニーインラインフックを追加および管理する方法について説明します。
仕組み
テレフォニーインラインフックは、外部システムでホスティングされるWebサービスにOktaからアウトバウンドで呼び出しを行えるようにします。テレフォニーサービスプロバイダーは、SMSや音声通話などの電話の鑑別工具が関与する登録、認証、復旧フローに統合することができます。
外部のWebサービスに条件ロジックを構成することで、リクエストを各種テレフォニープロバイダーに送信できます。たとえば、リクエストの送信先を発信元の国に基づいて決めることができます。また、プライマリプロバイダーが失敗した際に、エラー処理を含めて、セカンダリテレフォニープロバイダーに送信することができます。
ユーザーがOTPを要求すると、Oktaはテレフォニーインラインフックを使ってこのリクエストを外部のWebサービスに転送します。次に、サービスはテレフォニープロバイダーにメッセージの配信を要求します。テレフォニープロバイダーはこのリクエストを処理し、ユーザーのデバイスにOTPを送信します。また、応答としてOTP配信ステータスをOktaに送信します。この応答はSystem Logに登録されます。
テレフォニープロバイダーがOTPを配信できない場合、Oktaはフォールバックプロバイダーを使ってOTPを送信します。ただし、このフォールバックメカニズムではレートが大幅に制限されます。
より堅固な鑑別工具を代わりに使用する
電話のOTPを使用しても、ユーザーの身元確認を保証できるわけではありません。「SMSや通話による本人確認の潜在的なリスク」を参照してください。
Oktaでは、より堅固な鑑別工具の使用をユーザー認証で必須にすることをお勧めします。たとえば、ユーザーの存在を確認するだけでなく、デバイスとの紐づけやハードウェア保護、フィッシング耐性のある鑑別工具を使用します。そのような鑑別工具には、認証アプリやメールのマジックリンク、FIDO2(WebAuthn)などがあります。「多要素認証」を参照してください。
開始する前に
次のいずれかの方法で、目的の外部テレフォニープロバイダーをOktaにセットアップします。
- Okta Workflowsを使用します。「外部テレフォニープロバイダー用のOkta Workflowsを構成する」を参照してください。[Invoke URL(呼び出しURL)]、[Alias(エイリアス)]、[Client Token(クライアントトークン)]をメモします。
- Okta APIを使用します。開発者ドキュメント「テレフォニーインラインフックリファレンス」を参照してください。
テレフォニーインラインフックを追加する
-
Admin Consoleで に移動します。
- [Add Inline Hook(インラインフックの追加)]をクリックし、[Telephony(テレフォニー)]を選択します。
-
以下のオプションを構成して[Save(保存)]をクリックします。
フィールド
説明
Name(名前) インラインフックのわかりやすい名前を入力します。 URL [Invoke URL(呼び出しURL)]を入力します。これは、OTPをエンドユーザーのデバイスに送信するエンドポイントを含むテレフォニープロバイダーのURLです。 Enforce Okta service protection rate limits(Oktaサービス保護レート制限を強制適用) Oktaはデフォルトでテレフォニーインラインフックにレート制限を強制適用します。これにより、テレフォニープロバイダーアカウントへの望ましくない課金を引き起こす可能性があるトールフラウド攻撃が防止されます。「テレフォニーを使用した詐欺の防止または軽減」を参照してください。
このレート制限保護はオプトアウトできます。ただし、これを行うと、トールフラウド攻撃を受けた場合にアカウントへ多額の課金が発生する可能性があります。Oktaはこのような課金について責任を負いません。Oktaはこの保護を有効のままにしておくことを推奨します。
Authentication field(認証フィールド) ヘッダーベースの認証の認証情報を入力します。
Okta Workflowsを使用する場合は、「外部テレフォニープロバイダー用のOkta Workflowを構成する」で設定したエイリアスを入力します。
Authentication secret(認証シークレット) [Client Token(クライアントトークン)]を入力します。外部サービスは、認証シークレットを使用して、リクエストがサービスに対するOktaリクエストであることを検証する必要があります。 Custom Headers(カスタムヘッダー) 任意。カスタムヘッダーフィールドと値を追加します。
テレフォニーインラインフックをテストする
- [インラインフック]で、[Active(アクティブ)]なテレフォニーインラインフックを見つけ、 をクリックします。インラインフックの[プレビュー]タブが開きます。
- このタブで、[Configure inline hook request(インラインフックリクエストの構成)]に移動し、テストのためにユーザーの情報を入力します。
- [data.userProfile]:電話を有効な鑑別工具として使用しているユーザーの名前を入力します。
- [requestType]:ドロップダウンメニューから、MFA登録、MFA検証、アカウントのロック解除、またはパスワードリセットのいずれかのイベントを選択し、ユーザーにSMSテキストの送信や音声通話を行います。
- [Preview example Inline hook request(サンプルインラインフックリクエストのプレビュー)]セクションで、[Generate Request(リクエストを生成)]をクリックします。これにより、Oktaがテレフォニープロバイダーに送信するJSONリクエストが生成されます。
- 任意。[Edit(編集)]をクリックして生成されたリクエストを編集します。たとえば、リクエストを送信する前に、ユーザープロファイルや電話番号を編集できます。
- [View Response(サービス レスポンスの表示)]で、[View Response(レスポンスの表示)]をクリックします。これにより、サービスプロバイダーからのレスポンスが表示されます。
テスト中にテレフォニープロバイダーが失敗した場合、OTPは生成されません。
テレフォニーインラインフックの指標を表示する
Oktaでは、テレフォニーサービスプロバイダーのパフォーマンスの監視に役立つ基本的な指標が提供されます。指標は、過去30日間でフックが実行された合計回数、成功した実行数と失敗した実行数、および成功した実行の平均実行時間を追跡します。
- Admin Consoleで に移動します。
- [Active(アクティブ)]なテレフォニーインラインフックを見つけ、 をクリックします。
テレフォニープロバイダーを無効化する
orgが利用できるアクティブテレフォニーサービスプロバイダーは1つだけです。ただし、異なるテレフォニープロバイダーの複数のインラインフックを構成し、それを切り替えて使用することは可能です(たとえば、現在のプロバイダーでサービスの問題が発生した場合など)。
- Admin Consoleで に移動します。
- アクティブなテレフォニーインラインフックを見つけ、 をクリックします。