Zum Hauptinhalt springen
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 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

Alle Parameter sind erforderlich. Stellen Sie sicher, dass sie korrekt angegeben sind.
Bei der Suche in Oracle Database wird zwischen Groß- und Kleinschreibung unterschieden. Beachten Sie dies, wenn Sie Oracle Database verwenden.
ParameterTypBeschreibung
filterstringFilterbedingungen für das Protokoll. Kombinieren Sie Bedingungen ausschließlich mit den Operatoren AND und OR, die im Parameter GeneralOperator festgelegt sind. Weitere Informationen finden Sie unter Build the filter parameter.
columnsOrderstringKommagetrennte Liste der Spalten, die in den Bericht aufgenommen werden: ID, Date, EventType, Details, RemoteHost, Principal, TenantName, Writer, WriterTenantName.
sortColumnindexintIndex der Spalte, die zum Sortieren der Datensätze im Protokoll verwendet wird.
sortOrderboolSortierreihenfolge: true sortiert in absteigender Reihenfolge, false sortiert in aufsteigender Reihenfolge.

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:
1

Die Browser-Developer-Tools öffnen

Klicken Sie im Browsermenü auf More tools → Developer tools und wechseln Sie zum Tab Network.
2

Einen Filter in der Konsole erstellen

Öffnen Sie die Administration and Monitoring Console, wechseln Sie zu Processing Monitor → Sicherheitsereignisprotokoll, und klicken Sie auf die Schaltfläche Schaltfläche „Filter hinzufügen“.
3

Die Filterkriterien anwenden

Geben Sie die Filterkriterien an und klicken Sie auf Apply.
4

Die Filterparameter ablesen

Klicken Sie auf den Request GetFilteredSecurityEvent. Die Filterparameter sind im Tab Payload aufgeführt.

Beispielskript

Das folgende PowerShell-Skript zeigt, wie Sie diese API zum Herunterladen des Sicherheitsereignisprotokolls verwenden.
Ersetzen Sie die Parameter in diesem Skript durch Ihre Serveradresse, Ihren Mandantennamen und Ihre eigenen Zugangsdaten.
# Parameter
$server = "https://<server address>"
$tenant = "<tenant name>"
$user = "<user name>"
$password = "<password>"
#Pfad zum Ordner, in dem das Protokoll gespeichert wird
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Project_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# Protokollparameter
$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 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$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