Webhook メッセージ
さまざまな Webhook トピックのメッセージ形式とペイロードについて理解します。
メッセージ形式
各 Webhook トピックの形式は若干異なる場合があります。
ほとんどの Webhook は次のような構造を持ち、 event_details は events, のペイロードです。
{
"topic": "webhook-topic",
"events": [
{"EVENT DETAILS": "...."},
{"EVENT DETAILS": "....",
...
]
}
ペイロード構造
すべての Webhook メッセージは JavaScript Object Notation (JSON) 形式であり、ヘッダーには、メッセージ自体の構成を説明する次の情報が含まれています。ヘッダー情報は、メッセージ内のペイロードの前に表示されます。Webhook 設定でカスタム ヘッダーを構成すると、ここにも表示されます。
POST /uri/... HTTP/1.1 Host: hooks.abc.com:443 User-Agent: Mist-webhook Content-Type: application/json Content-Length: 382 X-Mist-Signature: ce3af7760f1289d02bf6a7ad19f3xxxxxxxxxx
インフラストラクチャ ペイロードの例
Webhook サンプルの完全なリストについては、「 API サンプル Webhook」を参照してください。これにより、指定された各Webhookトピックに対してMist Cloudが送信するWebhookメッセージのサンプルが表示されます。
以下は、インフラストラクチャ Webhook から始まる Webhook サンプルのほんの一部です。
アラート
このアラート(アラーム)の例では、検出された不正 AP、カウント(Juniper Mist検出した回数)、AP とそれを検知した BSSID(基本サービス セット識別子)を表示します。
{
"topic": "alarms",
"events": [
{
"aps": [
"5c5b35xxxxxx"
],
"bssids": [
"00024axxxxxx",
"5c5b3xxxxxx",
"000f2xxxxxx",
"c03f0exxxxxx",
"e091f5xxxxxx",
"e894f6xxxxxx",
"40169fxxxxxx",
"40169fxxxxxx",
"c03f0exxxxxx",
"5c5b35xxxxxx"
],
"count": 16,
"id": "95193bda-1fef-4ea6-xxxx-xxxxxxxxxxxx",
"last_seen": 1549068720,
"ssids": [
"qwerty",
"A-Dot",
"xfinity",
"alpha"
],
"timestamp": 1549068202,
"type": "rogue-ap-detected",
"update": true,
"org_id": "2818e386-8dec-2562-xxxx-xxxxxxxxxxxx",
"site_id": "4ac1dcf4-9d8b-7211-xxxx-xxxxxxxxxxxx"
}
]
}
監査
この例は、John Doe がデバイスを更新したことを示す監査アラートです。デバイスが属する組織(org_id)とサイト(site_id)が表示されます。
{
"topic": "audits",
"events": [
{
"admin_name": "john doe john.doe@juniper.net",
"device_id": "00000000-0000-0000-1000-5c5b35xxxxxx",
"id": "8e00dd48-b918-4d9b-xxxx-xxxxxxxxxxxx",
"message": "Update Device \"Reception\"",
"org_id": "2818e386-8dec-2562-xxxx-xxxxxxxxxxx",
"site_id": "4ac1dcf4-9d8b-7211-xxxx-xxxxxxxxxxxx",
"src_ip": "xx.xx.xx.xx",
"timestamp": 1549047906.201053
}
]
}
クライアント参加
このクライアント参加メッセージは、参加したクライアントの MAC アドレスを表示します。また、クライアントがワイヤレス ネットワークに参加した瞬間に、関連付けられた接続の詳細も表示されます。
{
"topic": "client-join",
"events": [
{
"ap": “5c5b35d0xxxx",
"ap_name": “AP43 Test",
"band": "5",
"bssid": "5c5b35dfxxxx",
"connect": 1592333828,
"connect_float": 1592333828.324,
"mac": "70ef0071xxxx",
"org_id": "6748cfa6-4e12-11e6-xxxx-xxxxxxxxxxx",
"rssi": -54,
"site_id": "d761985e-49b1-4506-xxxx-xxxxxxxxxxx",
"site_name": "Test",
"ssid": "Mist",
"timestamp": 1592333828,
"version": 2
"wlan_id": "6c0c0b07-0d77-44d1-xxxx-xxxxxxxxxxxx",
}
]
}
クライアントセッション
client-sessions ペイロードは、クライアントから 1 つの AP へのセッション全体に関する詳細情報を表示します。
{
"topic": "client-sessions",
"events": [
{
"ap": “5c5b352fxxxx",
"ap_name": “AP43 Test",
"band": "5",
"bssid": "5c5b352bxxxx",
"client_family": "iPhone",
"client_manufacture": "Apple",
"client_model": "8+",
"client_os": "13.4.1",
"connect": 1592333548,
"connect_float": 1592333548.117,
"disconnect": 1592333828,
"disconnect_float": 1592333828.589,
"duration": 279.835049793,
"mac": "70ef00xxxxxx",
"next_ap": "5c5b35d0xxxx",
"org_id": "6748cfa6-4e12-11e6-xxxx-xxxxxxxxxxxx",
"rssi": -87,
"site_id": "d761985e-49b1-4506-xxxx-xxxxxxxxxxx",
"site_name": "Test",
"ssid": "Mist",
"termination_reason": 3,
"timestamp": 1592333828,
"version": 2
"wlan_id": "6c0c0b07-0d77-44d1-xxxx-xxxxxxxxxxxx",
}
]
}
デバイスイベント
device-events ペイロードには、イベントが発生しているデバイスに関する詳細と理由が表示されます。
{
"topic": "device-events",
"events": [
{
"audit_id": "a8ec4d8a-4da6-4ead-xxxx-xxxxxxxxxxx",
"ap": "5c5b35xxxxxx",
"ap_name": "AP41 Near Lab",
"device_name": "AP41 Near Lab",
"device_type": "ap/switch/gateway",
"ev_type": "NOTICE",
"mac": "5c5b35xxxxxx",
"org_id": "2818e386-8dec-2562-xxxx-xxxxxxxxxxxx",
"reason": "power_cycle",
"site_id": "4ac1dcf4-9d8b-7211-xxxx-xxxxxxxxxxxx",
"site_name": "Site 1",
"text": "event details",
"timestamp": 1461220784,
"type": "AP_RESTARTED"
}
]
}
デバイスのアップダウン
device-updowns Webhook は、device-events Webhook のサブセットです。デバイスの基本情報とダウンした理由(タイプ)のみを送信します。
{
"topic": "device-updowns",
"events": [
{
"org_id": "2818e386-8dec-2562-xxxx-xxxxxxxxxxxx",
"site_id": "4ac1dcf4-9d8b-7211-xxxx-xxxxxxxxxxxx",
"type": "AP_RESTARTED",
"ap": "5c5b35xxxxxx",
"ap_name": "AP01",
"site_name": "Site1"
"timestamp": 1461220784
}
]
}
ゲスト認証
ゲスト承認 Webhook は、ゲスト クライアントが WLAN を承認すると、ゲスト クライアントに関するデータを顧客に提供します。
{
"topic": "guest-authorizations",
"events": [
{
"ap":"5c5b350e55c8",
"auth_method": "passphrase",
"authorized_expiring_time":1677076639,
"authorized_time":1677076519,
"carrier": "docomo",
"client": "ac2316eca70a",
"company": "MIST",
"email": ""abcd@abcd.com",
"field1": "field1 value",
"field2": "field2 value",
"field3": "field3 value",
"field4": "field4 value",
"mobile": "+0123456789",
"name": "Dr Strange",
"org_id":"1688605f-916a-47a1-8c68-f19618300a08",
"site_id":"ec3b5624-73f1-4ed3-b3fd-5ba3ee40368a",
"sms_gateway": "Telstra",
"sponsor_email": "sponsor@gmail.com",
"ssid":"Portal Auth",
"wlan_id":"7681be9a-044a-4622-90cf-3accde5ad853",
}
]
}
Juniper Mist Edge イベント
mxedge-events Webhook ペイロードには、device-events と同様に、個々の Juniper Mist Edge デバイスで発生するイベントに関する基本情報を含めることができます。
{
"topic": "mxedge-events",
"events": [
{
"audit_id": "03a65fa8-f74b-4c82-xxxx-xxxxxxxxxxxx",
"mxcluster_id": "27558fe2-a0e5-4236-xxxx-xxxxxxxxxxxx",
"mxedge_id": "00000000-0000-0000-1000-xxxxxxxxxxxx",
"mxedge_name": "ME1",
"org_id": "dfb3a656-2a21-4ea5-xxxx-xxxxxxxxxxxx",
"timestamp": "1692974834.308884",
"type": "ME_CONFIG_CHANGED_BY_USER"
}
]
}
ロケーション ペイロードの例
次のグループは Location Webhook で、サイト (組織ではなく) でのみ使用できます。
位置座標
場所 Webhook ペイロードは、クライアント情報をJuniper Mistにアップロードされた地図上の場所 (フロアプラン) に関連付けます。正確に縮尺されたマップと SDK クライアントの使用が、この Webhook の要件です。
{
"topic": "location",
"events": [
{
"site_id": "4ac1dcf4-9d8b-7211-xxxx-xxxxxxxxxxxx",
"map_id": "845a23bf-bed9-e43c-xxxx-xxxxxxxxxxxx",
"x": 13.5,
"y": 3.2,
"timestamp": 1461220784,
// for SDK client
"type": "sdk",
"id": "de87bf9d-183f-e383-xxxx-xxxxxxxxxxxx",
"name": "optional",
// for WIFI
"type": "wifi",
"mac": "5684daxxxxxx",
// Optional for wifi
"wifi_beacon_extended_info": [
{"frame_ctrl": 776, "seq_ctrl": 772, "payload": "............"},
]
// for ASSET
"type": "asset",
"mac": "7fc293xxxxxx",
"ibeacon_uuid": "f3f17139-704a-f03a-xxxx-xxxxxxxxxxxx",
"ibeacon_major": 13,
"ibeacon_minor": 138,
"eddystone_uid_namespace": "2818e3868decxxxxxxxx",
"eddystone_uid_instance": "5c5b35xxxxxx",
"eddystone_url_url": "https://www.abc.com",
"mfg_company_id": 935,
"mfg_data": "648520a1020000",
"battery_voltage": 3370
}
]
}
占有アラート
occupancy-alerts Webhook は、設定されたoccupancy_limitを超えた場合に、特定のゾーンに関する情報を表示します。
{
"topic": "occupancy-alerts",
"events": [
{
"alert_events": [
{
"current_occupancy": 10,
"map_id": "f5d26c7f-1670-4921-xxxx-xxxxxxxxxxxx",
"occupancy_limit": 5,
"org_id": "6748cfa6-4e12-11e6-xxxx-xxxxxxxxxxxx",
"timestamp": 1594861457,
"type": "COMPLIANCE-VIOLATION",
"zone_id": "b83312a7-7269-4ae1-xxxx-xxxxxxxxxxxx",
"zone_name": "PLM and Leadership"
},
{
"current_occupancy": 20,
"map_id": "f5d26c7f-1670-4921-xxxx-xxxxxxxxxxxx",
"occupancy_limit": 10,
"org_id": "6748cfa6-4e12-11e6-xxxx-xxxxxxxxxxxx",
"timestamp": 1594861457,
"type": "COMPLIANCE-VIOLATION",
"zone_id": "80acf542-e863-43cf-xxxx-xxxxxxxxxxxx",
"zone_name": "CSQA"
},
{
"current_occupancy": 9,
"map_id": "f5d26c7f-1670-4921-xxxx-xxxxxxxxxxxx",
"occupancy_limit": 4,
"org_id": "6748cfa6-4e12-11e6-xxxx-xxxxxxxxxxxx",
"timestamp": 1594861457,
"type": "COMPLIANCE-VIOLATION",
"zone_id": "a4c7a7c2-880e-4a0e-xxxx-xxxxxxxxxxxx",
"zone_name": "Marketing & Sales Ops"
}
],
"site_id": "67970e46-4e12-11e6-xxxx-xxxxxxxxxxxx",
"site_name": "MIST OFFICE"
}
]
}
RSSIゾーン
rssizone Webhook ペイロードは、サイト全体で設定された最小 RSSI 閾値を超えたデバイスを表示します。
{
"topic":"rssizone",
"events":[
{
"mac":"500291xxxxxx",
"map_id":"f5d26c7f-1670-4921-xxxx-xxxxxxxxxxxx",
"rssizone_id":"e38f8e76-40db-4144-xxxx-xxxxxxxxxxxx",
"site_id":"f5fcbee5-fbca-45b3-xxxx-xxxxxxxxxxxx",
"timestamp":1694158990.986472,
"trigger":"enter",
"type":"wifi"
}
]
}
SDK クライアント スキャン データ
SDK クライアント スキャン データ Webhook ペイロードには、クライアント自体に (SDK を使用して) アプリケーションをインストールしないと使用できない、クライアントに関する特定のデータが表示されます。
{
"events": [
{
"connection_ap": "5c5b35xxxxxx",
"connection_band": "2.4",
"connection_bssid": "5c5b35xxxxxx",
"connection_channel": 11,
"connection_rssi": -87,
"last_seen": 1592333828,
"mac": "70ef00xxxxxx",
"scan_data": [
{
"ap": "5c5b35xxxxxx",
"band": "2.4",
"bssid": "5c5b35xxxxxx",
"channel": 11,
"rssi": -87,
"ssid": "mist-wifi",
"timestamp": 1592333828
},
{
"ap": "5c5b35xxxxxx",
"band": "5",
"bssid": "5c5b35xxxxxx",
"channel": 36,
"rssi": -75,
"ssid": "mist-wifi",
"timestamp": 1592333828
}
],
"site_id": "d761985e-49b1-4506-xxxx-xxxxxxxxxxxx"
}
],
"topic": "sdkclient-scan-data"
}
仮想ビーコンの入退出イベント
vbeacon Webhookは、Juniper Mist SDKを実行しているモバイルデバイスが、仮想ビーコンによって定義されたエリアに出入りするときにトリガーされます。
{
"topic":"vbeacon",
"events":[
{
"mac":"10521cxxxxxx",
"map_id":"5a8b84e6-cc7b-xxxx-xxxxxxxxxxxx",
"site_id":"f5fcbee5-fbca-45b3-xxxx-xxxxxxxxxxxx",
"timestamp":1694166602.662786,
"trigger":"enter",
"type":"wifi",
"vbeacon_id":"ca301fd7-07af-4d42-xxxx-xxxxxxxxxxxx"
}
]
}
ゾーンの入口および出口イベント
ゾーン Webhook は、デバイスが定義されたゾーンに出入りするときにトリガーされます。
{
"topic":"zone",
"events":[
{
"mac":"10521cxxxxxx",
"map_id":"5a8b84e6-cc7b-xxxx-xxxxxxxxxxxx",
"site_id":"f5fcbee5-fbca-45b3-xxxx-xxxxxxxxxxxx",
"timestamp":1694166602.662786,
"trigger":"exit",
"type":"wifi",
"zone_id":"b83312a7-7269-4ae1-xxxx-xxxxxxxxxxxx "
}
]
}