通知 Webhook
通知 Webhook は、IBM® Verify において非常に汎用性の高い機能です。 管理者は、選択した一連のイベント・データをリアルタイムで受信するようにエンドポイントをセットアップできます。 Verify で発生したすべてのイベントは、構成済みの Webhook に伝搬できます。これにより、Verify はイベント・ドリブン方式で外部システムと対話できるようになります。
- ユーザーのログイン試行のトラッキング
- クラウド・ディレクトリーの変更に応じて、外部 CRM またはユーザー・ディレクトリーを最新の状態に維持
- 新規 MFA デバイスの検出
- SIEM へのイベントの転送
イベントペイロードに関する情報は、 「イベントタイプとペイロード」 を参照してください。
管理者は、関心事項のセットに合わせて通知 Webhook を構成できます。 この関心事項のセットによって、Verify から外部システムに送信されるイベントが決まります。
通知 Webhook は大容量です。 負荷がかかっている場合、Verify は多数のイベントをパブリッシュします。 外部システムは、同等レベルの負荷を受け取れるように準備ができている必要があります。 通知 Webhook がユーザー・フローで使用される場合は、管理者が構成した Webhook エンドポイントからの応答が迅速であることが重要です。
構成
Webhook 構成オブジェクト構造の詳細については、API の資料を参照してください。 このセクションでは、通知 Webhook での関心事項の部分に焦点を当てて説明します。
Webhook 構成 JSON ファイルには、notification プロパティーが含まれています。 このプロパティーはネストされた JSON オブジェクトで、通知固有の構成オプションをすべて含んでいます。 interests プロパティーは、この notification オブジェクト内で定義されます。 イベントが発生すると、interests プロパティー内の各エレメントに対してイベントが検査されます。 interests プロパティー内のいずれかのエレメントが一致と評価されると、イベントは Webhook 宛先に送信されます。 関心事項は順番にチェックされるため、高性能なユース・ケースでは、最も一般的に一致するものを先頭に置くことが最も効率的な方法です。
name と clauses のリスト) で構成されます。 これらの節によって、関心事項が一致であるかどうかが決定されます。 clauses は AND 演算で結合され、それらがすべて一致する場合にのみ関心事項は満たされます。 節は、以下の 3 つのフィールドで構成されます。key- この節が一致するかどうかを検出するために、イベントのどこを検査するかを決定するために使用されます。 これは JSON プロパティー名でなければなりません。
keyを使用して、イベントのdataオブジェクト内の最上位キーまたはキーを評価できます。dataオブジェクトを参照する場合は、JSON ドット表記が使用されます。 例えば、data.actionなどです。 valueValueは、検査対象のフィールドの予期される値です。operation- この節での一致により、イベントが
includedとなるかexcludedとなるかを示します。
Key:event_type, Value:authentication, Operation:includeKey:data.subtype, Value:federation, Operation:exclude
これらの節は論理評価になります。
event_type IS authentication AND data.subtype IS NOT federation
例
以下のコードは、さまざまなシナリオを満たすための、Webhook 構成内の notification プロパティーの完全な例です。
- すべての非連携認証イベント
"notifications": { "interests": [ { "name": "Non-federation authentication events", "clauses": [ { "key": "event_type", "value": "authentication", "operation": "include" }, { "key": "data.subtype", "value": "federation", "operation": "exclude" } ] } ] }
リプレイの検出
イベントのid フィールドは、そのイベントの存続期間中は一貫して維持されます。 Webhook コールアウトにあっても、イベント API から取得されるイベント・データにあっても同様です。 この id 値は、通知 Webhook の X-Webhook-ID ヘッダーの値としても使用されます。通知デッド・レター
通知が Webhook に正常に配信されなかった場合に記録するように Webhook を構成できます。
管理者は、通知 Webhook のデッド・レター API とイベント API を併用して、失敗した配信を調整できます。 これらの記録されたデッド・レターには、未配信の通知の ID と通知の時刻が含まれています。 未配信の通知を表示するために、管理者は ID 値を使用して、単一のイベント値についてイベント API を直接照会できます。 複数のイベントのタイム・スタンプを使用して一定範囲のイベントを取得し、その ID を使用してクライアント上でそれらのイベントをフィルターに掛けることができます。
デッド・レター調整
構成された Webhook へのデッド・レターの再配信を試行する自動化メカニズムが存在します。 これらの調整の試行は、ペイロードに値 "deadletter":
true が存在することによって識別できます。
- 手動で、フラッシュ API を呼び出すことによって。
- 通知 Webhook が良好な正常性状況を示している場合は、自動的に表示されます。
- 構成を設定して、この自動調整が行われる頻度を指定します。 詳しくは、API の資料を参照してください。
- 手動 API は、構成に関係なく、調整をトリガーするために引き続き使用できます。
調整中に通知の再配信の試行が失敗した場合、調整は終了します。 調整のハード・タイム・リミットは 2 時間です。 その時間内にすべてのデッド・レターがフラッシュされない場合は、さらに調整を実行する必要があります。