Microsoft Sentinelとの統合

最終公開日 : Sep 25, 2026
NetScaler ConsoleからMicrosoft Sentinelに次の分析をエクスポートするために、NetScaler ConsoleをMicrosoft Sentinelと統合できます。
  • WAF違反
  • ボット違反
  • SSL証明書のインサイト
  • ゲートウェイインサイト
  • NetScaler® Console監査ログ
Microsoft Sentinelは、アプリケーション、サーバーなど、さまざまなソースからデータを収集する一元化されたデータ収集機能を提供します。管理者として、Microsoft Sentinelでインサイトや違反が報告された後、データを表示し、意思決定を行うことができます。
統合を成功させるには、アクティブなAzureサブスクリプションがあることを確認し、各セクションの手順に従ってください。
Related information

Log Analyticsワークスペースの構成

収集されたデータを保存および分析するには、Log Analyticsワークスペースが必要です。
  1. Azureにログインします。
  2. 「リソースの作成」をクリックします。
    リソース
  3. 検索バーに「log analytics workspace」と入力し、「Log Analytics Workspace」の下にある「作成」をクリックします。
    ログ分析ワークスペース
  4. Log Analytics Workspaceのメインページで、作成をクリックします。
    ワークスペースの作成
  5. Log Analytics ワークスペースの作成で、:
    1. アクティブなサブスクリプションとリソースグループを選択します。
      注:
      権限がある場合は、新規作成をクリックしてリソースグループを追加することもできます。
    2. 任意の名前を指定します。
    3. リストからリージョンを選択します。
    4. 確認 + 作成をクリックします。
      ワークスペース作成の最終段階前
    5. 検証成功のメッセージが表示されます。作成をクリックしてワークスペースをデプロイします。
      ワークスペースの作成
    6. デプロイ進行中のメッセージが表示されます。デプロイ完了のメッセージが表示されたら、リソースに移動をクリックします。
      ワークスペースリソース
      ワークスペースが正常に作成されました。

Microsoft Entra アプリケーションを作成する

Log Analytics Workspace の代わりに通信するために、Azure サブスクリプションに関連付けられた Entra アプリケーションを作成する必要があります。アプリケーションを作成したら、Microsoft Sentinel Contributor ロールでアクセス許可を付与する必要もあります。アプリケーションは、クライアント ID、テナント ID、クライアント シークレットなどの詳細も提供します。これらの詳細をメモしておくことをお勧めします。これらの詳細は、NetScaler Console でサブスクリプションを作成して統合プロセスを完了するときに必要になります。
  1. Azure ポータルで、検索バーにキーワードを入力します。
  2. Microsoft Entra ID をクリックします。
    Entra アプリ
  3. 追加をクリックし、アプリの登録を選択します。
    アプリの登録
  4. アプリの名前を指定し、サポートされているアカウントの種類の下にあるデフォルトオプションを選択してから、登録をクリックします。
    アプリの登録
  5. アプリケーションを登録した後:
    1. クライアント ID と テナント ID をメモします。
      クライアントとテナントのID
    2. アプリケーションのシークレット ID を作成します。証明書とシークレットをクリックし、クライアント シークレットの下にある新しいクライアント シークレットをクリックします。説明と有効期間を入力し、追加をクリックしてアプリケーションのシークレット ID を作成します。
      クライアントシークレットID
    3. アプリケーションの詳細が表示されます。シークレットが作成された直後に、値の下に表示されるIDを必ずメモしてください。他のGUIオプションに移動すると、この値は非表示になります。
      値ID

Microsoft Entra IDデータコネクタを使用してMicrosoft Sentinelにデータを送信する

Microsoft Entra IDログは、Entraテナントにアクセスするユーザー、アプリケーション、およびネットワークに関する包括的な情報を提供します。詳細については、Microsoft Entra IDデータコネクタを使用してMicrosoft Sentinelにデータを送信するを参照してください。

データ収集エンドポイントを構成する

エンドポイントURLを取得するには、データ収集エンドポイントを作成する必要があります。これは、NetScaler Consoleでサブスクリプションを作成する際に必要です。
  1. Azureポータルで、Azureサービスの下にあるデータ収集エンドポイントを選択するか、検索バーにキーワードを入力します。
    DCRの選択
  2. データ収集エンドポイントページで、作成をクリックします。
    DCRの作成
  3. データ収集エンドポイントの作成で、:
    1. 任意の名前のエンドポイント名を指定します
    2. サブスクリプション、リソースグループ、およびリージョンを選択します。
    3. 確認 + 作成をクリックします。
    4. 検証成功のメッセージが表示されたら、作成をクリックします。
