Webhookイベント

Webhookは、異なるオンラインサービスまたはアプリケーションどうしがリアルタイムに近いスピードで通信するための方法です。これにより、アプリケーションは特定のイベントの発生時に別のアプリケーションにデータを送信できます。このメカニズムは、プロセスを自動化し、継続的な手動介入の必要なしでさまざまなシステムの同期を保つためによく利用されます。

Webhookの登録と登録解除は、Webhookのセットアップと管理における重要な概念です。これらのプロセスには、Webhookを介した2つのアプリケーション間の通信チャネルの有効化と無効化が含まれます。

Webhookの概要

Webhookフローの構成は、いくつかの一般的な手順から成ります。

  1. Webhookをセットアップします。受信側アプリ(Webhookコンシューマー) は、エンドポイントURLを使用してWebhookをセットアップします。エンドポイントURLは、送信側アプリ(Webhookプロバイダー)からの受信Webhookペイロードをリッスンします。

    Okta管理者は、Oktaプラットフォームでイベントが発生した場合に通知を受信するWebhookをセットアップできます。このイベントには、たとえば、ユーザーの新規作成、認証イベント、パスワードのリセットなどがあります。

    あるいは、サードパーティアプリを使って外部の変更を通知するようにWebhookを構成することもでき、それを使ってOkta org内の詳細を更新できます。

  2. Webhookを登録します。Webhookを確立するには、エンドポイントURLをプロバイダーに登録する必要があります。これは、受信側アプリが受信データをリッスンする場所です。

    1. エンドポイントURLを構成します。受信側アプリ(Webhookコンシューマー) はエンドポイントURLを提供します。これは、送信側アプリ(Webhookプロバイダー)から受信するWebhookペイロードをリッスンするURLです。

    2. イベントをサブスクライブします。外部アプリやOktaのようなサービスなどのWebhookプロバイダーを利用することで、特定のイベントをサブスクライブできます。たとえば、ユーザーの作成や非アクティブ化、サインイン試行、プロバイダーの機能に関連する別の種類のイベントをサブスクライブします。

    3. ペイロードを構成します。Webhookの登録時にペイロードの形式と内容を構成できます。これには、イベントの発生時にWebhookプロバイダーがペイロードに含めるデータの指定が含まれます。

    4. エンドポイントURLを確認または検証します。一部のWebhookシステムでは、提供されたエンドポイントURLが有効であり、制御下にあることを確認するための検証手順が必要です。これには、検証の完了に応答を必要とするエンドポイントに対してWebhookプロバイダーに検証トークンを送信させることが含まれる場合があります。

    5. Webhookをアクティブ化します。登録が正しく完了すると、アクティブなWebhookはイベント通知を受信する準備が整います。指定したイベントが発生すると、プロバイダーは関連データが含まれるペイロードを登録済みエンドポイントURLに送信します。

  3. イベントトリガーを設定します。指定したイベントがプロバイダープラットフォームで発生すると、プロバイダーはイベントの関連情報が含まれるペイロードを生成します。

  4. ペイロードを受信します。Webhookプロバイダーは登録済みのURLに対して、ペイロードとイベントの詳細が含まれるHTTP POSTリクエストを送信します。このデータは、通常はJSON形式で送信されます。

  5. ペイロードを処理します。受信側アプリのサーバーは、受信したPOSTリクエストを処理します。JSONペイロードを解析し、イベントデータに基づいてアクションを実行します。これには、データベースの更新、通知の送信、何らかのビジネスロジックのトリガーなどが含まれます。

    Webhookペイロードを処理する場合、2つの側面を考慮してください。

    • 要求の集約:受信ペイロードは、個別アイテムまたはアイテムの収集バッチとして受信できます。

    • 要求のバッチ処理:ペイロードが収集バッチとして届いた場合、Webhookイベントフローは各アイテムを個別に処理することも、バッチ全体を1つのアイテムとして処理することもできます。

  6. プロバイダーに応答します。ペイロードを処理した受信側アプリは、プロバイダーにHTTP応答を送信します。この応答は、受信側がペイロードを正しく受信して処理したかどうかを示します。

  7. 再試行メカニズムをセットアップします。ネットワークの問題などの理由により、Webhookによる配信が失敗する場合があります。信頼性を確保するために、多くのWebhookシステムには再試行メカニズムが実装されています。最初の配信試行が失敗すると、システムはペイロードの配信をさらに試行します。

  8. 特定のイベント通知を受信する必要がなくなった場合、別のエンドポイントに切り替える場合、またはWebhookを廃止する場合には、Webhookを登録解除します。

    1. エンドポイントURLを削除します。Webhookの登録を解除するには、通常は特定のエンドポイントURLへのペイロードの送信を停止するようにWebhookプロバイダーに伝えます。

    2. イベントのサブスクライブを解除します。登録と同様に、どのイベントのサブスクライブを解除するかを指定する必要があります。これにより、これらのイベントに関する通知を受信しないようになります。

    3. Webhookを非アクティブ化します。プロバイダー側でイベントの登録を正しく解除したら、エンドポイントURLのWebhookを非アクティブ化して、イベントペイロードを受信しないようにします。

Webhookにはインターネットを介したデータ交換が含まれるため、セキュリティが極めて重要になります。APIキーやトークンなどの適切な認証および認可メカニズムを実装することで、認可された当事者のみがWebhookデータを送受信できるようにします。

関連項目

Webhookイベントフローを構築する

Webhookイベントを登録する

Webhookイベントの登録を解除する