> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Journal des événements de sécurité de Processing Monitor

> Téléchargez, à l’aide d’un script, le journal des événements de sécurité de Processing Monitor dans ABBYY FlexiCapture concernant les modifications de permissions au format CSV via la requête POST GetSecurityEventsCSV.

Ce journal contient des enregistrements sur les événements liés à l’ajout, à la suppression et à d’autres modifications des permissions des utilisateurs. La journalisation des événements de sécurité est désactivée par défaut. Cette fonctionnalité ne peut être activée que par le System Administrator directement dans une base de données FlexiCapture. Pour obtenir des informations détaillées sur les différents événements enregistrés dans le journal et sur la manière de l’activer, consultez l’article [Journal des événements de sécurité](/fr/flexi-capture/web-stations/monitoring-console/mmc-security-event-log) dans l’aide de l’Administration and Monitoring Console.

<Warning>
  Seuls les utilisateurs disposant du rôle d’administrateur du tenant (ou du rôle de System Administrator dans le cas du tenant par défaut) peuvent télécharger les journaux des événements de sécurité depuis Processing Monitor.
</Warning>

Pour télécharger ce journal, utilisez une requête POST.

```
POST https://<server address>/FlexiCapture12/Monitoring/Project/GetSecurityEventsCSV
```

<div id="request-parameters">
  ## Paramètres de la requête
</div>

1. Tous les paramètres sont obligatoires. Assurez-vous qu’ils sont correctement renseignés.
2. La recherche dans Oracle Database est sensible à la casse. Veuillez en tenir compte si vous utilisez Oracle Database.

<table width="100%"><tbody><tr><td><p><strong>Nom</strong></p></td><td><p><strong>Type</strong></p></td><td><p><strong>Description</strong></p></td></tr><tr><td><p>filter</p></td><td><p>string</p></td><td><p>Définit les paramètres de filtre. Seuls les logs satisfaisant aux conditions du filtre seront enregistrés. Seuls les opérateurs AND et OR peuvent être utilisés pour combiner les conditions. Les opérateurs sont spécifiés dans le paramètre GeneralOperator. Exemples de paramètres de filtre :</p><pre><code>filter=\{
"GeneralOperator": "AND",
"FilterItems": \[
\{
"PropertyKey": "Date",
"PropertyOperator": "BETWEEN",
"PropertyValues": \[
"2021-08-28",
"00:00:00",
"2023-09-28",
"23:59:59"
]
}
]
}</code></pre><p>Vous pouvez trouver les valeurs nécessaires pour les paramètres PropertyKey et PropertyOperator en créant le filtre souhaité dans l'Administration and Monitoring Console. Pour ce faire :</p><ol><li>Dans le menu du navigateur, cliquez sur <strong>Plus d'outils -></strong> <strong>Developer Tools</strong> et accédez à l'onglet <strong>Network</strong>.</li><li>Lancez l'Administration and Monitoring Console, accédez à <strong>Processing Monitor → Security event log</strong>, puis cliquez sur le bouton <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Add_filter.png?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=7fca1d511f8470021946ae439989fb68" width="22" height="22" data-path="images/flexi-capture/Add_filter.png" />.</li><li>Indiquez les critères de filtrage et cliquez sur <strong>Apply</strong>.</li><li>Cliquez sur la requête <strong>GetFilteredSecurityEvent</strong>. Les paramètres de filtrage s'affichent dans l'onglet <strong>Payload</strong>.</li></ol></td></tr><tr><td><p>columnsOrder</p></td><td><p>string</p></td><td><p>Liste des colonnes à ajouter au rapport. Les valeurs possibles sont :</p><ul><li>ID</li><li>Date</li><li>EventType</li><li>Details</li><li>RemoteHost</li><li>Principal</li><li>TenantName</li><li>Writer</li><li>WriterTenantName</li></ul></td></tr><tr><td><p>sortColumnindex</p></td><td><p>int</p></td><td><p>Spécifie la colonne utilisée pour trier les enregistrements dans le log.</p></td></tr><tr><td><p>sortOrder</p></td><td><p>bool</p></td><td><p>Spécifie l'ordre de tri des enregistrements :</p><ul><li>true trie les enregistrements par ordre décroissant,</li><li>false trie les enregistrements par ordre croissant.</li></ul></td></tr></tbody></table>

Un exemple d'utilisation de cette API est disponible dans le script. Téléchargez le script [ici](SecurityEventLogExample2.ps1) ou utilisez le code du script fourni ci-dessous.

<Note>
  Les paramètres de ce script doivent être remplacés par l’adresse de votre serveur, le nom de votre tenant et vos identifiants.
</Note>

```
# parameters
```

```
$server = "https://<server address>"
```

```
$tenant = "<tenant name>"
```

```
$user = "<user name>"
```

```
$password = "<password>"
```

```
#chemin vers le dossier où le log sera enregistré
```

```
$folder = "C:\Temp\Logs\Stage"
```

```
$reportFileName = "Project_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
```

```
# paramètres de log
```

```
$requestBody = @"
```

