Webhookイベントカード

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

Webhookの一般的な動作は次のとおりです。

  • Webhookのセットアップ:受信側アプリケーション(Webhookコンシューマー)は、送信側アプリケーション(Webhookプロバイダー)からのWebhookペイロードの着信を待機するエンドポイントURLを使ってWebhookをセットアップします。

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

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

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

    Webhookの登録:Webhookを確立するには、エンドポイントURLをプロバイダーに登録する必要があります。これは、受信側アプリケーションがデータの着信を待機する場所です。

    Webhookの一般的な登録プロセスは次のとおりです。

    • エンドポイントURLの登録:受信側アプリケーション(Webhookコンシューマー)はエンドポイントURLを提供します。これは、送信側アプリケーション(Webhookプロバイダー)からのWebhookペイロードの着信を待機するURLです。

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

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

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

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

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

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

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

    ペイロードを処理するときは、Webhookの2つの側面に留意する必要があります。

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

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

  • 応答と確認:ペイロードを処理した受信側アプリケーションは、プロバイダーにHTTP応答を送信します。この応答は、受信側がペイロードを正しく受信して処理したかどうかを示します。

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

  • Webhookの登録解除:特定のイベント通知を受信する必要がなくなった場合、別のエンドポイントに切り替える場合、またはWebhookを完全に廃止する場合は、最初に確立したWebhook接続の登録を解除する必要があります。

    Webhookの一般的な登録解除プロセスは次のとおりです。

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

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

    • 非アクティブ化:プロバイダー側でイベントの登録を正しく解除したら、エンドポイントURLのWebhookを非アクティブ化します。これでイベントペイロードを受信しなくなります。

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

総合的に、Webhookは、さまざまなシステムが接続を維持し、イベントにリアルタイムに近いスピードで応答する方法を提供することで、効率的な自動化とアプリケーション間の統合を実現します。

関連項目

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

Webhookイベントを登録する

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