Opa,
Neste artigo mostrarei como importar automaticamente listas de atributos do AD em CSV para preenchimento do campo de atributos customizados do Symantec Data-Loss Prevention no Windows sem utilizar o plugin de LDAP. Não entrarei na parte de configuração do plugin do CsvLookup, apenas na importação automática do arquivo CSV.
As vezes, por questão de facilidade de configuração ou desempenho é preferível utilizar o plugin do CsvLookup, a configuração deste é simples e a único ponto negativo é que depende de um arquivo delimitado (CSV) com as informações que serão importadas para a ferramenta. Esta necessidade acaba gerando impacto quando temos mudança constante no quadro de funcionário e devemos atualizar o arquivo diversas vezes necessitando de intervenção manual.
Existem várias maneiras para automatizar este processo, segue abaixo uma das formas utilizadas.
Pré-requerimento:
- Sistema Operacional Windows 2003/2008
- AdFind (http://www.joeware.net/freetools/tools/adfind/index.htm)
Fase 1: Configurando a QUERY de atributos do Active Directory
Todo processo é executado diretamente no servidor ENFORCER.
- Verificar os atributos que serão importados do AD (http://www.kouti.com/tables/userattributes.htm)
- Criar um arquivo BAT com o comando de QUERY, exemplo: "adfind.exe -h SERVIDOR_DE_DOMINIO -f "(objectclass=user)" ATRIBUTOS -nodn -csv > ARQUIVO DE SAIDA (csv). (adfind.exe -h ypioca -f "(objectclass=user)" sAMAccountName mail displayname telephonenumber department title -nodn -csv > senders.csv)
- Verificar se o arquivo de saída foi gerado com sucesso.
Fase 2: Utilizando script vbs para limpeza das ASPAS;
O arquivo importado pelo programa ADFIND contém aspas, estas aspas não são compreendidas pelo Symantec DLP e resulta na falha de carregamento do plugin CsvLookup. Para resolver o problema foi necessário criar um script para varrer o arquivo CSV e remover todas as aspas do documento.
Const ForReading = 1
Const ForWriting = 2
Set objFSo = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Vontu\Protect\plugins\senders.csv", ForReading)
strContents = objFile.ReadAll
objFile.Close
strFindText = Chr(34)
strContents = Replace(strContents, strFindText, "")
Set objFile = objFSO.OpenTextFile("C:\Vontu\Protect\plugins\senders.csv", ForWriting)
objFile.WriteLine strContents
objFile.Close
Este script deve ser salvo (extensão VBS) na mesma pasta onde está o arquivo bat de QUERY, preferencialmente na pasta do próprio Vontu, facilitando a configuração do CsvLookup.
Fase 3: Utilizando script vbs para limpeza das campos incompletos.
O carregamento do arquivo CSV pelo plugin CsvLookup irá falhar caso mais de 10% do arquivo esteja incompleto, ou seja, todos os campos que serão importados do AD para o arquivo devem estar preenchidos com qualquer informação. Como em muitos casos não é o que acontece, criamos um script para EXCLUIR todas as linhas que possuam campos incompletos.
Const ForReading = 1
Const ForWriting = 2
WScript.sleep 60000
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Vontu\Protect\plugins\senders.csv", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
If InStr(strLine, ",,") = 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End if
Loop
objFile.close
Set objFile = objFSO.OpenTextFile("C:\Vontu\Protect\plugins\senders.csv", ForWriting)
objFile.Write strNewContents
objFile.close
Como o arquivo CSV está separado por vírgulas, este script irá remover qualquer linha que possuam vírgulas seqüenciais o que indica um campo vazio. Este script é opcional e recomendado aqueles que possuem um AD que ainda está em processo de atualização de informações/atributos.
Fase 4: Adicionando os scripts para execução na Query.
Neste etapa basta acrescentar a execução dos scripts no arquivo BAT gerado para QUERY no formato:
"cscript script1.vbs"
"cscript script2.vbs"
Crie uma tarefa agendada do Windows para execução semanal/mensal/diaria do arquivo BAT.
Observação: No DLP é necessário clicar em "Reload Custom Attributes" toda vez que o arquivo for atualizado para que o novo CSV seja lançado na memória do Enforcer.