コードレス コネクタ フレームワークのデータ コネクタ定義リファレンス

コードレス コネクタ フレームワーク (CCF) を使用してデータ コネクタを作成するには、このドキュメントを、Microsoft Sentinel REST API for Data Connector Definitions リファレンス ドキュメントの補足資料として使用します。具体的には、このリファレンス ドキュメントは次のセクションで展開されます。

  • connectorUiConfig- Microsoft Sentinelのデータ コネクタ ページに表示されるビジュアル要素とテキストを定義します。

詳細については、「 コードレス コネクタの作成」を参照してください。

データ コネクタの定義 - 作成または更新

REST API ドキュメントの作成または更新操作を参照して、最新の安定した API バージョンまたはプレビュー API バージョンを見つけます。 etag値が必要なのは、update操作だけです。

PUT メソッド

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/{{dataConnectorDefinitionName}}?api-version={{apiVersion}}

URI パラメーター

最新の API バージョンの詳細については、「Data Connector の定義 - URI パラメーターの作成または更新」を参照してください。

名前 説明
dataConnectorDefinitionName データ コネクタ定義は一意の名前である必要があり、要求本文name パラメーターと同じです。
resourceGroupName 大文字と小文字を区別しないリソース グループの名前。
subscriptionId ターゲット サブスクリプションの ID。
workspaceName ID ではなくワークスペースの 名前
正規表現パターン: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
api-version この操作に使用する API バージョン。

要求本文

API を使用して CCF データ コネクタ定義を作成するための要求本文には、次の構造があります。

{
    "kind": "Customizable",
    "properties": {
        "connectorUIConfig": {}
    }
}

dataConnectorDefinition には、次のプロパティがあります。

名前 必須 説明
Kind True 文字列 CustomizableAPI ポーリング データ コネクタの場合、またはそれ以外の場合はStatic
プロパティ。connectorUiConfig True 入れ子になった JSON
connectorUiConfig
データ コネクタの UI 構成プロパティ

コネクタのユーザー インターフェイスを構成する

このセクションでは、データ コネクタ ページのユーザー インターフェイスをカスタマイズするために使用できる構成オプションについて説明します。

次のスクリーンショットは、ユーザー インターフェイスの注目すべき領域に対応する数値で強調表示されたサンプル データ コネクタ ページを示しています。

セクションが 1 から 9 のサンプル データ コネクタ ページのスクリーンショット。

ユーザー インターフェイスを構成するために必要な connectorUiConfig セクションの次の各要素は、API の CustomizableConnectorUiConfig 部分に対応しています。

フィールド 必須 説明 注目すべき領域のスクリーンショット#
title はい string データ コネクタ ページに表示されるタイトル 1
id 文字列 内部使用のカスタム コネクタ ID を設定します
logo string SVG 形式のイメージ ファイルへのパス。 値が構成されていない場合は、既定のロゴが使用されます。 2
パブリッシャー はい string コネクタのプロバイダー 3
descriptionMarkdown True markdown の文字列 マークダウン言語を追加して強化する機能を備えたコネクタの説明。 4
sampleQueries True 入れ子になった JSON
sampleQueries
顧客がイベント ログ内のデータを見つける方法を理解するためのクエリ。
graphQueries True 入れ子になった JSON
graphQueries
過去 2 週間のデータ インジェストを示すクエリ。

すべてのデータ コネクタのデータ型に対して 1 つのクエリを指定するか、データ型ごとに異なるクエリを指定します。
5
graphQueriesTableName コネクタがデータを挿入するテーブルの名前を設定します。 この名前は、graphQueries値とlastDataReceivedQuery値にプレースホルダー{{graphQueriesTableName}}指定することで、他のクエリで使用できます。
dataTypes True 入れ子になった JSON
dataTypes
コネクタのすべてのデータ型の一覧と、各データ型の最後のイベントの時刻をフェッチするクエリ。 6
connectivityCriteria True 入れ子になった JSON
connectivityCriteria
コネクタが接続されているかどうかを確認する方法を定義する オブジェクト。 7
可用性 入れ子になった JSON
可用性
コネクタの可用性の状態を定義するオブジェクト。
アクセス許可 True 入れ子になった JSON
アクセス許可
UI の [ 前提条件 ] セクションに表示される情報。コネクタを有効または無効にするために必要なアクセス許可が一覧表示されます。 8
instructionSteps True 入れ子になった JSON
指示
コネクタのインストール方法を説明するウィジェット パーツの配列と、[ 命令 ] タブに表示されるアクション可能なコントロール。 9
isConnectivityCriteriasMatchSome ブール型 ConnectivityCriteria 項目間で 'OR'(SOME) または 'AND' のどちらを使用するかを示すブール値。

