Zum Hauptinhalt springen
Dieses Protokoll enthält Einträge zu Ereignissen im Zusammenhang mit dem Hinzufügen, Löschen und anderen an Benutzerberechtigungen vorgenommenen Änderungen. Die Protokollierung von Sicherheitsereignissen ist standardmäßig deaktiviert. Diese Funktion kann nur vom System Administrator direkt in einer FlexiCapture-Datenbank aktiviert werden. Ausführliche Informationen zu den verschiedenen im Protokoll erfassten Ereignissen und zum Aktivieren der Protokollierung finden Sie im Artikel Sicherheitsereignisprotokoll in der Hilfe der Administration and Monitoring Console.
Nur Benutzer mit der Rolle Mandantenadministrator (oder der System Administrator beim Standardmandanten) können Sicherheitsereignisprotokolle aus dem Processing Monitor herunterladen.
Verwenden Sie zum Herunterladen dieses Protokolls eine POST-Anfrage.
POST https://<server address>/FlexiCapture12/Monitoring/Project/GetSecurityEventsCSV

Anfrageparameter

  1. Alle Parameter sind erforderlich. Stellen Sie sicher, dass sie korrekt angegeben werden.
  2. Bei der Suche in Oracle Database wird zwischen Groß- und Kleinschreibung unterschieden. Bitte beachten Sie dies, wenn Sie Oracle Database verwenden.

Name

Typ

Beschreibung

filter

string

Legt die Filterparameter fest. Es werden nur Protokolleinträge aufgezeichnet, die die Filterbedingungen erfüllen. Zum Kombinieren der Bedingungen können nur die Operatoren AND und OR verwendet werden. Die Operatoren werden im Parameter GeneralOperator angegeben. Beispielhafte Filterparameter:

filter={
“GeneralOperator”: “AND”,
“FilterItems”: [
{
“PropertyKey”: “Date”,
“PropertyOperator”: “BETWEEN”,
“PropertyValues”: [
“2021-08-28”,
“00:00:00”,
“2023-09-28”,
“23:59:59”
]
}
]
}

Die erforderlichen Werte für die Parameter PropertyKey und PropertyOperator können Sie ermitteln, indem Sie den gewünschten Filter in der Administration and Monitoring Console erstellen. Gehen Sie dazu wie folgt vor:

  1. Klicken Sie im Browsermenü auf Weitere Tools -> Developer Tools und wechseln Sie zum Tab Network.
  2. Starten Sie die Administration and Monitoring Console, navigieren Sie zu Processing Monitor → Security event log und klicken Sie auf die Schaltfläche .
  3. Geben Sie die Filterkriterien an und klicken Sie auf Apply.
  4. Klicken Sie auf die Anforderung GetFilteredSecurityEvent. Die Filterparameter werden auf dem Tab Payload aufgelistet.

columnsOrder

string

Liste der Spalten, die dem Bericht hinzugefügt werden sollen. Mögliche Werte:

  • ID
  • Date
  • EventType
  • Details
  • RemoteHost
  • Principal
  • TenantName
  • Writer
  • WriterTenantName

sortColumnindex

int

Gibt die Spalte an, nach der die Datensätze im Protokoll sortiert werden.

sortOrder

bool

Gibt die Sortierreihenfolge der Datensätze an:

  • true sortiert die Datensätze in absteigender Reihenfolge,
  • false sortiert die Datensätze in aufsteigender Reihenfolge.
Ein Verwendungsbeispiel für diese API finden Sie im Skript. Laden Sie das Skript hier herunter oder verwenden Sie den unten aufgeführten Skript-Code.
Die Parameter in diesem Skript sollten durch Ihre Serveradresse, Ihren Mandantennamen und Ihre eigenen Zugangsdaten ersetzt werden.
# parameters
$server = "https://<server address>"
$tenant = "<Mandantenname>"
$user = "<user name>"
$password = "<password>"
#Pfad zum Ordner, in dem das Log gespeichert wird
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Project_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# log parameters
$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
#Ordner geräuschlos 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$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