Partilhar via


Referência de definições de conector de dados para o Codeless Connector Framework

Para criar um conector de dados com o Codeless Connector Framework (CCF), use este documento como um suplemento para os documentos de referência Microsoft Sentinel REST API for Data Connector Definitions . Especificamente, este documento de referência desenvolve a seguinte secção:

  • connectorUiConfig - define os elementos visuais e o texto exibido na página do conector de dados no Microsoft Sentinel.

Para obter mais informações, consulte Criar um conector sem código.

Definições de conector de dados - Criar ou atualizar

Consulte a operação Criar ou atualizar nos documentos da API REST para encontrar a versão estável ou de visualização mais recente da API. Apenas a update operação requer o etag valor.

Método PUT

https://management.azure.com/subscriptions/{{subscriptionId}}/resourceGroups/{{resourceGroupName}}/providers/Microsoft.OperationalInsights/workspaces/{{workspaceName}}/providers/Microsoft.SecurityInsights/dataConnectorDefinitions/{{dataConnectorDefinitionName}}?api-version={{apiVersion}}

Parâmetros de URI

Para obter mais informações sobre a versão mais recente da API, consulte Definições do conector de dados - Criar ou atualizar parâmetros de URI

Nome Descrição
dataConnectorDefinitionName A definição do conector de dados deve ser um nome exclusivo e é igual ao name parâmetro no corpo da solicitação.
resourceGroupName O nome do grupo de recursos, não diferencia maiúsculas de minúsculas.
ID de subscrição A ID da assinatura de destino.
nome do espaço de trabalho O nome do espaço de trabalho, não a ID.
Padrão Regex: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
API-versão A versão da API a utilizar para esta operação.

Corpo de solicitação

O corpo da solicitação para criar uma definição de conector de dados CCF com a API tem a seguinte estrutura:

{
    "kind": "Customizable",
    "properties": {
        "connectorUIConfig": {}
    }
}

dataConnectorDefinition tem as seguintes propriedades:

Nome Obrigatório Tipo Descrição
Amável Verdade Cordão Customizable para API polling data connector ou Static de outra forma
propriedades. conectorUiConfig Verdade JSON aninhado
conectorUiConfig
As propriedades de configuração da interface do usuário do conector de dados

Configurar a interface do usuário do conector

Esta seção descreve as opções de configuração disponíveis para personalizar a interface do usuário da página do conector de dados.

A captura de tela a seguir mostra uma página de conector de dados de exemplo, realçada com números que correspondem a áreas notáveis da interface do usuário.

Captura de tela de uma página de conector de dados de exemplo com seções rotuladas de 1 a 9.

Cada um dos seguintes elementos da connectorUiConfig seção necessários para configurar a interface do usuário corresponde à parte CustomizableConnectorUiConfig da API.

Campo Obrigatório Tipo Descrição Área notável da captura de tela #
título Verdade cadeia (de caracteres) Título exibido na página do conector de dados 1
ID cadeia (de caracteres) Define ID de conector personalizado para uso interno
Logótipo cadeia (de caracteres) Caminho para o arquivo de imagem no formato SVG. Se nenhum valor for configurado, um logotipo padrão será usado. 2
editora Verdade cadeia (de caracteres) O provedor do conector 3
descriçãoMarkdown Verdade string em markdown Uma descrição para o conector com a capacidade de adicionar linguagem de marcação para melhorá-lo. 4
exemplosDeConsultas Verdade JSON aninhado
exemplosDeConsultas
Consultas para o cliente entender como encontrar os dados no log de eventos.
graphQueries Verdade JSON aninhado
graphQueries
Consultas que apresentam ingestão de dados nas últimas duas semanas.

