[已淘汰]建立Microsoft Sentinel 的舊版無程式代碼連接器
重要
許多設備與裝置的記錄收集現在都透過下列項目支援:透過 AMA 的常見事件格式 (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 功能 (搶鮮版 (Beta)、預覽版,或尚未發行的版本) 的其他法律條款。
使用下列步驟來建立您的 CCP 連接器,並從 Microsoft Sentinel 連線到您的資料來源:
- 設定連接器的使用者介面
- 設定連接器的輪詢設定
- 將連接器部署至 Microsoft Sentinel 工作區
- 將 Microsoft Sentinel 連線至資料來源並開始擷取資料
本文說明 CCP JSON 設定中使用的語法,以及透過 API、ARM 範本或 Microsoft Sentinel 解決方案部署連接器的程序。
必要條件
在建置連接器之前,建議您先了解資料來源的行為,以及 Microsoft Sentinel 所需的確切連線方式。
例如,您必須了解成功連線需要哪些類型的驗證、分頁和 API 端點。
建立連接器 JSON 設定檔
您的自訂 CCP 連接器有兩個部署所需的主要 JSON 區段。 請填寫這些區域,以定義連接器在 Azure 入口網站中的顯示方式,以及連接器如何將 Microsoft Sentinel 連線至您的資料來源。
connectorUiConfig
. 定義 Microsoft Sentinel 中資料連線器頁面上顯示的視覺效果元素和文字。 如需詳細資訊,請參閱設定連接器的使用者介面。pollingConfig
. 定義 Microsoft Sentinel 如何從資料來源收集資料。 如需詳細資訊,請參閱設定連接器的輪詢設定。
然後,如果您透過 ARM 部署無程式碼連接器,則需要將這些區段包裝在適用於資料連接器的 ARM 範本中。
將其他 CCP 資料連接器當作範例參考,或下載範例範本 DataConnector_API_CCP_template.json (預覽)。
設定連接器的使用者介面
本節說明可用來自訂資料連接器頁面使用者介面的設定選項。
下圖顯示範例資料連接器頁面,其中醒目提示了與使用者介面中值得注意的區域對應的號碼:
- 標題。 針對資料連線器顯示的標題。
- 標誌。 針對資料連線器顯示的圖示。 只有在部署為解決方案的一部分時,才能加以自訂。
- 狀態。 指出資料連接器是否連線至 Microsoft Sentinel。
- 資料圖表。 顯示相關的查詢,以及過去兩周擷取的資料量。
- 指示索引標籤。包含 [必要條件] 區段,其中列出使用者啟用連接器所需的最低驗證,也包含 [指示] 用以引導使用者啟用連接器。 此區段可以包含文字、按鈕、表單、表格,以及其他可簡化流程的常見小工具。
- 後續步驟索引標籤。包含有用的資訊,讓您了解如何在事件記錄檔中尋找資料,例如範例查詢。
以下是設定使用者介面所需的 connectorUiConfig
區段和語法:
屬性名稱 | 類型 | 描述 |
---|---|---|
可用性 | { "status": 1, "isPreview": 布林值} |
狀態:1 表示連接器通常可供客戶使用。 isPreview 指出連接器名稱是否要包含 (預覽) 尾碼。 |
connectivityCriteria | { "type": SentinelKindsV2, "value": APIPolling } |
定義如何驗證連接器是否已正確定義的物件。 請使用這裡指出的值。 |
dataTypes | dataTypes[] | 連接器的所有資料類型清單,以及擷取每個資料類型最後一個事件時間的查詢。 |
descriptionMarkdown | String | 連接器的描述,能夠新增 Markdown 語言加以強化。 |
graphQueries | graphQueries[] | 將過去兩周擷取的資料呈現在 [資料圖表] 窗格的查詢。 針對所有資料連線器的資料類型提供一個查詢,或針對每個資料類型提供不同的查詢。 |
graphQueriesTableName | String | 定義從中提取查詢資料的 Log Analytics 資料表名稱。 資料表名稱可以是任何字串,但必須以 _CL 結尾。 例如:TableName_CL |
instructionsSteps | instructionSteps[] | 說明如何安裝連接器的小工具組件陣列,其會顯示在 [指示] 索引標籤上。 |
中繼資料 | 中繼資料 | 連接器描述底下顯示的中繼資料。 |
permissions | permissions[] | UI 的 [必要條件] 區段下顯示的資訊,會列出啟用或停用連接器所需的權限。 |
publisher | String | 這是 [提供者] 區段中顯示的文字。 |
sampleQueries | sampleQueries[] | 客戶了解如何在事件記錄檔中尋找資料的範例查詢,其將顯示在 [後續步驟] 索引標籤中。 |
title | String | 顯示在資料連線器頁面中的標題。 |
要將這些部分全都放在一起,是很複雜的。 請使用連接器頁面使用者體驗驗證工具來測試您放在一起的元件。
dataTypes
陣列值 | 類型 | Description |
---|---|---|
name | String | lastDataReceivedQuery 有意義的描述,包括變數的支援。 範例: {{graphQueriesTableName}} |
lastDataReceivedQuery | String | 此 KQL 查詢會傳回一個資料列,並指出上次收到資料的時間,或者,如果沒有相關資料,則指出沒有資料。 範例: {{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time) |
graphQueries
定義一個查詢,將過去兩周擷取的資料呈現在 [資料圖表] 窗格。
針對所有資料連線器的資料類型提供一個查詢,或針對每個資料類型提供不同的查詢。
陣列值 | 類型 | 描述 |
---|---|---|
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 的要求區段中定義識別碼,以將預留位置值取代為使用者提供的值。 如果未使用此屬性,請改用 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} 支援的值: workspaceId workspaceName primaryKey MicrosoftAwsAccount subscriptionId |
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 | 選擇性。 針對原則型連接器,將指派模式定義為下列其中一個值:Initiative 、Policy |
dataCollectionRuleType | ENUM | 選擇性。 針對 DCR 型連接器,將資料收集規則類型的類型定義為下列其中一項:SecurityEvent 、ForwardEvent |
中繼資料
此區段提供資料連接器 UI 中的 [描述] 區域下的中繼資料。
集合值 | 類型 | 描述 |
---|---|---|
種類 | 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 個人權杖金鑰:您需要 GitHub 個人權杖的存取權...這一行相互關聯 |
授權 | ENUM | 將必要授權定義為下列其中一個值:OfficeIRM OfficeATP Office365 AadP1P2 Mcas Aatp Mdatp Mtp IoT 範例:licenses 值會在 Microsoft Sentinel 中顯示為:授權:必要的 Azure AD Premium P2 |
resourceProvider | resourceProvider | 描述 Azure 資源的任何必要條件。 範例:resourceProvider 值會在 Microsoft Sentinel 的 [必要條件] 區段中顯示為: 工作區:需要讀取和寫入權限。 金鑰:需要工作區共用金鑰的讀取權限。 |
tenant | ENUM 值的陣列 範例: "tenant": [ "GlobalADmin", "SecurityAdmin" ] |
將必要權限定義為下列一或多個值:"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": 布林值, "delete": 布林值, "read": 布林值, "write": Boolean} |
說明連接器所需的最低權限。 |
範圍 (scope) | ENUM | 將資料連線器的範圍描述為下列其中一個值:"Subscription" "ResourceGroup" "Workspace" |
sampleQueries
陣列值 | 類型 | 描述 |
---|---|---|
description | String | 範例查詢的有意義描述。 範例: Top 10 vulnerabilities detected |
query | String | 用來擷取資料類型資料的範例查詢。 範例: {{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})"
}
驗證資料連接器頁面使用者體驗
請依照下列步驟轉譯及驗證連接器使用者體驗。
- 測試公用程式可經由此 URL 存取 - https://aka.ms/sentineldataconnectorvalidateurl
- 移至 Microsoft Sentinel -> 資料連接器
- 按一下 [匯入] 按鈕,然後選取僅包含資料連接器
connectorUiConfig
區段的 json 檔案。
如需此驗證工具的詳細資訊,請參閱 GitHub 建置指南中的建置連接器指示。
注意
由於 APIKey 指令參數是無程式碼連接器專用的,請暫時移除此區段以使用驗證工具,否則將會失敗。
設定連接器的輪詢設定
本節描述如何針對無程式碼資料連線器從資料來源輪詢資料的設定。
下列程式碼顯示 CCP 設定檔的 pollingConfig
區段語法。
"pollingConfig": {
"auth": {
},
"request": {
},
"response": {
},
"paging": {
}
}
pollingConfig
區段包含下列屬性:
名稱 | 類型 | 描述 |
---|---|---|
auth | String | 描述用於輪詢資料的驗證屬性。 如需詳細資訊,請參閱驗證設定。 |
auth.authType | String | 必要。 將 auth 物件內巢狀的驗證類型定義為下列其中一個值:Basic 、APIKey 、OAuth2 |
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 | 選擇性。 以 UTC 格式定義存取權杖到期日時間。 當存取權杖未到期時相關,因此具有以 UTC 表示的大型日期時間,或當存取權杖具有大型到期日時間時相關。 |
RefreshTokenExpirationDateTimeInUtc | String | 對於 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 | Dictionary<string, object> | 選擇性。 呼叫 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。 判斷 client_id 和 client_secret 值是否在標頭中定義 (如同在基本驗證結構描述中所做一般),而不是在 POST 承載中定義。 |
RefreshTokenLifetimeinSecAttributeName | String | 選擇性。 根據權杖端點回應定義屬性名稱,以秒為單位指定重新整理權杖的存留期。 |
IsJwtBearerFlow | 布林值 | (選用) 預設值為 False。 判斷您是否正在使用 JWT。 |
JwtHeaderInJson | Dictionary<string, object> | 選擇性。 以 JSON 格式定義 JWT 標頭。 以序列化 dictionary<string, object> 格式定義字串:{'<attr_name>': <serialized val>, '<attr_name>': <serialized val>...} |
JwtClaimsInJson | Dictionary<string, object> | 選擇性。 以 JSON 格式定義 JWT 宣告。 以序列化 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 | 整數 | 選擇性。 判斷呼叫權杖服務端點時的逾時,以秒為單位。 預設值為 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 格式。 |
標題 | Dictionary<string, object> | 選擇性。 定義呼叫端點以取得工作階段識別碼時,以及呼叫端點 API 時所使用的標頭。 以序列化 dictionary<string, string> 格式定義字串:{'<attr_name>': '<val>', '<attr_name>': '<val>'... } |
SessionTimeoutInMinutes | String | 選擇性。 定義工作階段逾時,以分鐘為單位。 |
SessionIdName | String | 選擇性。 定義工作階段的識別碼名稱。 |
SessionLoginRequestUri | String | 選擇性。 定義工作階段登入要求 URI。 |
要求設定
pollingConfig 設定的 request
區段包含下列參數:
名稱 | 類型 | 描述 |
---|---|---|
apiEndpoint | String | 必要。 定義要從中提取資料的端點。 |
httpMethod | String | 必要。 定義 API 方法:GET 或 POST |
queryTimeFormat | 字串或 UnixTimestamp 或 UnixTimestampInMills | 必要。 定義用來定義查詢時間的格式。 此值可以是字串,或採取 UnixTimestamp 或 UnixTimestampInMills 格式,以指出 UnixTimestamp 中的查詢開始和結束時間。 |
startTimeAttributeName | String | 選擇性。 定義用來定義查詢開始時間的屬性名稱。 |
endTimeAttributeName | String | 選擇性。 定義用來定義查詢結束時間的屬性名稱。 |
queryTimeIntervalAttributeName | String | 選擇性。 定義用來定義查詢時間間隔的屬性名稱。 |
queryTimeIntervalDelimiter | String | 選擇性。 定義查詢時間間隔分隔符號。 |
queryWindowInMin | 整數 | 選擇性。 定義可用的查詢視窗,以分鐘為單位。 最小值: 5 |
queryParameters | Dictionary<string, object> | 選擇性。 定義在 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} 只在 queryParameters 和 queryParametersTemplate 要求參數中受到支援。 {_APIKeyName} 和 {_APIKey} 只在 queryParametersTemplate 要求參數中受到支援。 |
isPostPayloadJson | 布林值 | 選擇性。 判斷 POST 承載是否採取 JSON 格式。 |
rateLimitQPS | Double | 選擇性。 定義一秒內允許的呼叫或查詢數目。 |
timeoutInSeconds | 整數 | 選擇性。 定義要求逾時,以秒為單位。 |
retryCount | 整數 | 選擇性。 定義視需要嘗試的要求重試次數。 |
headers | Dictionary<string, object> | 選擇性。 以序列化 dictionary<string, object> 格式定義要求標頭值:{'<attr_name>': '<serialized val>', '<attr_name>': '<serialized val>'... } |
回應設定
pollingConfig 設定的 response
區段包含下列參數:
下列程式碼顯示最上層訊息的 eventsJsonPaths 值範例:
"eventsJsonPaths": [
"$"
]
分頁設定
pollingConfig 設定的 paging
區段包含下列參數:
名稱 | 類型 | 描述 |
---|---|---|
pagingType | String | 必要。 決定要用於結果中的分頁類型,作為下列其中一個值:None LinkHeader NextPageToken NextPageUrl Offset |
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 | 整數 | 定義分頁大小。 |
範例 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 工作區中部署連接器。
使用下列其中一個選項來部署資料連線器。
提示
透過 Azure Resource Manager (ARM) 範本進行部署的優點是有數個值會內建至範本,而且您不需要在 API 呼叫中手動定義這些值。
將 JSON 設定集合包裝在 ARM 範本中,以部署您的連接器。 若要確保您的資料連接器會部署至正確的工作區,請務必在 ARM 範本中定義工作區,或在部署 ARM 範本時選取工作區。
為您的連接器準備 ARM 範本 JSON 檔案。 例如,請參閱下列 ARM 範本 JSON 檔案:
- Slack 解決方案中的資料連線器
- GitHub 解決方案中的資料連接器
在 Azure 入口網站中,搜尋 [部署自訂範本]。
在 [自訂部署] 頁面上,選取 [在編輯器中建置您自己的範本]>[載入檔案]。 瀏覽並選取您的本機 ARM 範本,然後儲存您的變更。
選取您的訂用帳戶和資源群組,然後輸入您要在其中部署自訂連接器的 Log Analytics 工作區。
選取 [檢閱 + 建立],將自訂連接器部署至 Microsoft Sentinel。
在 Microsoft Sentinel 中,移至 [資料連線器] 頁面,搜尋新的連接器。 將其設定為開始擷取資料。
如需詳細資訊,請參閱 Azure Resource Manager 文件中的部署本機範本。
設定您的資料連線器,來連線您的資料來源並開始將資料擷取至 Microsoft Sentinel。 您可以透過入口網站 (如同使用現成的資料連線器) 或透過 API 連線到資料來源。
使用 Azure 入口網站進行連線時,會自動傳送使用者資料。 透過 API 連線時,您必須在 API 呼叫中傳送相關的驗證參數。
在 Microsoft Sentinel 資料連線器頁面中,遵循您提供的指示來連線到資料連線器。
Microsoft Sentinel 中的資料連接器頁面由 CCP JSON 組態檔的
connectorUiConfig
元素中的 InstructionSteps 設定所控制。 如果您有使用者介面連線方面的問題,請確定您具有驗證類型的正確設定。在 Microsoft Sentinel 中,移至 [記錄] 頁面,並驗證您是否看到記錄從資料來源流入工作區。
如果您沒有看到資料流入 Microsoft Sentinel,請檢查資料來源文件和疑難排解資源、檢查設定詳細資料,以及檢查連線能力。 如需詳細資訊,請參閱監視資料連接器的健康情況。
中斷連接器的連線
如果您不再需要連接器的資料,請中斷連接器的連線以停止資料流程。
使用下列其中一種方法:
Azure 入口網站:在 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 中共用此解決方案。
如需更多資訊,請參閱
- 關於 Microsoft Sentinel 解決方案
- 資料連接器 ARM 範本參考 (部分機器翻譯)