Dieses Protokoll erfasst Ereignisse im Zusammenhang mit dem Hinzufügen, Löschen und sonstigen Ändern von Benutzerberechtigungen. Die Protokollierung von Sicherheitsereignissen ist standardmäßig deaktiviert und kann nur vom System Administrator direkt in einer FlexiCapture-Datenbank aktiviert werden. Weitere Informationen finden Sie unter Sicherheitsereignisprotokoll.
Nur Benutzer mit System Administrator-Berechtigungen können Sicherheitsereignisprotokolle aus dem System Monitor herunterladen. Ein System Administrator ist der Administrator eines Standardmandanten.
Verwenden Sie zum Herunterladen dieses Protokolls eine POST-Anfrage:
POST https://<server address>/FlexiCapture12/Monitoring/Tenant/GetSecurityEventsCSV
Alle Parameter sind erforderlich. Stellen Sie sicher, dass sie korrekt angegeben werden.
Die Suche in Oracle Database unterscheidet zwischen Groß- und Kleinschreibung. Berücksichtigen Sie dies, wenn Sie Oracle Database verwenden.
| Parameter | Typ | Beschreibung |
|---|
filter | string | Filterbedingungen für das Protokoll. Kombinieren Sie Bedingungen ausschließlich mit den Operatoren AND und OR, die im Parameter GeneralOperator festgelegt werden. Weitere Informationen finden Sie unter Erstellen des Filterparameters. |
columnsOrder | string | Kommagetrennte Liste der Spalten, die in den Bericht aufgenommen werden: ID, Date, EventType, Details, RemoteHost, Principal, TenantName, Writer, WriterTenantName. |
sortColumnindex | int | Index der Spalte, nach der die Datensätze im Protokoll sortiert werden. |
sortOrder | bool | Sortierreihenfolge: true sortiert in absteigender Reihenfolge, false in aufsteigender Reihenfolge. |
tenantId | int | Mandanten, die in das Protokoll aufgenommen werden: -1 für alle verfügbaren Mandanten, 0 für den Standardmandanten oder eine bestimmte Mandanten-ID (1 oder höher). |
Den Filterparameter erstellen
Der Parameter filter erwartet ein JSON-Objekt. Zum Beispiel:
{
"GeneralOperator": "AND",
"FilterItems": [
{
"PropertyKey": "Date",
"PropertyOperator": "BETWEEN",
"PropertyValues": [
"2021-08-28",
"00:00:00",
"2023-09-28",
"23:59:59"
]
}
]
}
Um die Werte für die Parameter PropertyKey und PropertyOperator zu ermitteln, erstellen Sie in der Administration and Monitoring Console einen Filter:
Öffnen Sie die Entwicklertools des Browsers
Klicken Sie im Browsermenü auf Weitere Tools → Entwicklertools und wechseln Sie zur Registerkarte Network.
Erstellen Sie einen Filter in der Konsole
Starten Sie die Administration and Monitoring Console, wechseln Sie zu System Monitor → Sicherheitsereignisprotokoll und klicken Sie auf die Schaltfläche
. Wenden Sie die Filterkriterien an
Geben Sie die Filterkriterien an und klicken Sie auf Apply.
Lesen Sie die Filterparameter aus
Klicken Sie auf die Anfrage GetFilteredSecurityEvent. Die Filterparameter werden auf der Registerkarte Payload aufgeführt.
Das folgende PowerShell-Skript zeigt, wie Sie diese API zum Herunterladen des Sicherheitsereignisprotokolls verwenden.
Ersetzen Sie die Parameter in diesem Skript durch Ihre Serveradresse und Ihre eigenen Zugangsdaten.
# Parameter
$server = "https://<server address>"
$user = "<user name>"
$password = "<password>"
#Pfad zum Ordner, in dem das Protokoll gespeichert wird
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Tenant_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# Protokollparameter
$requestBody = @"
filter={
"Name": "Filter",
"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
&tenantId=-1
"@
#------------------------------------------------------------------------------
$tenant = "" # Nur Standard-Mandant
$methodUri = "/Tenant/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
#Ordner automatisch erstellen (falls nicht vorhanden)
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', "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