connectivityCriteria

フィールド 必須 説明
True 文字列 次の 2 つのオプションのいずれか: HasDataConnectors – この値は、CCF などの API ポーリング データ コネクタに最適です。 コネクタは、少なくとも 1 つのアクティブな接続と接続されていると見なされます。

isConnectedQuery – この値は、他の種類のデータ コネクタに最適です。 指定されたクエリがデータを返すと、コネクタは接続されていると見なされます。
型が 次の場合は True isConnectedQuery 文字列 特定の期間内にデータを受信するかどうかを判断するクエリ。 例: CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)"

dataTypes

配列値 説明
name 文字列 graphQueriesTableName 変数のサポートを含む、 lastDataReceivedQuery のわかりやすい説明。

例: {{graphQueriesTableName}}
lastDataReceivedQuery 文字列 1 行を返し、最後にデータを受信した時刻を示す KQL クエリ。結果がない場合はデータがありません。

例: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)

graphQueries

過去 2 週間のデータ インジェストを示すクエリを定義します。

すべてのデータ コネクタのデータ型に対して 1 つのクエリを指定するか、データ型ごとに異なるクエリを指定します。

配列値 説明
metricName 文字列 グラフのわかりやすい名前。

例: Total data received
伝説 文字列 変数参照を含むグラフの右側の凡例に表示される文字列。

例: {{graphQueriesTableName}}
baseQuery 文字列 変数参照など、関連するイベントをフィルター処理するクエリ。

例: TableName_CL | where ProviderName == "myprovider" または {{graphQueriesTableName}}

availability

フィールド 必須 説明
status 整数 コネクタの可用性の状態。
使用可能 = 1
機能フラグ = 2
近日公開予定 = 3
Internal = 4
isPreview ブール型 コネクタがプレビュー モードであるかどうかを示すブール値。

アクセス許可

配列値 説明
税関 文字列 次の構文で、データ接続に必要なカスタム アクセス許可について説明します。
{
"name":string,
"description":文字列
}

例: 税関の値は、青い情報アイコンMicrosoft Sentinel [前提条件] セクションに表示されます。 GitHub の例では、この値は行 GitHub API 個人用トークン キーに関連付けられます。GitHub 個人用トークンへのアクセスが必要です。..
ライセンス Enum 必要なライセンスを、 OfficeIRMOfficeATPOffice365AadP1P2McasAatpMdatpMtpのいずれかの値として定義します。 IoT

例: ライセンスの値は、Microsoft Sentinelに [ライセンス: 必須] Azure AD Premium P2として表示されます。
resourceProvider resourceProvider Azure リソースの前提条件について説明します。

例: resourceProvider 値はMicrosoft Sentinel前提条件セクションに次のように表示されます。
ワークスペース: 読み取りと書き込みのアクセス許可が必要です。
キー: ワークスペースの共有キーに対する読み取りアクセス許可が必要です。
Tenant ENUM 値の配列
例:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
必要なアクセス許可を、 "GlobalAdmin""SecurityAdmin""SecurityReader"の 1 つ以上の値として定義します。 "InformationProtection"

例: [テナントのアクセス許可]: ワークスペースのテナントに対 Microsoft SentinelするGlobal AdministratorまたはSecurity Administratorが必要です。

重要

Microsoft では、アクセス許可が可能な限りで少ないロールを使用することをお勧めします。 これにより、組織のセキュリティが向上します。 グローバル管理者は高い特権を持つロールであり、既存のロールを使用できない場合の緊急時に限定する必要があります。

resourceProvider

sub 配列値 説明
プロバイダー Enum 次のいずれかの値を使用して、リソース プロバイダーについて説明します。
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName 文字列 コネクタ ページで requiredPermissions が検証されたときに赤い "x" または緑色のチェックマークが表示される [前提条件] の下のリスト アイテム。 例 "Workspace"
permissionsDisplayText 文字列 requiredPermissions で構成された値に対応する読み取り、き込み、または読み取りおよび書き込みアクセス許可のテキストを表示する
requiredPermissions {
"action":ブール型,
"delete":ブール型,
"read":ブール型,
"write":ブール型
}
コネクタに必要な最小限のアクセス許可について説明します。
scope Enum データ コネクタのスコープを、 "Subscription""ResourceGroup"、次のいずれかの値として記述します。 "Workspace"

sampleQueries

配列値 説明
description 文字列 サンプル クエリのわかりやすい説明。

