次の方法で共有


[非推奨]Microsoft Sentinel 用の従来のコードレス コネクタを作成する

重要

多くのアプライアンスおよびデバイスからのログ収集が、AMA 経由の Common Event Format (CEF)、AMA 経由の Syslog、または Microsoft Sentinel の AMA データ コネクタ経由のカスタム ログでサポートされるようになりました。 詳細については、「Microsoft Sentinel データ コネクタを見つける」を参照してください。

重要

新しいバージョンのコードレス コネクタ プラットフォーム (CCP) があります。 新しい CCP の詳細については、「コードレス コネクタの作成 (プレビュー)」を参照してください。

この古いバージョンの CCP に基づいてデータ コネクタを保守または更新する必要がある場合は、このドキュメントを参照してください。

CCP は、パートナー、上級ユーザー、および開発者に、カスタム コネクタを作成し、接続し、Microsoft Sentinel にデータを取り込む機能を提供します。 CCP を介して作成されたコネクタは、API、ARM テンプレート、または Microsoft Sentinel コンテンツ ハブのソリューションとしてデプロイできます。

CCP を使用して作成されたコネクタは完全に SaaS であり、サービスのインストールの要件はありません。また、 正常性の監視 と Microsoft Sentinel からの完全なサポートも含まれます。

データ コネクタを作成するには、JSON 構成を定義し、Microsoft Sentinel のデータ コネクタ ページの外観と、接続の機能を定義するポーリング設定を設定します。

重要

このバージョンのコードレス コネクタ プラットフォーム (CCP) はプレビュー段階ですが、レガシとも見な されますAzure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。

CCP コネクタを作成し、Microsoft Sentinel からデータ ソースに接続するには、次の手順に従います。

  • コネクタのユーザー インターフェイスを構成する
  • コネクタのポーリング設定を構成する
  • コネクタを Microsoft Sentinel ワークスペースにデプロイする
  • Microsoft Sentinel をデータ ソースに接続し、データの取り込みを開始する

この記事では、CCP JSON の構成で使用される構文と、API、ARM テンプレート、または Microsoft Sentinel ソリューションを使用してコネクタをデプロイする手順について説明します。

[前提条件]

コネクタを構築する前に、データ ソースの動作と、Microsoft Sentinel の接続方法を正確に理解することをお勧めします。

たとえば、接続を成功させるために必要な認証、改ページ、API エンドポイントの種類を把握する必要があります。

コネクタ JSON 構成ファイルを作成する

カスタム CCP コネクタには、デプロイに必要な 2 つの主要な JSON セクションがあります。 これらの領域を入力して、Azure portal でのコネクタの表示方法と、コネクタが Microsoft Sentinel をデータ ソースに接続する方法を定義します。

次に、ARM 経由でコードレス コネクタをデプロイする場合は、データ コネクタ用の ARM テンプレートでこれらのセクションをラップします。

他の CCP データ コネクタを例として確認するか、サンプル テンプレート DataConnector_API_CCP_template.json (プレビュー) をダウンロードします。

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

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

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

サンプル データ コネクタ ページのスクリーンショット。

  1. タイトル。 データ コネクタ用に表示されるタイトル。
  2. ロゴ。 データ コネクタ用に表示されるアイコン。 これをカスタマイズできるのは、ソリューションの一部としてデプロイする場合のみです。
  3. 状態。 データ コネクタが Microsoft Sentinel に接続されているかどうかを示します。
  4. データ グラフ。 関連するクエリと、過去 2 週間の取り込まれたデータの量を表示します。
  5. [手順] タブ。ユーザーがコネクタを有効にする前に最小限の検証の一覧を含む [前提条件] セクションと、コネクタのユーザー有効化をガイドする 手順が含まれています。 このセクションには、テキスト、ボタン、フォーム、テーブル、およびその他の一般的なウィジェットを含め、プロセスを簡略化できます。
  6. [次のステップ] タブ。サンプル クエリなど、イベント ログ内のデータを検索する方法を理解するのに役立つ情報が含まれています。

ユーザー インターフェイスを構成するために必要な connectorUiConfig セクションと構文を次に示します。

プロパティ名 タイプ 説明
可用性 {
"status": 1,
"isPreview": ブーリアン
}

status: 1 コネクタが一般提供されていることを示します。
isPreview コネクタ名にサフィックス (プレビュー) を含めるかどうかを示します。
接続基準 {
"type": SentinelKindsV2,
"value": APIPolling
}
コネクタが正しく定義されているかどうかを確認する方法を定義するオブジェクト。 ここに示されている値を使用します。
dataTypes dataTypes[] コネクタのすべてのデータ型の一覧と、各データ型の最後のイベントの時刻をフェッチするクエリ。
descriptionMarkdown マークダウン言語を追加して強化する機能を備えたコネクタの説明。
graphQueries graphQueries[] 過去2週間のデータインジェストを示すクエリは、データチャートペインに表示されます。

データ コネクタのすべてのデータ型に対して 1 つのクエリを指定するか、データ型ごとに異なるクエリを指定します。
graphQueriesTableName クエリのデータの取得元となる Log Analytics テーブルの名前を定義します。

テーブル名には任意の文字列を指定できますが、末尾は _CL にする必要があります。 例: TableName_CL
instructionsSteps instructionSteps[] [ 手順 ] タブに表示される、コネクタのインストール方法を説明するウィジェット パーツの配列。
metadata metadata コネクタの説明の下に表示されるメタデータ。
アクセス許可 permissions[] UI の [前提条件 ] セクションに表示される情報。コネクタを有効または無効にするために必要なアクセス許可が一覧表示されます。
発行者 これは、[ プロバイダー ] セクションに表示されるテキストです。
sampleQueries sampleQueries[] [ 次のステップ ] タブに表示される、イベント ログ内のデータを検索する方法を理解するための顧客向けのサンプル クエリ。
タイトル データ コネクタ ページに表示されるタイトル。

これらすべての要素をまとめる作業は複雑です。 コネクタ ページのユーザー エクスペリエンス検証ツールを使用して、まとめたコンポーネントをテストします。

データ型

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

例: {{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}}

instructionSteps

このセクションでは、Microsoft Sentinel のデータ コネクタ ページに表示される一連の手順を定義するパラメーターを示します。

アレイ プロパティ タイプ 説明
タイトル 省略可。 手順のタイトルを定義します。
説明 省略可。 手順のわかりやすい説明を定義します。
innerSteps 配列 省略可。 内部命令ステップの配列を定義します。
指示 命令の配列 必須。 特定のパラメーター型の命令の配列を定義します。
bottomBorder ボーリアン 省略可。 trueを実行すると、Microsoft Sentinel のコネクタ ページの指示セクションに下罫線を追加します。
近日公開予定 ボーリアン 省略可。 trueしたら、Microsoft Sentinel のコネクタ ページに近日公開予定のタイトルを追加します

指示

さまざまなオプションをパラメーターとして使用し、複数の instructionSteps をグループに入れ子にする機能を含む命令のグループを表示します。

パラメーター 配列プロパティ 説明
APIKey APIKey コネクタの JSON 構成ファイルにプレースホルダーを追加します。
コピー可能なラベル コピー可能ラベル 末尾にコピー ボタンがあるテキスト フィールドが表示されます。 ボタンを選択すると、フィールドの値がコピーされます。
情報メッセージ 情報メッセージ インライン情報メッセージを定義します。
InstructionStepsGroup InstructionStepsGroup 別の手順セクションに、必要に応じて展開または折りたたみ可能な命令のグループを表示します。
InstallAgent InstallAgent さまざまなインストール要件を満たす Azure の他の部分へのリンクを表示します。

APIKey

プレースホルダー パラメーターを含む JSON 構成ファイル テンプレートを作成して、複数のコネクタ間で再利用したり、現在ないデータを含むコネクタを作成したりできます。

プレースホルダー パラメーターを作成するには、次の構文を使用して、CCP JSON 構成ファイルの Instructions セクションで userRequestPlaceHoldersInput という名前の追加の配列を定義します。

"instructions": [
                {
                  "parameters": {
                    "enable": "true",
                    "userRequestPlaceHoldersInput": [
                      {
                        "displayText": "Organization Name",
                        "requestObjectKey": "apiEndpoint",
                        "placeHolderName": "{{placeHolder}}"
                      }
                    ]
                  },
                  "type": "APIKey"
                }
              ]

userRequestPlaceHoldersInput パラメーターには、次の属性が含まれています。

