Geolocalização e manipulação de endereço IP

Este artigo explica como a pesquisa de geolocalização e o tratamento de endereços IP funcionam no Application Insights.

Comportamento padrão

Por padrão, os endereços IP são coletados temporariamente, mas não são armazenados.

Quando a telemetria é enviada ao Azure, o endereço IP é usado para fazer uma pesquisa de geolocalização. O resultado é usado para preencher os campos client_City, client_StateOrProvince e client_CountryOrRegion. Em seguida, o endereço é descartado e 0.0.0.0 gravado no campo client_IP.

Os tipos de telemetria são:

  • Telemetria do navegador: o Application Insights coleta o endereço IP do remetente. O ponto de extremidade de ingestão calcula o endereço IP.
  • Telemetria do servidor: o módulo de telemetria do Application Insights coleta temporariamente o endereço IP do cliente quando o cabeçalho X-Forwarded-For não está definido. Quando a lista de endereço IP de entrada tiver mais de um item, o último endereço IP será usado para preencher os campos de geolocalização.

Esse comportamento é por design para ajudar a evitar a coleta desnecessária de dados pessoais e informações de localização de endereço IP.

Quando os endereços IP não são coletados, a cidade e outros atributos de geolocalização também não são coletados.

Armazenamento de dados de endereço IP

Aviso

O padrão e nossa recomendação é não coletar endereços IP. Se você substituir esse comportamento, verifique se a coleção não interrompe nenhum requisito de conformidade ou regulamentos locais.

Para saber mais sobre o tratamento de dados pessoais, consulte Diretrizes para dados pessoais.

Para habilitar a coleta e o armazenamento de IP, a DisableIpMasking Propriedade do componente Application insights deve ser definida como true.

As opções para definir essa propriedade incluem:

Modelo de ARM

{
       "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/components/<resource-name>",
       "name": "<resource-name>",
       "type": "microsoft.insights/components",
       "location": "westcentralus",
       "tags": {
              
       },
       "kind": "web",
       "properties": {
              "Application_Type": "web",
              "Flow_Type": "Redfield",
              "Request_Source": "IbizaAIExtension",
              // ...
              "DisableIpMasking": true
       }
}

Portal

Se você precisa modificar o comportamento de um só único recurso de Application Insights, use o portal do Azure.

  1. Acesse o recurso Application Insights e, em seguida, selecione Automação>Exportar modelo.

  2. Selecione Implantar.

    Captura de tela que mostra o botão Implantar.

  3. Selecione Editar modelo.

    Captura de tela que mostra o botão Editar, juntamente com um aviso sobre o grupo de recursos.

    Observação

    Se você enfrentar o erro mostrado na captura de tela anterior, poderá resolvê-lo. Ele informa: "O grupo de recursos está em um local sem suporte por um ou mais recursos no modelo. Escolha um grupo de recursos diferente." Selecione temporariamente um grupo de recursos diferente na lista suspensa e, em seguida, selecione mais uma vez o grupo de recursos original.

  4. No modelo JSON, localize properties dentro de resources. Adicione uma vírgula ao último campo JSON e, em seguida, adicione a seguinte nova linha: "DisableIpMasking": true. Selecione Salvar.

    Captura de tela que mostra a adição de uma vírgula e uma nova linha após a propriedade da origem da solicitação.

  5. Selecione Examinar + criar>Criar.

    Observação

    Se você vir "Sua implantação falhou", verifique os detalhes da implantação para aquela com o tipo microsoft.insights/components e verifique o status. Se essa for bem-sucedida, as alterações feitas em DisableIpMasking foram implantadas.

  6. Depois que a implantação for concluída, novos dados de telemetria serão registrados.

    Se você selecionar e editar o modelo novamente, somente o modelo padrão sem a propriedade recém-adicionada. Se você não estiver vendo dados de endereço IP e quiser confirmar que "DisableIpMasking": true está definido, execute os seguintes comandos do PowerShell:

    # Replace `Fabrikam-dev` with the appropriate resource and resource group name.
    # If you aren't using Azure Cloud Shell, you need to connect to your Azure account
    # Connect-AzAccount 
    $AppInsights = Get-AzResource -Name 'Fabrikam-dev' -ResourceType 'microsoft.insights/components' -ResourceGroupName 'Fabrikam-dev'
    $AppInsights.Properties
    

    Uma lista de propriedades é retornada como resultado. Uma das propriedades deve ler DisableIpMasking: true. Se você executar os comandos do PowerShell antes de implantar a nova propriedade com o Azure Resource Manager, a propriedade não existirá.

API REST

O conteúdo da API REST a seguir faz as mesmas modificações:

PATCH https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/microsoft.insights/components/<resource-name>?api-version=2018-05-01-preview HTTP/1.1
Host: management.azure.com
Authorization: AUTH_TOKEN
Content-Type: application/json
Content-Length: 54

{
       "location": "<resource location>",
       "kind": "web",
       "properties": {
              "Application_Type": "web",
              "DisableIpMasking": true
       }
}

PowerShell

O cmdlet Update-AzApplicationInsights do PowerShell pode desabilitar o mascaramento de IP com o parâmetro DisableIPMasking.

Update-AzApplicationInsights -Name "aiName" -ResourceGroupName "rgName" -DisableIPMasking:$true

Para obter mais informações sobre o cmdlet Update-AzApplicationInsights, consulte Update-AzApplicationInsights

Próximas etapas