例: Top 10 vulnerabilities detected
query 文字列 データ型のデータをフェッチするために使用されるサンプル クエリ。

例: {{graphQueriesTableName}}\n | sort by TimeGenerated\n | take 10

markdown を使用してインライン リンクを定義するには、次の例を使用します。

{
   "title": "",
   "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)"
}

リンクを ARM テンプレートとして定義するには、ガイドとして次の例を使用します。

{
   "title": "Azure Resource Manager (ARM) template",
   "description": "1. Click the **Deploy to Azure** button below.\n\n\t[![Deploy To Azure](https://aka.ms/deploytoazurebutton)]({URL to custom ARM template})"
}

instructionSteps

このセクションでは、Microsoft Sentinelのデータ コネクタ ページに表示される一連の命令を定義し、次の構造を持つパラメーターを提供します。

"instructionSteps": [
    {
        "title": "",
        "description": "",
        "instructions": [
        {
            "type": "",
            "parameters": {}
        }
        ],
        "innerSteps": {}
    }
]
Array プロパティ 必須 説明
title 文字列 手順のタイトルを定義します。
description 文字列 手順のわかりやすい説明を定義します。
innerSteps 配列 内部命令ステップの配列を定義します。
指示 True 命令の配列 特定のパラメーター型の命令の配列を定義します。

指示

さまざまなパラメーターと、より多くの命令をグループに入れ子にする機能を持つ命令のグループを表示します。 ここで定義されているパラメーターは、対応します

