次の方法で共有


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

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

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

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

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

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

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 には、次のプロパティがあります。

名前 必須 タイプ 説明
親切 正しい CustomizableAPI ポーリング データ コネクタの場合は、それ以外の場合は Static
プロパティ。connectorUiConfig 正しい 入れ子の JSON
connectorUiConfig
データ コネクタの UI 構成プロパティ

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

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

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

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

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

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

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

connectivityCriteria (接続性基準)

フィールド 必須 タイプ 説明
タイプ 正しい 次の 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)"

データ型

配列値 タイプ 説明
名前 lastDataReceivedQuery変数のサポートを含む、graphQueriesTableNameのわかりやすい説明。

例: {{graphQueriesTableName}}
最後のデータ受信クエリ 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}}

権限

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

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

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

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

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

例: Microsoft Sentinelでテナントの値を表示するには:

Von Bedeutung

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

リソースプロバイダー

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"
権限表示テキスト requiredPermissions で構成された値に対応する読み取り書き込み、または読み取りと書き込みのアクセス許可用のテキスト表示
requiredPermissions {
"action":ブーリアン,
"delete":ブーリアン,
"read":ブーリアン,
"write":ブーリアン
}
コネクタに必要な最小限のアクセス許可について説明します。
スコープ ENUM データ コネクタのスコープを、 "Subscription""ResourceGroup"、次のいずれかの値として記述します。 "Workspace"

サンプルクエリ

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

例: Top 10 vulnerabilities detected
クエリ データ型のデータを取得するために使用されるサンプルクエリ。

例: {{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": {}
    }
]
アレイ プロパティ 必須 タイプ 説明
タイトル 手順のタイトルを定義します。
説明 手順のわかりやすい説明を定義します。
innerSteps 配列 内部命令ステップの配列を定義します。
指示 正しい 命令の配列 特定のパラメーター型の命令の配列を定義します。

指示

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

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

    OAuthForm

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

    "instructions": [
    {
      "type": "OAuthForm",
      "parameters": {
        "clientIdLabel": "Client ID",
        "clientSecretLabel": "Client Secret",
        "connectButtonLabel": "Connect",
        "disconnectButtonLabel": "Disconnect"
      }          
    }
    ]
    

    テキストボックス

    Textbox型の例をいくつか次に示します。 これらの例は、auth セクションの例で使用されるパラメーターに対応しています。 4 種類ごとに、それぞれ labelplaceholder、および nameがあります。

    "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"
      }          
    }
    ]
    

    コピー可能なラベル

    例:

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

    サンプル コード:

    {
        "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
    ラベル 正しい テキスト ボックスの上にあるラベルのテキストを定義します。
    価値 正しい テキスト ボックスに表示する値を定義し、プレースホルダーをサポートします。
    ユーザー インターフェイス領域の行を定義します。 既定では、1 に設定 します
    wideLabel ボーリアン 長い文字列のワイド ラベルを決定します。 既定では、 falseに設定します。

    InfoMessage

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

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

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

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

    配列値 タイプ 説明
    テキスト メッセージに表示するテキストを定義します。
    目に見える ボーリアン メッセージを表示するかどうかを決定します。
    インライン ボーリアン 情報メッセージの表示方法を決定します。

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

    InstructionStepsGroup

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

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

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

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

    インストールエージェント

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

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

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

    配列値 必須 タイプ 説明
    リンクタイプ 正しい 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
    データ収集ルールタイプ ENUM DCR ベースのコネクタの場合、データ収集規則の種類を SecurityEventまたは ForwardEventとして定義します。

    データ コネクタ定義の例

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

    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"
                      }
                    }
                  ]
                }
              ]
            }
        }
    }