エンドポイントURLをメモする必要があります。データ収集エンドポイントのメインページで、作成したエンドポイントを選択し、JSONビューをクリックして、エンドポイントIDをメモします。
DCR ID(/en-us/netscaler-console-service/media/sentinel-dcr-id.png)

データをエクスポートするためのテーブルを作成する

NetScaler ConsoleからMicrosoft Sentinelにエクスポートする各インサイトについて、テーブルを作成し、JSON情報を提供する必要があります。各インサイトのテーブル要件については、以下の詳細を参照してください。
インサイト 必要なテーブルの総数
SSLインサイト 3
WAF 1
Bot 1
Gatewayインサイト 5
各ワークスペースにつき、最大10個のテーブルを作成できます。10個を超えるテーブルを作成する場合は、別のワークスペースを作成する必要があります。
  1. Azureポータルでワークスペースに移動し、設定の下にあるテーブルをクリックします。
  2. 作成をクリックし、**新しいカスタムログ (DCRベース)**を選択します。
    テーブル(/en-us/netscaler-console-service/media/sentinel-table-create.png)
  3. カスタムログの作成で:
    1. テーブル名を指定します。テーブル名はconsole_insightnameの形式である必要があります。例: console_ns_sslvserver、console_ns_ssl_certkey。各インサイトに適用されるテーブル名については、手順4を参照してください。
    2. テーブル名に関する詳細情報を追加するための説明を入力します。これはオプションです。
    3. 新しいデータ収集ルールを作成し、追加します。
    4. リストからデータ収集エンドポイントを選択します。
      テーブルパラメータ(/en-us/netscaler-console-service/media/sentinel-table-parameters.png)
    5. 次へをクリックします。
  4. スキーマと変換タブで、エクスポートするインサイトのJSONサンプルログをアップロードする必要があります。各インサイトについて、以下のサンプルJSONを使用してアップロードするJSONファイルを作成できます。
    インサイト JSON 使用するテーブル名
    SSL (1) {"id": "3eb05733-c326-493c-9aa0-f7db3a6b4277", "ns_ip_address": "10.106.186.141", "name": "zeta_192_168_110_250", "vsvr_ip_address": "", "vsvr_port": -1, "vsvr_type": "", "state": "", "partition_name": "", "display_name": "10.106.186.141", "poll_time": 1716539986, "managed": "f", "ssl2": "f", "ssl3": "t", "tls10": "t", "tls11": "t", "tls12": "t", "dh": "f", "ersa": "t", "sslprofile": "", "tls13": "f", "dhkeyexpsizelimit": "DISABLED", "pushenctriggertimeout": 1, "sessionticket": "", "includesubdomains": "f", "sessionticketkeyrefresh": "", "ssllogprofile": "", "serverauth": "", "ssltriggertimeout": 100, "ersacount": 0, "strictcachecks": "NO", "dhfile": "", "sessreuse": "ENABLED", "redirectportrewrite": "DISABLED", "skipclientcertpolicycheck": "", "tls13sessionticketsperauthcontext": 1, "cipherredirect": "DISABLED", "dropreqwithnohostheader": "NO", "sessionticketlifetime": -1, "maxage": 0, "pushenctrigger": "Always", "strictsigdigestcheck": "f", "sslredirect": "DISABLED", "sessionkeylifetime": -1, "alpnprotocol": "", "clientauthuseboundcachain": "", "sesstimeout": 120, "clientcert": "", "snihttphostmatch": "CERT", "preload": "NO", "prevsessionkeylifetime": -1, "sessionticketkeydata": "", "encrypttriggerpktcount": 45, "cleartextport": "", "ssliocspcheck": "", "hsts": "f", "sslinterception": "", "commonname": "", "sslireneg": "", "ocspstapling": "DISABLED", "quantumsize": 8192, "insertionencoding": "Unicode", "sslimaxsessperserver": -1, "cipherurl": "", "pushflag": 0, "zerorttearlydata": "DISABLED", "allowextendedmastersecret": "", "dhekeyexchangewithpsk": "NO", "clientauth": "DISABLED", "denysslreneg": "NONSECURE", "sendclosenotify": "YES", "dhcount": 0, "snienable": "DISABLED", "table_name": "ns_sslvserver"} console_ns_sslvserver
    SSL (2) {"id": "a6673ab2-0b59-47b9-b530-bc30fb2b937c", "ssl_certificate": "/nsconfig/ssl/ca-cert.pem", "ssl_key": "/nsconfig/ssl/ca-key.pem", "certkeypair_name": "athul-ca", "cert_format": "PEM", "days_to_expiry": 281, "ns_ip_address": "10.106.186.141", "status": "Valid", "device_name": "10.106.186.141", "file_location_path": "", "certificate_data": "", "key_data": "", "poll_time": 1717434335, "no_domain_check": "f", "version": 3, "serial_number": "7B34B6A6A1A79E0FF168242D7BCFF78F04C9EE66", "signature_algorithm": "sha256WithRSAEncryption", "issuer": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "valid_from": "Mar 12 08:51:11 2024 GMT", "valid_to": "Mar 12 08:51:11 2025 GMT", "subject": "C=IN,ST=KA,L=BAN,O=CIT,OU=ADM,CN=A", "public_key_algorithm": "rsaEncryption", "public_key_size": 4096, "no_of_bound_entities": 0, "partition_name": "", "display_name": "10.106.186.141", "hostname": "athulsadc", "key_name": "", "subjaltname": "", "managed_by": "", "certificate_dn": "", "linkcertkeyname": "", "table_name": "ns_ssl_certkey"} console_ns_ssl_certkey
    SSL (3) {"id": "2baffd1a-7ed6-4035-91e8-ad3a3125bff4", "certkeypair_name": "cert1", "ns_ip_address": "10.106.186.127", "poll_time": 1715671567, "partition_name": "", "display_name": "10.106.186.127", "hostname": "", "entity_name": "secure_gateway", "entity_type": "sslvserver", "table_name": "ns_sslcertkey_binding"} console_ns_sslcertkey_binding
    WAF [{"ip_address": "10.106.185.156", "ctnsappname": "vserver_1", "severity": 2, "violation_type": 19, "violation_type_desc": "Start URL", "block_flags": 1, "transformed_flags": 0, "not_blocked_flags": 0, "country_code": "-NA-", "region_code": "-NA-", "city": "-NA-", "latitude": 200.0, "longitude": 200.0, "signature_category": "", "attack_category": 2, "attack_category_desc": "Broken Authentication and Session Management", "total_attacks": 1, "rpt_sample_time": 1704783773, "source_ip_address": 174766492, "attack_time": 1704783538, "profile_name": "appfw_cs_lb_prof", "session_id": "", "http_req_url": "https://10.106.192.54/csrf_ffc/ffc.html?field10=asfasd", "violation_name": "-NA-", "violation_value": "-NA-", "violation_location": 4, "violation_threat_index": 5, "app_threat_index": 5, "http_method": 0, "violation_action": 3, "violation_action_desc": "Blocked", "severity_type": 2, "severity_type_desc": "Medium", "iprep_score": 0, "iprep_category": 0, "counter_value": 0, "appname": "vserver_1_10.106.185.156_lb", "violation_category": 12, "violation_category_desc": "Start URL", "source_ipv6_address": "", "true_client_ip": "\\N", "backend_vserver": "", "backend_appname": "", "transactionId": "0", "table_name": "af_threat_exporter_data_l2"}] console_af_threat_exporter_data_l2
    Bot {"ip_address": "10.106.186.122", "ctnsappname": "secure_gateway", "bot_type": "2", "bot_type_desc": "Bad", "action_type": "6", "action_type_desc": "Log", "country_code": "0.0", "region_code": "0.0", "city": "0.0", "bot_severity": "0", "bot_severity_desc": "Critical", "latitude": "0", "longitude": "0", "bot_detection_mechanism": "6", "bot_detection_mechanism_desc": "BlackList", "bot_category": "0", "bot_category_desc": "Uncategorized", "source_ip_address": "174758625", "bot_signature_category": "Custom Policy Expression", "appname": "secure_gateway_10.106.186.122_lb", "backend_vserver": "", "backend_appname": "", "total_attacks": "2", "rpt_sample_time": "1718783216", "table_name": "af_bot_attack_details_l2"} console_af_bot_attack_details_l2
    ゲートウェイインサイト (1) {"adc_ip_address": "10.106.186.141", "auth_server": "", "client_ip": 174766732, "epa_method_type": 0, "error_count": 14, "error_details": "Invalid credentials passed", "error_type": 1, "gateway_name": "vpn_vserver_142_6", "req_url": "", "resource": "", "rpt_sample_time": 1713505215, "sso_method_type": 0, "sta_ip": "", "table_name": "af_vpn_error_details", "username": "John"} console_af_vpn_error_details
    ゲートウェイ インサイト (2) {"adc_ip_address": "10.102.71.166", "display_name": "10.102.71.166", "gateway_name": "firsthop", "ip_address": "10.102.71.168", "rpt_sample_time": "1718812158", "state": "Up", "table_name": "ns_vpnvserver"} console_ns_vpnvserver
    ゲートウェイ インサイト (3) {"adc_ip_address": "10.106.186.141", "gateway_name": "vpn_vserver_141_7", "rpt_sample_time": 1702011308, "sessions": 1, "table_name": "af_vpn_session_details", "users": 1} console_af_vpn_session_details
    ゲートウェイ インサイト (4) {"active_sessions": 59, "active_users": 1, "adc_ip_address": "10.106.186.136", "gateway_name": "vpnathul2", "rpt_sample_time": 1698919848, "table_name": "af_vpn_active_session_1"} console_af_vpn_active_session_1
    ゲートウェイ インサイト (5) {"adc_ip_address": "10.106.186.136", "entity_type": 3, "gateway_name": "vpnathul2", "hits": 3, "rpt_sample_time": 1698052438, "table_name": "af_vpn_error_reports"} console_af_vpn_error_reports
    監査ログ {"system_gmt_time":1721868291, "source":"X.X.X.X", "severity":"INFO", "module":"DEVICECONFIG", "event_type":"CMD_EXECUTED", "message":"Sample Mesage", "instance_ip":"X.X.X.X", "app_name":""} console_syslog_messages
    JSONをアップロードした後、以下の詳細を表示できます。
    JSONの詳細
    Transformation editorをクリックし、適切なインサイトに適用される以下のクエリを入力し、RunをクリックしてNetScaler Consoleでのポーリング時間からデータを承認します。
    • SSL - source | extend TimeGenerated = todatetime(poll_time) | project-rename sslvserver_id = id
    • WAF および Bot - source | extend TimeGenerated = todatetime(rpt_sample_time)
    • ゲートウェイインサイト - source | extend TimeGenerated = todatetime(rpt_sample_time)
      テーブルの実行
  5. Nextをクリックし、Createをクリックして完了します。
  6. Data collection rulesに移動し、作成したDCRをクリックします。
  7. Configurationの下にあるData sourcesをクリックして、作成されたテーブルを表示します。
    テーブルソース
    DCR (Data collection rule) には、Monitoring Metrics Publisherロールへのアクセスが必要です。
    1. Recentsの下にあるAzure portalからアクセスできるDCRに移動します。
    2. DCRページからアクセス制御 (IAM) をクリックし、ロールの割り当てを追加 をクリックします。
      ロールの割り当て(/en-us/netscaler-console-service/media/sentinel-dcr-role-assign.png)
    3. 検索バーに「monitor」と入力して監視メトリック発行者を選択し、次へをクリックします。
    4. メンバータブで、メンバーの選択をクリックし、作成したEntraアプリを選択します。
    5. 確認 + 割り当てをクリックします。
      データ収集ルールIDをメモする必要があります。データ収集ルールページに移動し、DCRを選択して、JSONビューをクリックし、IDをメモします。
      DCR ID(/en-us/netscaler-console-service/media/sentinel-dcr-value.png)

