コードレス コネクタ フレームワーク (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 構成プロパティ |
コネクタのユーザー インターフェイスを構成する
このセクションでは、データ コネクタ ページのユーザー インターフェイスをカスタマイズするために使用できる構成オプションについて説明します。
次のスクリーンショットは、ユーザー インターフェイスの注目すべき領域に対応する数値で強調表示されたサンプル データ コネクタ ページを示しています。
ユーザー インターフェイスを構成するために必要な 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 | 必要なライセンスを、 OfficeIRM、OfficeATP、 Office365、 AadP1P2、 Mcas、 Aatp、 Mdatp、 Mtpのいずれかの値として定義します。 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[]({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 つあります。passwordtextnumberemail |
| ConnectionToggleButton | ConnectionToggleButton | プレースホルダー パラメーターを使用して提供される接続情報に基づいて、DCR のデプロイをトリガーします。 次のパラメーターがサポートされています。name :必須disabledisPrimaryconnectLabeldisconnectLabel |
| 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 種類ごとに、 label、 placeholder、 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"
}
}
]
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} サポートされる値: workspaceId、 workspaceName、 primaryKey、 MicrosoftAwsAccount、 subscriptionId |
|
| ラベル | True | 文字列 | テキスト ボックスの上にあるラベルのテキストを定義します。 |
| value | True | 文字列 | テキスト ボックスに表示する値を定義し、プレースホルダーをサポートします。 |
| rows | 行 | ユーザー インターフェイス領域の行を定義します。 既定では、 1 に設定します。 | |
| wideLabel | ブール型 | 長い文字列のワイド ラベルを決定します。 既定では、 falseに設定します。 |
Dropdown
{
"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 | 次のいずれかの値として、リンクの種類を決定します。 InstallAgentOnWindowsVirtualMachineInstallAgentOnWindowsNonAzureInstallAgentOnLinuxVirtualMachineInstallAgentOnLinuxNonAzureOpenSyslogSettingsOpenCustomLogsSettingsOpenWafOpenAzureFirewall
OpenMicrosoftAzureMonitoring
OpenFrontDoors OpenCdnProfile AutomaticDeploymentCEF OpenAzureInformationProtection OpenAzureActivityLog OpenIotPricingModel OpenPolicyAssignment OpenAllAssignmentsBlade OpenCreateDataCollectionRule |
| policyDefinitionGuid | true OpenPolicyAssignment linkType を使用する場合。 |
文字列 | ポリシー ベースのコネクタの場合は、組み込みのポリシー定義の GUID を定義します。 |
| assignMode | Enum | ポリシー ベースのコネクタの場合は、割り当てモードを次のいずれかの値として定義します: Initiative、 Policy |
|
| 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"
}
}
]
}
]
}
}
}