Array プロパティ 説明
OAuthForm OAuthForm OAuth で接続する
Textbox Textbox これは、 ConnectionToggleButtonとペアになります。 使用可能な種類は 4 つあります。
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton プレースホルダー パラメーターを使用して提供される接続情報に基づいて、DCR のデプロイをトリガーします。 次のパラメーターがサポートされています。
  • name :必須
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • CopyableLabel CopyableLabel 最後にコピー ボタンがあるテキスト フィールドを表示します。 ボタンを選択すると、フィールドの値がコピーされます。
    Dropdown Dropdown ユーザーが選択するオプションのドロップダウン リストを表示します。
    markdown markdown Markdown で書式設定されたテキストのセクションを表示します。
    DataConnectorsGrid DataConnectorsGrid データ コネクタのグリッドを表示します。
    ContextPane ContextPane コンテキスト情報ウィンドウを表示します。
    Infomessage Infomessage インライン情報メッセージを定義します。
    InstructionStepsGroup InstructionStepsGroup 別の手順セクションに、必要に応じて展開または折りたたみ可能な命令のグループを表示します。
    InstallAgent InstallAgent さまざまなインストール要件を達成するために、Azureの他の部分へのリンクを表示します。
    OAuthForm

    このコンポーネントでは、データ コネクタ テンプレートの auth プロパティにOAuth2型が存在する必要があります。

    "instructions": [
    {
      "type": "OAuthForm",
      "parameters": {
        "clientIdLabel": "Client ID",
        "clientSecretLabel": "Client Secret",
        "connectButtonLabel": "Connect",
        "disconnectButtonLabel": "Disconnect"
      }          
    }
    ]
    
    テキスト ボックス

    Textbox型の例を次に示します。 これらの例は、「Codeless Connector Framework のデータ コネクタ リファレンス」の「authの例」セクションで使用されるパラメーターに対応しています。 4 種類ごとに、 labelplaceholdernameがあります。

    "instructions": [
    {
      "type": "Textbox",
      "parameters": {
          {
            "label": "User name",
            "placeholder": "User name",
            "type": "text",
            "name": "username"
          }
      }
    },
    {
      "type": "Textbox",
      "parameters": {
          "label": "Secret",
          "placeholder": "Secret",
          "type": "password",
          "name": "password"
      }
    }
    ]
    
    ConnectionToggleButton
    "instructions": [
    {
      "type": "ConnectionToggleButton",
      "parameters": {
        "connectLabel": "toggle",
        "name": "toggle"
      }          
    }
    ]
    
    CopyableLabel

    例:

    フィールドの [値のコピー] ボタンのスクリーンショット。

    サンプル コード:

    {
        "parameters": {
            "fillWith": [
                "WorkspaceId",
                "PrimaryKey"
                ],
            "label": "Here are some values you'll need to proceed.",
            "value": "Workspace is {0} and PrimaryKey is {1}"
        },
        "type": "CopyableLabel"
    }
    
    配列値 必須 説明
    fillWith Enum プレースホルダーの設定に使用される環境変数の配列。 複数のプレースホルダーをコンマで区切ります。 例: {0},{1}

    サポートされる値: workspaceIdworkspaceNameprimaryKeyMicrosoftAwsAccountsubscriptionId
    ラベル True 文字列 テキスト ボックスの上にあるラベルのテキストを定義します。
    value True 文字列 テキスト ボックスに表示する値を定義し、プレースホルダーをサポートします。
    rows ユーザー インターフェイス領域の行を定義します。 既定では、 1 に設定します。
    wideLabel ブール型 長い文字列のワイド ラベルを決定します。 既定では、 falseに設定します。
    {
      "parameters": {
        "label": "Select an option",
        "name": "dropdown",
        "options": [
          {
            "key": "Option 1",
            "text": "option1"
          },
          {
            "key": "Option 2",
            "text": "option2"
          }
        ],
        "placeholder": "Select an option",
        "isMultiSelect": false,
        "required": true,
        "defaultAllSelected": false
      },
      "type": "Dropdown"
    }
    
    フィールド 必須 説明
    ラベル True 文字列 ドロップダウンの上にあるラベルのテキストを定義します。
    name True 文字列 ドロップダウンの一意の名前を定義します。 これはポーリング構成で使用されます。
    options True 配列 ドロップダウンのオプションの一覧を定義します。
    プレースホルダー 文字列 ドロップダウンのプレースホルダー テキストを定義します。
    isMultiSelect ブール型 複数のオプションを選択できるかどうかを決定します。 既定では、 falseに設定します。
    required ブール型 true場合は、ドロップダウンを入力する必要があります。
    defaultAllSelected ブール型 true場合、すべてのオプションが既定で選択されます。
    Markdown
    {
      "parameters": {
        "content": "## This is a Markdown section\n\nYou can use **bold** text, _italic_ text, and even [links](https://www.example.com)."
      },
      "type": "Markdown"
    }
    
    DataConnectorsGrid
    {
      "type": "DataConnectorsGrid",
      "parameters": {
        "mapping": [
          {
            "columnName": "Column 1",
            "columnValue": "Value 1"
          },
          {
            "columnName": "Column 2",
            "columnValue": "Value 2"
          }
        ],
        "menuItems": [
          "MyConnector"
        ]
      }
    }
    
    
    フィールド 必須 説明
    マッピング True 配列 グリッド内の列のマッピングを定義します。
    menuItems 配列 グリッドのメニュー項目を定義します。
    ContextPane
    {
      "type": "ContextPane",
      "parameters": {
        "isPrimary": true,
        "label": "Add Account",
        "title": "Add Account",
        "subtitle": "Add Account",
        "contextPaneType": "DataConnectorsContextPane",
        "instructionSteps": [
          {
            "instructions": [
              {
                "type": "Textbox",
                "parameters": {
                  "label": "Snowflake Account Identifier",
                  "placeholder": "Enter Snowflake Account Identifier",
                  "type": "text",
                  "name": "accountId",
                  "validations": {
                    "required": true
                  }
                }
              },
              {
                "type": "Textbox",
                "parameters": {
                  "label": "Snowflake PAT",
                  "placeholder": "Enter Snowflake PAT",
                  "type": "password",
                  "name": "apikey",
                  "validations": {
                    "required": true
                  }
                }
              }
            ]
          }
        ]
      }
    }
    
    フィールド 必須 説明
    title True 文字列 コンテキスト ウィンドウのタイトル。
    サブタイトル True 文字列 コンテキスト ウィンドウのサブタイトル。
    contextPaneType True 文字列 コンテキスト ウィンドウの種類。
    instructionSteps True 配列
    instructionSteps
    コンテキスト ウィンドウの命令手順。
    ラベル 文字列 コンテキスト ウィンドウのラベル。
    isPrimary ブール型 これがプライマリ コンテキスト ウィンドウであるかどうかを示します。
    Infomessage

    インライン情報メッセージの例を次に示します。

    インライン情報メッセージのスクリーンショット。

    一方、次の図は、インラインではない情報メッセージを示しています。

    インラインではない情報メッセージのスクリーンショット。

    配列値 説明
    text 文字列 メッセージに表示するテキストを定義します。
    visible ブール型 メッセージを表示するかどうかを決定します。
    インライン ブール型 情報メッセージの表示方法を決定します。

    - true: (推奨) 手順に埋め込まれた情報メッセージを表示します。
    - false: 青い背景を追加します。
    InstructionStepsGroup

    展開可能な命令グループの例を次に示します。

    拡張可能な追加の命令グループのスクリーンショット。

    配列値 必須 説明
    title True 文字列 命令ステップのタイトルを定義します。
    description 文字列 省略可能な説明テキスト。
    canCollapseAllSections ブール型 セクションが折りたたみ可能なアコーディオンであるかどうかを判断します。
    noFxPadding ブール型 true場合は、スペースを節約するために高さのパディングを減らします。
    拡大 ブール型 true場合は、既定で展開済みとして表示されます。

    詳細な例については、 Windows DNS コネクタの構成 JSON を参照してください。

    InstallAgent

    一部の InstallAgent の種類はボタンとして表示され、他の種類はリンクとして表示されます。 両方の例を次に示します。

    ボタンとして追加されたリンクのスクリーンショット。

    インライン テキストとして追加されたリンクのスクリーンショット。

    配列の値 必須 説明
    linkType True Enum 次のいずれかの値として、リンクの種類を決定します。

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall OpenMicrosoftAzureMonitoring
    OpenFrontDoors
    OpenCdnProfile
    AutomaticDeploymentCEF
    OpenAzureInformationProtection
    OpenAzureActivityLog
    OpenIotPricingModel
    OpenPolicyAssignment
    OpenAllAssignmentsBlade
    OpenCreateDataCollectionRule
    policyDefinitionGuid true OpenPolicyAssignment linkType を使用する場合。 文字列 ポリシー ベースのコネクタの場合は、組み込みのポリシー定義の GUID を定義します。
    assignMode Enum ポリシー ベースのコネクタの場合は、割り当てモードを次のいずれかの値として定義します: InitiativePolicy
    dataCollectionRuleType Enum DCR ベースのコネクタの場合、データ収集規則の種類を SecurityEventまたは ForwardEventとして定義します。

    データ コネクタ定義の例

    次の例では、この記事で定義されているコンポーネントの一部を JSON 本文形式としてまとめ、データ コネクタ定義 API の作成または更新で使用します。

    connectorUiConfigのその他の例については、他の CCF データ コネクタを確認してください。 従来の CCF を使用するコネクタでも、UI の作成の有効な例があります。

    {
        "kind": "Customizable",
        "properties": {
            "connectorUiConfig": {
              "title": "Example CCF Data Connector",
              "publisher": "My Company",
              "descriptionMarkdown": "This is an example of data connector",
              "graphQueriesTableName": "ExampleConnectorAlerts_CL",
              "graphQueries": [
                {
                  "metricName": "Alerts received",
                  "legend": "My data connector alerts",
                  "baseQuery": "{{graphQueriesTableName}}"
                },   
               {
                  "metricName": "Events received",
                  "legend": "My data connector events",
                  "baseQuery": "ASIMFileEventLogs"
                }
              ],
                "sampleQueries": [
                {
                    "description": "All alert logs",
                    "query": "{{graphQueriesTableName}} \n | take 10"
                }
              ],
              "dataTypes": [
                {
                  "name": "{{graphQueriesTableName}}",
                  "lastDataReceivedQuery": "{{graphQueriesTableName}} \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                },
                 {
                  "name": "ASIMFileEventLogs",
                  "lastDataReceivedQuery": "ASIMFileEventLogs \n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
                 }
              ],
              "connectivityCriteria": [
                {
                  "type": "HasDataConnectors"
                }
              ],
              "permissions": {
                "resourceProvider": [
                  {
                    "provider": "Microsoft.OperationalInsights/workspaces",
                    "permissionsDisplayText": "Read and Write permissions are required.",
                    "providerDisplayName": "Workspace",
                    "scope": "Workspace",
                    "requiredPermissions": {
                      "write": true,
                      "read": true,
                      "delete": true
                    }
                  },
                ],
                "customs": [
                  {
                    "name": "Example Connector API Key",
                    "description": "The connector API key username and password is required"
                  }
                ] 
            },
              "instructionSteps": [
                {
                  "title": "Connect My Connector to Microsoft Sentinel",
                  "description": "To enable the connector provide the required information below and click on Connect.\n>",
                  "instructions": [
                   {
                      "type": "Textbox",
                      "parameters": {
                        "label": "User name",
                        "placeholder": "User name",
                        "type": "text",
                        "name": "username"
                      }
                    },
                    {
                      "type": "Textbox",
                      "parameters": {
                        "label": "Secret",
                        "placeholder": "Secret",
                        "type": "password",
                        "name": "password"
                      }
                    },
                    {
                      "type": "ConnectionToggleButton",
                      "parameters": {
                        "connectLabel": "toggle",
                        "name": "toggle"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }