次の方法で共有


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. Status。 データ コネクタが Microsoft Sentinel に接続されているかどうかを示します。
  4. データ グラフ。 関連するクエリと、過去 2 週間に取り込まれたデータの量が表示されます。
  5. [手順] タブ。ユーザーがコネクタを有効にするための最小限の検証のリストと、コネクタをユーザーが有効にする方法を示す[手順]がある [前提条件] セクションが含まれています。 このセクションには、テキスト、ボタン、フォーム、テーブル、およびプロセスを簡略化するその他の一般的なウィジェットを含めることができます。
  6. [次のステップ] タブ。サンプル クエリなど、イベント ログ内のデータを見つける方法を理解するために役立つ情報が含まれています。

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

プロパティ名 種類​​ 説明
availability {
"status": 1,
"isPreview": ブール値
}

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

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

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

これらのすべての部分をまとめるのは複雑です。 まとめるコンポーネントをテストするには、コネクタ ページのユーザー エクスペリエンス検証ツールを使用してください。

dataTypes

配列の値 種類 説明
name String 変数のサポートを含む lastDataReceivedQuery のわかりやすい説明。

例: {{graphQueriesTableName}}
lastDataReceivedQuery String データが最後に受信された日時を示す 1 つの行を返す KQL クエリ。関連するデータがない場合は、データが存在しないことを示します。

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

graphQueries

[データ グラフ] ウィンドウで過去 2 週間のデータ インジェスト を表示するクエリを定義します。

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

配列の値 種類 説明
metricName String グラフのわかりやすい名前。

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

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

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

instructionSteps

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

配列のプロパティ 種類 説明
title String 任意。 手順のタイトルを定義します。
description String 任意。 手順のわかりやすい説明を定義します。
innerSteps Array 省略可能。 内部手順の配列を定義します。
instructions 手順の配列 必須。 特定のパラメーター型の手順の配列を定義します。
bottomBorder ブール値 省略可能。 true の場合は、Microsoft Sentinel のコネクタ ページの手順領域の下部の罫線を追加します。
isComingSoon ブール値 省略可能。 true の場合、Microsoft Sentinel のコネクタ ページに [近日対応予定] のタイトルが追加されます。

命令

パラメーターとしてさまざまなオプションがあり、より多くの instructionSteps をグループに入れ子にする機能を持つ手順のグループを表示します。

パラメーター 配列のプロパティ 説明
APIKey APIKey コネクタの JSON 構成ファイルにプレースホルダーを追加します。
CopyableLabel CopyableLabel 末尾にコピー ボタンがあるテキスト フィールドを表示します。 ボタンを選択すると、フィールドの値がコピーされます。
InfoMessage InfoMessage インライン情報メッセージを定義します。
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 String 接続したときユーザーに表示されるテキスト ボックスの表示値を定義します。
RequestObjectKey String プレースホルダーの値をユーザーが指定した値に置き換えるための pollingConfig の要求セクションの ID を定義します。

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

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

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

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

InfoMessage

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

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

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

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

配列の値 種類 説明
text String メッセージに表示するテキストを定義します。
visible ブール値 メッセージを表示するかどうかを決定します。
inline ブール値 情報メッセージの表示方法を決定します。

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

InstructionStepsGroup

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

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

配列の値 種類 説明
title String 手順のタイトルを定義します。
canCollapseAllSections ブール値 省略可能。 セクションが折りたたみ可能なアコーディオンかどうかを判断します。
noFxPadding ブール値 省略可能。 true の場合、縦方向のパディングを減らしてスペースを節約します。
expanded ブール値 省略可能。 true の場合、既定で展開して表示されます。

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

InstallAgent

InstallAgent の種類にはボタンとして表示されるものと、リンクとして表示されるものがあります。 両方の例を次に示します。

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

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

配列の値 種類 説明
linkType ENUM リンクの種類を次のいずれかの値で決定します。

InstallAgentOnWindowsVirtualMachine
InstallAgentOnWindowsNonAzure
InstallAgentOnLinuxVirtualMachine
InstallAgentOnLinuxNonAzure
OpenSyslogSettings
OpenCustomLogsSettings
OpenWaf
OpenAzureFirewall OpenMicrosoftAzureMonitoring
OpenFrontDoors
OpenCdnProfile
AutomaticDeploymentCEF
OpenAzureInformationProtection
OpenAzureActivityLog
OpenIotPricingModel
OpenPolicyAssignment
OpenAllAssignmentsBlade
OpenCreateDataCollectionRule
policyDefinitionGuid String OpenPolicyAssignment linkType を使用するときは必須。 ポリシー ベースのコネクタの場合は、組み込みのポリシー定義の GUID を定義します。
assignMode ENUM 省略可能。 ポリシー ベースのコネクタの場合は、割り当てモードを次のいずれかの値で定義します。InitiativePolicy
dataCollectionRuleType ENUM 省略可能。 DCR ベースのコネクタの場合、データ収集ルールの種類を次のいずれかで定義します。SecurityEventForwardEvent

metadata

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

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