NetScaler Consoleでサブスクリプションを作成する

これで準備が整いました。最後のステップは、サブスクリプションを作成し、必要な詳細を追加してNetScaler Consoleを構成することです。NetScaler Consoleでサブスクリプションを作成するには、メモした以下の詳細が必要です。
  • エンドポイントURL
  • データ収集ルールID
  • テナントID
  • クライアントID
  • クライアントシークレット
  1. NetScaler Consoleにログインします。
  2. 「Settings > Observability Integration」に移動します。
  3. 「Integrations」ページで、「Add」をクリックします。
  4. 「Create Subscription」ページで、次の詳細を指定します。
    1. 「Subscription Name」フィールドに任意の名前を指定します。
    2. 「Source」として「NetScaler Console」を選択し、「Next」をクリックします。
    3. 「Microsoft Sentinel」を選択し、「Configure」をクリックします。「Configure Endpoint」ページで、すべての詳細を入力し、「Submit」をクリックします。
    4. 「Next」をクリックします。
  5. 「Add Insights」をクリックし、「Select Feature」タブで、Microsoft Azureに追加したテーブルに応じて、エクスポートする機能を選択し、「Add Selected」をクリックして、「Next」をクリックします。
  6. 「Select Instance」タブで、「Select All Instances」または「Custom select」のいずれかを選択し、「Next」をクリックします。
    • Select All Instances - すべてのNetScalerインスタンスからMicrosoft Sentinelにデータをエクスポートします。
    • Custom select - リストからNetScalerインスタンスを選択できます。リストから特定のインスタンスを選択した場合、データは選択されたNetScalerインスタンスからのみMicrosoft Sentinelにエクスポートされます。
  7. 「Submit」をクリックします。

Microsoft Azureでログを表示する

すべての設定が完了したら、Microsoft Azureで詳細を表示するまで30分待つことをお勧めします。
  1. Azureポータルで、「Log Analytics Workspace」に移動します。
  2. 「ログ」をクリックし、テーブル名を入力し、「実行」をクリックして結果を表示します。
    「ログの表示」(/en-us/netscaler-console-service/media/sentinel-view-results.png)