名前 タイプ 説明
DisplayText 接続時にユーザーに表示されるテキスト ボックスの表示値を定義します。
RequestObjectKey プレースホルダーの値をユーザー指定の値に置き換えるために、 pollingConfig の要求セクションの ID を定義します。

この属性を使用しない場合は、代わりに PollingKeyPaths 属性を使用します。
PollingKeyPaths プレースホルダー値をユーザー値に置き換えるために、テンプレート内の任意の場所に API 呼び出しを指示する JsonPath オブジェクトの配列を定義します。

: "pollingKeyPaths":["$.request.queryParameters.test1"]

この属性を使用しない場合は、代わりに RequestObjectKey 属性を使用します。
PlaceHolderName JSON テンプレート ファイル内のプレースホルダー パラメーターの名前を定義します。 {{placeHolder}}など、任意の一意の値を指定できます。

コピー可能なラベル

例:

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

サンプル コード:

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

InfoMessage

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

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

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

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

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

- 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 OpenPolicyAssignment linkType を使用する場合は必須です。 ポリシー ベースのコネクタの場合は、組み込みのポリシー定義の GUID を定義します。
assignMode ENUM 省略可。 ポリシー ベースのコネクタの場合は、割り当てモードを次のいずれかの値として定義します: InitiativePolicy
データ収集ルールタイプ ENUM 省略可。 DCR ベースのコネクタの場合、データ収集規則の種類を次のいずれかとして定義します。 SecurityEventForwardEvent

メタデータ

このセクションでは、データ コネクタ UI の [説明] 領域の下にメタデータを提供します。

コレクションの価値 タイプ 説明
kind 作成する ARM テンプレートの種類を定義します。 常に dataConnectorを使用します。
ソース 次の構文を使用して、データ ソースについて説明します。
{
"kind":文字列
"name":文字列
}
作成者 次の構文を使用して、データ コネクタの作成者について説明します。
{
"name":ストリング
}
サポート 次の構文を使用して、データ コネクタに提供されるサポートについて説明します。
{
"tier":文字列
"name":
"email":文字列
"link":URL 文字列
}

権限

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

例: 通関 値は、青い情報アイコンと共に Microsoft Sentinel の [前提条件] セクションに表示されます。 GitHub の例では、これは行 GitHub API の個人用トークン キーに関連付けられます。GitHub 個人用トークンにアクセスする必要があります。...
licenses 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でテナントの値を表示するには: テナントのアクセス許可: ワークスペースのテナントに対するGlobal AdministratorまたはSecurity Administratorが必要です

リソースプロバイダー

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

データ コネクタ ページのユーザー エクスペリエンスを検証する

コネクタのユーザー エクスペリエンスをレンダリングして検証するには、次の手順に従います。

  1. テスト ユーティリティには、この URL からアクセスできます。 https://aka.ms/sentineldataconnectorvalidateurl
  2. Microsoft Sentinel -> データ コネクタに移動する
  3. [インポート] ボタンをクリックし、データ コネクタの connectorUiConfig セクションのみを含む json ファイルを選択します。

この検証ツールの詳細については、GitHub ビルド ガイドのコネクタのビルド 手順を参照してください。

APIKey 命令パラメーターはコードレス コネクタに固有であるため、このセクションを一時的に削除して検証ツールを使用するか、失敗します。

コネクタのポーリング設定を構成する

このセクションでは、コードレス データ コネクタのデータ ソースからデータをポーリングする方法の構成について説明します。

次のコードは、CCP 構成ファイルの pollingConfig セクションの構文を示しています。

"pollingConfig": {
    "auth": {
    },
    "request": {
    },
    "response": {
    },
    "paging": {
    }
 }

pollingConfig セクションには、次のプロパティが含まれています。

名前 タイプ 説明
認証 データをポーリングするための認証プロパティについて説明します。 詳細については、 認証構成を参照してください。
auth.authType 必須。 auth オブジェクト内に入れ子になった認証の種類を、次のいずれかの値として定義します:BasicAPIKeyOAuth2
要求 入れ子の JSON 必須。 API エンドポイントなど、データをポーリングするための要求ペイロードについて説明します。 詳細については、「要求の構成」をご覧ください。
response 入れ子の JSON 必須。 データのポーリング時に API から返される応答オブジェクトと入れ子になったメッセージについて説明します。 詳細については、「応答の構成」をご覧ください。
ページング 入れ子の JSON 省略可。 データをポーリングする際のページネーションペイロードについて説明します。 詳細については、「ページングの構成」をご覧ください。

