Este registro contiene registros sobre eventos relacionados con la adición, eliminación y otros cambios realizados en los permisos de los usuarios. El registro de eventos de seguridad está deshabilitado de forma predeterminada. Esta función solo puede habilitarla el Administrador del sistema directamente en una base de datos de FlexiCapture. Para obtener más información, consulte Registro de eventos de seguridad.
Solo los usuarios con el rol de Administrador del tenant (o el Administrador del sistema en el caso del tenant predeterminado) pueden descargar registros de eventos de seguridad desde Processing Monitor.
Para descargar este registro, use una solicitud POST:
POST https://<server address>/FlexiCapture12/Monitoring/Project/GetSecurityEventsCSV
Todos los parámetros son obligatorios. Asegúrese de que se especifiquen correctamente.
La búsqueda en Oracle Database distingue entre mayúsculas y minúsculas. Téngalo en cuenta si usa Oracle Database.
| Parámetro | Tipo | Descripción |
|---|
filter | string | Condiciones de filtro para el registro. Combine las condiciones únicamente con los operadores AND y OR, definidos en el parámetro GeneralOperator. Para obtener más información, consulte Crear el parámetro de filtro. |
columnsOrder | string | Lista de columnas separadas por comas que se incluirán en el informe: ID, Date, EventType, Details, RemoteHost, Principal, TenantName, Writer, WriterTenantName. |
sortColumnindex | int | Índice de la columna que se usa para ordenar las entradas del registro. |
sortOrder | bool | Orden de clasificación: true ordena en orden descendente y false, en orden ascendente. |
Definir el parámetro de filtro
El parámetro filter acepta un objeto JSON. Por ejemplo:
{
"GeneralOperator": "AND",
"FilterItems": [
{
"PropertyKey": "Date",
"PropertyOperator": "BETWEEN",
"PropertyValues": [
"2021-08-28",
"00:00:00",
"2023-09-28",
"23:59:59"
]
}
]
}
Para encontrar los valores de los parámetros PropertyKey y PropertyOperator, cree un filtro en la Consola de administración y supervisión:
Abra Developer Tools del navegador
En el menú del navegador, haga clic en More tools → Developer Tools y vaya a la pestaña Red.
Cree un filtro en la consola
Abra la Consola de administración y supervisión, vaya a Processing Monitor → registro de eventos de seguridad y haga clic en el botón
. Aplique los criterios del filtro
Especifique los criterios de filtrado y haga clic en Apply.
Lea los parámetros del filtro
Haga clic en la request GetFilteredSecurityEvent. Los parámetros de filtrado se muestran en la pestaña Payload.
El siguiente script de PowerShell muestra cómo usar esta API para descargar el registro de eventos de seguridad.
Sustituya los parámetros de este script por la dirección del servidor, el nombre del tenant y sus propias credenciales.
# parámetros
$server = "https://<server address>"
$tenant = "<tenant name>"
$user = "<user name>"
$password = "<password>"
#ruta a la carpeta donde se guardará el registro
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Project_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# parámetros del registro
$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
#crear carpeta silenciosamente (si no existe)
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