権限

配列の値 種類 説明
customs String 次の構文で、データ接続に必要なカスタム アクセス許可を説明します。
{
"name":string,
"description":string
}

例: customs の値は、Microsoft Sentinel の [前提条件] セクションに青い情報アイコンとともに表示されます。 GitHub の例では、これは GitHub API personal token Key: You need access to GitHub personal token... という行に対応します
ライセンス ENUM 次のいずれかの値で必要なライセンスを定義します。OfficeIRMOfficeATPOffice365AadP1P2McasAatpMdatpMtpIoT

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

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

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

例: Microsoft Sentinel で tenant の値を「テナントのアクセス許可: ワークスペースのテナントの Global Administrator または Security Administrator が必要です」と表示します

resourceProvider

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

sampleQueries

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

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

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

マークダウンを使用してインライン リンクを定義するには、次の例を使用してください。 ここでは、手順の説明にリンクを指定しています。

{
   "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 ビルド ガイドのコネクタをビルドする手順を参照してください。

Note

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

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

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

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

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

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

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

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

認証の構成

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

基本的な authType パラメータ

名前 種類 説明
ユーザー名 String 必須。 ユーザー名を定義します。
パスワード String 必須。 ユーザー パスワードを定義します。

APIKey authType パラメーター

名前 種類 説明
APIKeyName String 省略可能。 次のいずれかの値で API キーの名前を定義します。

- XAuthToken
- Authorization
IsAPIKeyInPostPayload ブール値 API キーが定義されている場所を決定します。

True: API キーは POST 要求ペイロードで定義されます。
False: API キーはヘッダーで定義されます。
APIKeyIdentifier String 任意。 API キーの識別子の名前を定義します。

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

OAuth2 authType パラメータ

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

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

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

名前 種類 説明
FlowName String 必須。 OAuth2 フローを定義します。

サポートされる値: AuthCode - 認可フローが必要
AccessToken String 任意。 アクセストークンの有効期限が切れない場合に関連する OAuth2 アクセストークンを定義します。
AccessTokenPrepend String 任意。 OAuth2 アクセストークンの先頭を定義します。 既定値は Bearer です。
RefreshToken String OAuth2 認証の種類には必須です。 OAuth2 更新トークンを定義します。
TokenEndpoint String OAuth2 認証の種類には必須です。 OAuth2 トークン サービス エンドポイントを定義します。
AuthorizationEndpoint String 任意。 OAuth2 承認サービス エンドポイントを定義します。 オンボーディング中または更新トークンの更新時にのみ使用されます。
RedirectionEndpoint String 任意。 オンボーディング中のリダイレクト エンドポイントを定義します。
AccessTokenExpirationDateTimeInUtc String 任意。 アクセス トークンの有効期限 datetime を UTC 形式で定義します。 アクセス トークンの有効期限が切れない場合、つまり UTC の日付時刻が大きい場合、またはアクセス トークンの有効期限が大きい日時に関連します。
RefreshTokenExpirationDateTimeInUtc String OAuth2 認証の種類には必須です。 更新トークンの有効期限を UTC 形式で定義します。
TokenEndpointHeaders ディクショナリ<文字列、オブジェクト> 省略可能。 OAuth2 トークン サービス エンドポイントを呼び出すときのヘッダーを定義します。

次のようにシリアル化された dictionary<string, string> 形式で文字列を定義します。{'<attr_name>': '<val>', '<attr_name>': '<val>'... }
AuthorizationEndpointHeaders ディクショナリ<文字列、オブジェクト> 省略可能。 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 ディクショナリ<文字列、オブジェクト> 省略可能。 OAuth2 トークン サービス エンドポイントを呼び出すときにクエリ パラメーターを定義します。

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

次のようにシリアル化された dictionary<string, object> 形式で文字列を定義します。{'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...}
JwtClaimsInJson ディクショナリ<文字列、オブジェクト> 省略可能。 JWT 要求を JSON 形式で定義します。

次のようにシリアル化された dictionary<string, object> 形式で文字列を定義します。{'<attr_name>': <serialized val>, '<attr_name>': <serialized val>, ...}
JwtPem String 任意。 秘密キーを PEM Pkcs1 形式で定義します。 '-----BEGIN RSA PRIVATE KEY-----\r\n{privatekey}\r\n-----END RSA PRIVATE KEY-----\r\n'

'\r\n'コードを所定の位置に保持してください。
RequestTimeoutInSeconds Integer 省略可能。 トークン サービス エンドポイントを呼び出すときのタイムアウトを秒単位で決定します。 既定値は 180 秒です

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

"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, string> 形式のクエリ パラメーターのリスト:

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

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

要求の構成

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

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

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

最小値: 5
queryParameters ディクショナリ<文字列、オブジェクト> 省略可能。 クエリで eventsJsonPaths パスで渡されるパラメーターを定義します。

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

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

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

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

応答の構成

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

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

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

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

"eventsJsonPaths": [
              "$"
            ]

ページングの構成

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

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

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

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 で共有します。

詳細については、「