詳細については、「 pollingConfig コードのサンプル」を参照してください。

認証の構成

pollingConfig 構成の auth セクションには、authType 要素で定義されている型に応じて、次のパラメーターが含まれています。

基本的な authType パラメーター

名前 タイプ 説明
ユーザー名 必須。 ユーザー名を定義します。
パスワード 必須。 ユーザー パスワードを定義します。

APIKey authType パラメーター

名前 タイプ 説明
APIKeyName 省略可。 API キーの名前を、次のいずれかの値として定義します。

- XAuthToken
- Authorization
IsAPIKeyInPostPayload ボーリアン API キーが定義されている場所を決定します。

True: API キーは POST 要求ペイロードで定義されています
False: API キーがヘッダーで定義されている
APIKeyIdentifier 省略可。 API キーの識別子の名前を定義します。

たとえば、承認が "Authorization": "token <secret>"として定義されている場合、このパラメーターは次のように定義されます。 {APIKeyIdentifier: “token”})

OAuth2 authType パラメーター

コードレス コネクタ プラットフォームでは、OAuth 2.0 承認コード付与がサポートされています。

認証コード付与の種類は、認証コードをアクセストークンと交換するために、機密クライアントおよびパブリッククライアントによって使用されます。

ユーザーがリダイレクト URL 経由でクライアントに戻った後、アプリケーションは URL から認証コードを取得し、それを使用してアクセス トークンを要求します。

名前 タイプ 説明
FlowName 必須。 OAuth2 フローを定義します。

サポートされる値: AuthCode - 承認フローが必要です
AccessToken 省略可。 アクセス トークンの有効期限が切れないときに関連する OAuth2 アクセス トークンを定義します。
AccessTokenPrepend 省略可。 OAuth2 アクセス トークンの先頭を定義します。 既定値は Bearer です。
RefreshToken OAuth2 認証の種類には必須です。 OAuth2リフレッシュトークンの定義。
TokenEndpoint OAuth2 認証の種類には必須です。 OAuth2 トークン サービス エンドポイントを定義します。
認証エンドポイント (AuthorizationEndpoint) 省略可。 OAuth2 承認サービス エンドポイントを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。
リダイレクトエンドポイント 省略可。 オンボード中にリダイレクト エンドポイントを定義します。
AccessTokenExpirationDateTimeInUtc(アクセストークン有効期限の日付と時刻(UTC)) 省略可。 アクセス トークンの有効期限の日時を UTC 形式で定義します。 アクセス トークンの有効期限が切れないので、UTC の日時が大きい場合、またはアクセス トークンの有効期限が長い日時に関連します。
RefreshTokenExpirationDateTimeInUtc OAuth2 認証の種類には必須です。 更新トークンの有効期限の日時を UTC 形式で定義します。
TokenEndpointHeaders Dictionary<string, object> 省略可。 OAuth2 トークン サービス エンドポイントを呼び出すときのヘッダーを定義します。

シリアル化された dictionary<string, string> 形式で文字列を定義します。 {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
AuthorizationEndpointHeaders Dictionary<string, object> 省略可。 OAuth2 承認サービス エンドポイントを呼び出すときのヘッダーを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
AuthorizationEndpointQueryParameters ディクショナリ<ストリング, オブジェクト> 省略可。 OAuth2 承認サービス エンドポイントを呼び出すときのクエリ パラメーターを定義します。 オンボード中または更新トークンの更新時にのみ使用されます。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
TokenEndpointQueryParameters Dictionary<string, object>(辞書<文字列, オブジェクト>) 省略可。 OAuth2 トークン サービス エンドポイントを呼び出すときのクエリ パラメーターを定義します。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ... }
IsTokenEndpointPostPayloadJson ボーリアン 省略可能。既定値は false です。 クエリ パラメーターが JSON 形式であるかどうかを判断し、要求 POST ペイロードで設定します。
IsClientSecretInHeader (クライアントシークレットがヘッダーにあるか) ボーリアン 省略可能。既定値は false です。 POST ペイロードではなく、基本認証スキーマで行われるように、 client_id 値と client_secret 値がヘッダーで定義されているかどうかを判断します。
RefreshTokenLifetimeinSecAttributeName 省略可。 更新トークンの有効期間を秒単位で指定して、トークン エンドポイント応答の属性名を定義します。
IsJwtBearerFlow ボーリアン 省略可能。既定値は false です。 JWT を使用しているかどうかを判断します。
JwtHeaderInJson Dictionary<string, object> 省略可。 JSON 形式で JWT ヘッダーを定義します。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...}
JSON形式のJWTクレーム Dictionary<string(文字列), object(オブジェクト)> 省略可。 JSON 形式で JWT 要求を定義します。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...}
JwtPem 省略可。 PEM Pkcs1 形式で秘密鍵を定義します。 '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n'

'\r\n'コードは必ず所定の位置に置いておく必要があります。
RequestTimeoutInSeconds 整数 省略可。 トークン サービス エンドポイントを呼び出すときのタイムアウトを秒単位で決定します。 既定値は 180 秒です

OAuth2 構成の例を次に示します。

"pollingConfig": {
    "auth": {
        "authType": "OAuth2",
        "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent",
        "redirectionEndpoint": "https://portal.azure.com/TokenAuthorize",
        "tokenEndpoint": "https://oauth2.googleapis.com/token",
        "authorizationEndpointQueryParameters": {},
        "tokenEndpointHeaders": {
            "Accept": "application/json"
        },
        "TokenEndpointQueryParameters": {},
        "isClientSecretInHeader": false,
        "scope": "https://www.googleapis.com/auth/admin.reports.audit.readonly",
        "grantType": "authorization_code",
        "contentType": "application/x-www-form-urlencoded",
        "FlowName": "AuthCode"
    },

セッション authType パラメーター

名前 タイプ 説明
QueryParameters Dictionary<string, object> 省略可。 シリアル化された dictionary<string, string> 形式のクエリ パラメーターの一覧。

{'<attr_name>': '<val>', '<attr_name>': '<val>'... }
IsPostPayloadJson ボーリアン 省略可。 クエリ パラメーターが JSON 形式であるかどうかを判断します。
ヘッダー 辞書型<文字列, オブジェクト> 省略可。 エンドポイントを呼び出してセッション ID を取得するときに、およびエンドポイント API を呼び出すときに使用されるヘッダーを定義します。

シリアル化された dictionary<string, string> 形式で文字列を定義します。 {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
SessionTimeoutInMinutes 省略可。 セッション タイムアウトを分単位で定義します。
SessionIdName 省略可。 セッションの ID 名を定義します。
SessionLoginRequestUri 省略可。 セッション ログイン要求 URI を定義します。

要求の構成

pollingConfig 構成の request セクションには、次のパラメーターが含まれています。

名前 タイプ 説明
apiEndpoint 必須。 データのプル元のエンドポイントを定義します。
httpMethod 必須。 API メソッドを定義します。 GET または POST
queryTimeFormat String、 UnixTimestampUnixTimestampInMills 必須。 クエリ時刻の定義に使用する形式を定義します。

この値には文字列を指定するか、 UnixTimestamp または UnixTimestampInMills 形式を使用して、UnixTimestamp のクエリの開始時刻と終了時刻を示すことができます。
startTimeAttributeName 省略可。 クエリの開始時刻を定義する属性の名前を定義します。
endTimeAttributeName 省略可。 クエリの終了時刻を定義する属性の名前を定義します。
queryTimeIntervalAttributeName 省略可。 クエリの時間間隔を定義する属性の名前を定義します。
queryTimeIntervalDelimiter 省略可。 クエリの時間間隔区切り記号を定義します。
queryWindowInMin 整数 省略可。 使用可能なクエリ ウィンドウを分単位で定義します。

最小値: 5
queryParameters Dictionary<string, object> 省略可。 eventsJsonPaths パスでクエリで渡されるパラメーターを定義します。

シリアル化された dictionary<string, string> 形式で文字列を定義します: {'<attr_name>': '<val>', '<attr_name>': '<val>'... }
クエリパラメーターテンプレート 省略可。 高度なシナリオでクエリパラメータを渡す際に使用するクエリパラメータテンプレートを定義します。

例: "queryParametersTemplate": "{'cid': 1234567, 'cmd': 'reporting', 'format': 'siem', 'data': { 'from': '{_QueryWindowStartTime}', 'to': '{_QueryWindowEndTime}'}, '{_APIKeyName}': '{_APIKey}'}"

{_QueryWindowStartTime} および {_QueryWindowEndTime} は、 queryParameters および queryParametersTemplate 要求パラメーターでのみサポートされます。

{_APIKeyName} および {_APIKey} は、 queryParametersTemplate 要求パラメーターでのみサポートされます。
isPostPayloadJson ボーリアン 省略可。 ポスト ペイロードが JSON 形式であるかどうかを判断します。
rateLimitQPS ダブル 省略可。 1 秒あたりに許可される呼び出しまたはクエリの数を定義します。
timeoutInSeconds 整数 省略可。 要求のタイムアウトを秒単位で定義します。
retryCount 整数 省略可。 必要に応じて試行する要求の再試行回数を定義します。
ヘッダー Dictionary<string, object> 省略可。 シリアル化された dictionary<string, object> 形式で要求ヘッダー値を定義します。 {'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... }

応答の構成

pollingConfig 構成の response セクションには、次のパラメーターが含まれています。

名前 タイプ 説明
eventsJsonPaths 文字列のリスト 必須。 応答の JSON 内のメッセージへのパスを定義します。

JSPON パス式で、JSON 構造体の要素または要素のセットへのパスを指定します。
successStatusJsonPath 省略可。 応答の JSON 内の成功メッセージへのパスを定義します。
successStatusValue 省略可。 応答の JSON 内の成功メッセージ値へのパスを定義します。
Gzip圧縮されています ボーリアン 省略可。 応答が gzip ファイルで圧縮されているかどうかを判断します。

次のコードは、最上位レベルのメッセージの eventsJsonPaths 値の例を示しています。

"eventsJsonPaths": [
              "$"
            ]

ページングの構成

pollingConfig 構成の paging セクションには、次のパラメーターが含まれています。

名前 タイプ 説明
pagingType 必須。 結果で使用するページングの種類を、次の値のいずれかとして決定します: NoneLinkHeaderNextPageTokenNextPageUrlOffset
linkHeaderTokenJsonPath 省略可。 LinkHeaderが応答ヘッダーで定義されていない場合に、応答 JSON 内のヘッダーをリンクする JSON パスを定義します。
nextPageTokenJsonPath 省略可。 次のページ トークン JSON へのパスを定義します。
hasNextFlagJsonPath 省略可。 HasNextPage フラグ属性へのパスを定義します。
nextPageTokenResponseHeader (次のページトークン応答ヘッダー) 省略可。 応答の 次のページ トークン ヘッダー名を定義します。
nextPageParaName 省略可。 要求の 次のページ 名を決定します。
nextPageRequestHeader 省略可。 要求の 次のページ ヘッダー名を決定します。
nextPageUrl 省略可。 最初の要求 URL と異なる場合は、 次のページ URL を決定します。
次ページのURLクエリパラメータ 省略可。 最初の要求の URL と異なる場合に、 次のページ URL のクエリ パラメーターを決定します。

シリアル化された dictionary<string, object> 形式で文字列を定義します。 {'<attr_name>': <val>, '<attr_name>': <val>... }
offsetParaName 省略可。 オフセット パラメーターの名前を定義します。
pageSizeParaName 省略可。 ページ サイズ パラメーターの名前を定義します。
ページサイズ 整数 ページング サイズを定義します。

pollingConfig コードのサンプル

次のコードは、CCP 構成ファイルの pollingConfig セクションの例を示しています。

"pollingConfig": {
    "auth": {
        "authType": "APIKey",
        "APIKeyIdentifier": "token",
        "APIKeyName": "Authorization"
     },
     "request": {
        "apiEndpoint": "https://api.github.com/../{{placeHolder1}}/audit-log",
        "rateLimitQPS": 50,
        "queryWindowInMin": 15,
        "httpMethod": "Get",
        "queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
        "retryCount": 2,
        "timeoutInSeconds": 60,
        "headers": {
           "Accept": "application/json",
           "User-Agent": "Scuba"
        },
        "queryParameters": {
           "phrase": "created:{_QueryWindowStartTime}..{_QueryWindowEndTime}"
        }
     },
     "paging": {
        "pagingType": "LinkHeader",
        "pageSizeParaName": "per_page"
     },
     "response": {
        "eventsJsonPaths": [
          "$"
        ]
     }
}

Microsoft Sentinel にコネクタをデプロイし、データの取り込みを開始する

ユーザー インターフェイスポーリング構成の両方を含む JSON 構成ファイルを作成したら、Microsoft Sentinel ワークスペースにコネクタをデプロイします。

  1. データ コネクタをデプロイするには、次のいずれかのオプションを使用します。

    ヒント

    Azure Resource Manager (ARM) テンプレートを使用してデプロイする利点は、複数の値がテンプレートに組み込まれており、API 呼び出しで手動で定義する必要がない点です。

    JSON 構成コレクションを ARM テンプレートでラップして、コネクタをデプロイします。 データ コネクタが正しいワークスペースに確実にデプロイされるようにするには、ARM テンプレートでワークスペースを定義するか、ARM テンプレートをデプロイするときにワークスペースを選択してください。

    1. コネクタ用の ARM テンプレート JSON ファイル を準備します。 たとえば、次の ARM テンプレート JSON ファイルを参照してください。

    2. Azure portal で、[ カスタム テンプレートのデプロイ] を検索します

    3. [カスタム デプロイ] ページで、エディターで [独自のテンプレートの作成] を選択します>ファイルの読み込み。 ローカル ARM テンプレートを参照して選択し、変更を保存します。

    4. サブスクリプションとリソース グループを選択し、カスタム コネクタをデプロイする Log Analytics ワークスペースを入力します。

    5. [ 確認と作成 ] を選択して、カスタム コネクタを Microsoft Sentinel にデプロイします。

    6. Microsoft Sentinel で、[ データ コネクタ ] ページに移動し、新しいコネクタを検索します。 データの取り込み開始を構成します。

    詳細については、Azure Resource Manager ドキュメントの 「ローカル テンプレートをデプロイ する」を参照してください。

  2. データ ソースを接続し、Microsoft Sentinel へのデータの取り込みを開始するようにデータ コネクタを構成します。 すぐに使用できるデータ コネクタの場合と同様に、ポータルまたは API を使用して、データ ソースに接続できます。

    Azure portal を使用して接続すると、ユーザー データが自動的に送信されます。 API 経由で接続する場合は、API 呼び出しで関連する認証パラメーターを送信する必要があります。

    Microsoft Sentinel データ コネクタ ページで、指定した手順に従ってデータ コネクタに接続します。

    Microsoft Sentinel のデータ コネクタ ページは、CCP JSON 構成ファイルのconnectorUiConfig要素の InstructionSteps 構成によって制御されます。 ユーザー インターフェイス接続に問題がある場合は、認証の種類に適した構成になっていることを確認してください。

  3. Microsoft Sentinel で、[ ログ ] ページに移動し、データ ソースからのログがワークスペースに流れ込まれているのを確認します。

Microsoft Sentinel にデータが流れ込まない場合は、データ ソースのドキュメントとトラブルシューティング リソースを確認し、構成の詳細を確認し、接続を確認します。 詳しくは、データ コネクタの正常性の監視に関するページをご覧ください。

コネクタを取り外す

コネクタのデータが不要になった場合は、コネクタを切断してデータ フローを停止します。

以下のいずれかの方法を使用します。

  • Azure portal: Microsoft Sentinel データ コネクタ ページで、[ 切断] を選択します。

  • API: DISCONNECT API を使用して、空の本文を含む PUT 呼び出しを次の URL に送信します。

    https://management.azure.com /subscriptions/{{SUB}}/resourceGroups/{{RG}}/providers/Microsoft.OperationalInsights/workspaces/{{WS-NAME}}/providers/Microsoft.SecurityInsights/dataConnectors/{{Connector_Id}}/disconnect?api-version=2021-03-01-preview
    

次のステップ

まだ行っていない場合は、新しいコードレス データ コネクタを Microsoft Sentinel コミュニティと共有してください。 データ コネクタ用のソリューションを作成し、Microsoft Sentinel Marketplace で共有します。

詳細については、以下を参照してください。