Forneça uma consulta para todos os tipos de dados do conector de dados ou uma consulta diferente para cada tipo de dados.
5
graphQueriesTableName Define o nome da tabela na qual o conector insere dados. Esse nome pode ser usado em outras consultas, especificando {{graphQueriesTableName}} espaço reservado em graphQueries e lastDataReceivedQuery valores.
Tipos de dados Verdade JSON aninhado
Tipos de dados
Uma lista de todos os tipos de dados para seu conector e uma consulta para buscar a hora do último evento para cada tipo de dados. 6
Critérios de Conectividade Verdade JSON aninhado
Critérios de Conectividade
Um objeto que define como verificar se o conector está conectado. 7
disponibilidade JSON aninhado
disponibilidade
Um objeto que define o status de disponibilidade do conector.
Permissões Verdade JSON aninhado
Permissões
As informações exibidas na seção Pré-requisitos da interface do usuário, que lista as permissões necessárias para habilitar ou desabilitar o conector. 8
instruçãoPassos Verdade JSON aninhado
Instruções
Uma matriz de partes do widget que explicam como instalar o conector e controles acionáveis exibidos na guia Instruções . 9
isConnectivityCriteriasMatchSome booleano Um booleano que indica se deve usar 'OR'(SOME) ou 'AND' entre os itens ConnectivityCriteria.

conectividadeCritérios

Campo Obrigatório Tipo Descrição
Tipo Verdade Cordão Uma das duas opções a seguir: HasDataConnectors – esse valor é melhor para conectores de dados de sondagem de API, como o CCF. O conector é considerado conectado com pelo menos uma conexão ativa.

isConnectedQuery – este valor é melhor para outros tipos de conectores de dados. O conector é considerado conectado quando a consulta fornecida retorna dados.
Valor True quando o tipo é isConnectedQuery Cordão Uma consulta para determinar se os dados são recebidos dentro de um determinado período de tempo. Por exemplo: CommonSecurityLog | where DeviceVendor == \"Vectra Networks\"\n| where DeviceProduct == \"X Series\"\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(7d)"

Tipos de dados

Valor do array Tipo Descrição
Nome Cordão Uma descrição significativa para olastDataReceivedQuery, incluindo suporte para a graphQueriesTableName variável.

Exemplo: {{graphQueriesTableName}}
lastDataReceivedQuery Cordão Uma consulta KQL que retorna uma linha e indica a última vez que os dados foram recebidos, ou nenhum dado se não houver resultados.

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

graphQueries

Define uma consulta que apresenta a ingestão de dados nas últimas duas semanas.

Forneça uma consulta para todos os tipos de dados do conector de dados ou uma consulta diferente para cada tipo de dados.

Valor do array Tipo Descrição
nomeDaMétrica Cordão Um nome significativo para o seu gráfico.

Exemplo: Total data received
legenda Cordão A cadeia de caracteres que aparece na legenda à direita do gráfico, incluindo uma referência de variável.

Exemplo: {{graphQueriesTableName}}
baseQuery Cordão A consulta que filtra eventos relevantes, incluindo uma referência variável.

Exemplo: TableName_CL | where ProviderName == "myprovider" ou {{graphQueriesTableName}}

disponibilidade

Campo Obrigatório Tipo Descrição
Situação Número inteiro O status de disponibilidade do conector.
Disponível = 1
Sinalizador de recurso = 2
Em breve = 3
Interno = 4
isPré-visualização booleano Um booleano que indica se o conector está no modo de visualização.

permissões

Valor da matriz Tipo Descrição
aduaneira Cordão Descreve as permissões personalizadas necessárias para sua conexão de dados, na seguinte sintaxe:
{
"name":string,
"description":string
}

Exemplo: O valor aduaneiro é exibido na seção de Pré-requisitos do Microsoft Sentinel com um ícone informativo azul. No exemplo do GitHub, esse valor está correlacionado à linha GitHub API personal token Key: You need access to GitHub personal token...
licenças ENUM Define as licenças necessárias, como um dos seguintes valores: OfficeIRM,OfficeATP, Office365, AadP1P2, Mcas, Aatp, Mdatp, Mtp, IoT

Exemplo: As licenças valor são exibidas no Microsoft Sentinel como: Licença: Necessária Azure AD Premium P2
fornecedorDeRecursos fornecedorDeRecursos Descreve todos os pré-requisitos para seu recurso do Azure.

Exemplo: O valor resourceProvider é exibido na seção Pré-requisitos do Microsoft Sentinel como:
Espaço de trabalho: é necessária permissão de leitura e gravação.
Chaves: são necessárias permissões de leitura para chaves partilhadas no espaço de trabalho.
inquilino matriz de valores ENUM
Exemplo:

"tenant": [
"GlobalADmin",
"SecurityAdmin"
]
Define as permissões necessárias, como um ou mais dos seguintes valores: "GlobalAdmin", "SecurityAdmin", "SecurityReader", "InformationProtection"

Exemplo: exibe o valor do locatário no Microsoft Sentinel como: Permissões de locatário: requer Global Administrator ou Security Administrator no locatário do espaço de trabalho

Importante

A Microsoft recomenda que utilize funções com o menor número de permissões. Isso ajuda a melhorar a segurança da sua organização. Administrador Global é uma função altamente privilegiada que deve ser limitada a cenários de emergência quando você não pode usar uma função existente.

fornecedor de recursos

valor da submatriz Tipo Descrição
fornecedor ENUM Descreve o provedor de recursos, com um dos seguintes valores:
- Microsoft.OperationalInsights/workspaces
- Microsoft.OperationalInsights/solutions
- Microsoft.OperationalInsights/workspaces/datasources
- microsoft.aadiam/diagnosticSettings
- Microsoft.OperationalInsights/workspaces/sharedKeys
- Microsoft.Authorization/policyAssignments
providerDisplayName Cordão Um item de lista em Pré-requisitos que exibe uma marca de seleção vermelha "x" ou verde quando as permissões necessárias são validadas na página do conector. Exemplo, "Workspace"
textoDeExibiçãoDePermissões Cordão Exibir texto para permissões de leitura , gravação , ou leitura e gravação que devem corresponder aos valores configurados em requiredPermissions
Permissões obrigatórias {
"action":Booleano,
"delete":Booleano,
"read":Booleano,
"write":Booleano
}
Descreve as permissões mínimas necessárias para o conector.
âmbito ENUM Descreve o escopo do conector de dados, como um dos seguintes valores: "Subscription", "ResourceGroup", "Workspace"

exemploConsultas

Valor do array Tipo Descrição
descrição Cordão Uma descrição detalhada e significativa para a consulta exemplificativa.

Exemplo: Top 10 vulnerabilities detected
consulta Cordão Consulta de exemplo usada para buscar os dados do tipo de dado.

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

Para definir um link embutido usando markdown, use o exemplo a seguir.

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

Para definir um link como um modelo ARM, use o seguinte exemplo como guia:

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

instruçãoPassos

Esta seção fornece parâmetros que definem o conjunto de instruções que aparecem na página do conector de dados no Microsoft Sentinel e tem a seguinte estrutura:

"instructionSteps": [
    {
        "title": "",
        "description": "",
        "instructions": [
        {
            "type": "",
            "parameters": {}
        }
        ],
        "innerSteps": {}
    }
]
Propriedade Array Obrigatório Tipo Descrição
título Cordão Define um título para as suas instruções.
descrição Cordão Define uma descrição significativa para as suas instruções.
innerSteps Matriz Define uma matriz de etapas de instrução internas.
Instruções Verdade Matriz de instruções Define uma matriz de instruções de um tipo de parâmetro específico.

Instruções

Exibe um grupo de instruções, com vários parâmetros e a capacidade de aninhar mais instructionSteps em grupos. Os parâmetros aqui definidos correspondem