```
filter={
```

```
"Name": "Filter By Date",
```

```
"GeneralOperator": "AND",
```

```
"FilterItems": [
```

```
{
```

```
"PropertyKey": "Date",
```

```
"PropertyOperator": "BETWEEN",
```

```
"PropertyValues": [
```

```
"2021-08-28",
```

```
"00:00:00",
```

```
"2023-09-28",
```

```
"23:59:59"
```

```
]
```

```
}
```

```
]
```

```
}
```

```
&columnsOrder=Id,Date,EventType,Details,RemoteHost,Principal,TenantName,Writer,WriterTenantName,
```

```
&sortColumnindex=1
```

```
&sortOrder=true
```

```
"@
```

```
#------------------------------------------------------------------------------
```

```
$methodUri = "/Project/GetSecurityEventsCSV"
```

```
$authServer = $server
```

```
$ServerSitePath = "/FlexiCapture12/Monitoring"
```

```
function Write-Line($str, $color = "White")
```

```
{
```

```
Write-Host $str -ForegroundColor $color
```

```
}
```

```
function Join-Uri
```

```
{
```

```
param([Parameter(Mandatory, ValueFromPipeline)] [string]$parent, [string]$child)
```

```
if ($parent -eq "") {return $child;}
```

```
if ($child -eq ""){return $parent}
```

```
if ($parent.endswith("/") -or $parent.endswith("\\")) {$parent = $parent.substring(0,$parent.Length-1)}
```

```
if ($child.startswith("/") -or $child.startswith("\\")) {$child = $child.substring(1,$child.Length-1)}
```

```
return "$parent/$child"
```

```
}
```

```
function Get-AuthTicket($server, $user, $password, $tenant)
```

```
{
```

```
$tenantSuffix=""
```

```
if ($tenant -ne ''){ $tenantSuffix = "?tenant=$tenant"}
```

```
$URL = Join-Uri $authServer "/FlexiCapture12/Server/FCAuth/API/Soap$tenantSuffix"
```

```
$SOAPRequest = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><FindUser xmlns="urn:http://www.abbyy.com/FlexiCapture"><userLogin>user</userLogin></FindUser></soap:Body></soap:Envelope>'
```

```
$Headers = @{
```

```
'SOAPAction' = '"#FindUser"'
```

```
'Content-Type' = 'text/xml; charset=utf-8'
```

```
'Authorization' = "Basic $([System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($user):$($password)")))"}
```

```
try
```

```
{
```

```
$response1 = Invoke-WebRequest -Uri $URL -Headers $Headers -Body $SOAPRequest -Method 'POST'
```

```
return $response1.Headers['AuthTicket']
```

```
}
```

```
catch{
```

```
Write-Line -str "Couldn't get 'AuthTicket': $_" -color "Red"
```

```
return ""
```

```
}
```

```
}
```

```
function Download-CSVReport($server, $tenant, $authTicket, $methodUri, $requestBody, $folder, $reportFileName)
```

```
{
```

```
$reportFullFilePath = Join-Path $folder $reportFileName
```

```
#créer le dossier silencieusement (s'il n'existe pas)
```

```
New-Item -ItemType Directory -Force -Path $folder | Out-Null
```

```
if ($authTicket -eq "" -or $authTicket -eq $null)
```

```
{
```

```
Write-Line -str "Couldn't get 'CSV-Report'" -color "Red"
```

```
}
```

```
else
```

```
{
```

```
$header = @{ "Accept" = "*/*"}
```

```
$session = [Microsoft.PowerShell.Commands.WebRequestSession]::new()
```

```
$session.Cookies.Add($server, [System.NET.Cookie]::new("FlexiCaptureTmpPrn$tenant", "Ticket=$authTicket"))
```

```
$tenantInUrl=""
```

```
if ($tenant -ne '') { $tenantInUrl = "/$tenant"}
```

```
$uri = Join-Uri $server $ServerSitePath | Join-Uri -child $tenantInUrl | Join-Uri -child $methodUri
```

```
try{
```

```
$response = Invoke-WebRequest -Uri $uri -Method 'POST' -Headers $header -WebSession $session -Body $requestBody -OutFile $reportFullFilePath -MaximumRedirection 0 -ErrorAction Ignore -PassThru
```

```
if ($response.StatusCode -lt 300)
```

```
{
```

```
Write-Line "CSV-Report done: $reportFullFilePath" "Green"
```

```
}
```

```
else
```

```
{
```

```
Write-Line -str "HttpStatus $($response.StatusCode) in getting CSV-Report." -color "Red"
```

```
}
```

```
}
```

```
catch{
```

```
Write-Line -str "Couldn't get CSV-Report: $_" -color "Red"
```

```
return ""
```

```
}
```

```
}
```

```
}
```

```
$authTicket = Get-AuthTicket -server $server -user $user -password $password -tenant $tenant
```

```
Download-CSVReport -server $server -tenant $tenant -authTicket $authTicket -methodUri $methodUri -requestBody $requestBody -folder $folder -reportFileName $reportFileName
```