Tipo Propriedade Array Descrição
OAuthForm OAuthForm Conecte-se com OAuth
Caixa de texto Caixa de texto Isto emparelha com ConnectionToggleButton. Existem 4 tipos disponíveis:
  • password
  • text
  • number
  • email
  • ConnectionToggleButton ConnectionToggleButton Acione a implantação do DCR com base nas informações de conexão fornecidas por meio de parâmetros de espaço reservado. Os seguintes parâmetros são suportados:
  • name : obrigatório
  • disabled
  • isPrimary
  • connectLabel
  • disconnectLabel
  • EtiquetaCopiável EtiquetaCopiável Mostra um campo de texto com um botão de cópia no final. Quando o botão é selecionado, o valor do campo é copiado.
    Menu suspenso Menu suspenso Exibe uma lista suspensa de opções para o usuário selecionar.
    Markdown Markdown Exibe uma seção de texto formatada com Markdown.
    DataConnectorsGrid DataConnectorsGrid Exibe uma grade de conectores de dados.
    Painel de Contexto Painel de Contexto Exibe um painel de informações contextuais.
    MensagemInformativa MensagemInformativa Define uma mensagem informativa em linha.
    GrupoDePassosDeInstrução GrupoDePassosDeInstrução Exibe um grupo de instruções, opcionalmente expandidas ou dobráveis, em uma seção de instruções separada.
    InstallAgent InstallAgent Exibe um link para outras partes do Azure para cumprir vários requisitos de instalação.
    OAuthForm

    Este componente requer que o OAuth2 tipo esteja presente na auth propriedade do modelo de conector de dados.

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

    Aqui estão alguns exemplos do Textbox tipo. Estes exemplos correspondem aos parâmetros usados na seção de exemplo auth em Referência de conectores de dados para o Codeless Connector Framework. Para cada um dos 4 tipos, cada um tem label, placeholdere 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"
      }          
    }
    ]
    
    RótuloCopiável

    Exemplo:

    Captura de ecrã de um botão para copiar valor num campo.

    Código de exemplo:

    {
        "parameters": {
            "fillWith": [
                "WorkspaceId",
                "PrimaryKey"
                ],
            "label": "Here are some values you'll need to proceed.",
            "value": "Workspace is {0} and PrimaryKey is {1}"
        },
        "type": "CopyableLabel"
    }
    
    Valor do array Obrigatório Tipo Descrição
    preenchimento com ENUM Matriz de variáveis de ambiente usadas para preencher um espaço reservado. Separe vários marcadores de posição com vírgulas. Por exemplo: {0},{1}

    Valores suportados: workspaceId, workspaceName, primaryKey, MicrosoftAwsAccount, subscriptionId
    rótulo Verdade Cordão Define o texto para o rótulo acima de uma caixa de texto.
    valor Verdade Cordão Define o valor a ser apresentado na caixa de texto, suporta espaços reservados.
    linhas Linhas Define as linhas na área de interface do usuário. Por padrão, defina como 1.
    wideLabel booleano Determina um rótulo largo para cadeias de caracteres longas. Por padrão, defina como false.
    {
      "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"
    }
    
    Campo Obrigatório Tipo Descrição
    rótulo Verdade Cordão Define o texto para o rótulo acima da lista suspensa.
    Nome Verdade Cordão Define o nome exclusivo para a lista suspensa. Isso é usado na configuração de sondagem.
    Opções Verdade Matriz Define a lista de opções para a lista suspensa.
    espaço reservado Cordão Define o texto do espaço reservado para a lista suspensa.
    isMultiSelect [en] booleano Determina se várias opções podem ser selecionadas. Por padrão, defina como false.
    Necessário booleano Se true, é necessário preencher a lista suspensa.
    padrãoAllSelected booleano Se true, todas as opções são selecionadas por padrão.
    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"
        ]
      }
    }
    
    
    Campo Obrigatório Tipo Descrição
    mapeamento Verdade Matriz Define o mapeamento de colunas na grade.
    menuItens Matriz Define os itens de menu para a grade.
    Painel de Contexto
    {
      "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
                  }
                }
              }
            ]
          }
        ]
      }
    }
    
    Campo Obrigatório Tipo Descrição
    título Verdade Cordão O título do painel de contexto.
    subtítulo Verdade Cordão O subtítulo do painel de contexto.
    contextPaneType Verdade Cordão O tipo do painel de contexto.
    instruçãoPassos Verdade Matriz
    instruçãoPassos
    As etapas de instrução para o painel de contexto.
    rótulo Cordão O rótulo do painel de contexto.
    isPrimário booleano Indica se este é o painel de contexto primário.
    Mensagem de Informação

    Eis um exemplo de uma mensagem informativa embutida:

    Captura de ecrã de uma mensagem informativa embutida.

    Por outro lado, a imagem a seguir mostra uma mensagem informativa que não está embutida:

    Captura de ecrã de uma mensagem informativa que não está incorporada.

    Valor do array Tipo Descrição
    texto Cordão Defina o texto a ser exibido na mensagem.
    visível booleano Determina se a mensagem é exibida.
    em linha booleano Determina como a mensagem informativa é exibida.

    - true: (Recomendado) Mostra a mensagem informativa incorporada nas instruções.
    - false: Adiciona um fundo azul.
    Grupo de Passos de Instrução

    Aqui está um exemplo de um grupo de instruções expansível:

    Captura de tela de um grupo de instruções extra expansível.

    Valor do array Obrigatório Tipo Descrição
    título Verdade Cordão Define o título da etapa de instrução.
    descrição Cordão Texto descritivo opcional.
    canCollapseAllSections booleano Determina se a seção é um acordeão dobrável ou não.
    noFxPadding booleano Se true, reduz o espaçamento de altura para economizar espaço.
    expandido booleano Se true, mostra como expandido por predefinição.

    Para obter um exemplo detalhado, consulte a configuração JSON para o conector Windows DNS.

    InstallAgent

    Alguns tipos de InstallAgent aparecem como um botão, outros aparecem como um link. Aqui estão exemplos de ambos:

    Captura de tela de um link adicionado como um botão.

    Captura de tela de um link adicionado como texto embutido.

    Valores de matriz Obrigatório Tipo Descrição
    tipo de ligação Verdade ENUM Determina o tipo de link, como um dos seguintes valores:

    InstallAgentOnWindowsVirtualMachine
    InstallAgentOnWindowsNonAzure
    InstallAgentOnLinuxVirtualMachine
    InstallAgentOnLinuxNonAzure
    OpenSyslogSettings
    OpenCustomLogsSettings
    OpenWaf
    OpenAzureFirewall OpenMicrosoftAzureMonitoring
    OpenFrontDoors
    OpenCdnProfile
    AutomaticDeploymentCEF
    OpenAzureInformationProtection
    OpenAzureActivityLog
    OpenIotPricingModel
    OpenPolicyAssignment
    OpenAllAssignmentsBlade
    OpenCreateDataCollectionRule
    policyDefiniçãoGuid True ao usar OpenPolicyAssignment linkType. Cordão Para conectores baseados em política, define o GUID da definição de política incorporada.
    modo de atribuição ENUM Para conectores baseados em políticas, define o modo de atribuição como um dos seguintes valores: Initiative, Policy
    TipoDeRegraDeColeçãoDeDados ENUM Para conectores baseados em DCR, define o tipo de regra de coleta de dados como SecurityEvent, ou ForwardEvent.

    Exemplo de definição de conector de dados

    O exemplo a seguir reúne alguns dos componentes definidos neste artigo como um formato de corpo JSON para usar com a API de definição de conector de dados Criar ou Atualizar.

    Para obter mais exemplos da revisão connectorUiConfig de dados CCF. Mesmo conectores que usam o CCF herdado têm exemplos válidos da criação da interface do usuário.

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