Saltar al contenido principal
Este registro contiene entradas 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 ser habilitada por el Administrador del sistema directamente en una base de datos de FlexiCapture. Para obtener información detallada sobre los distintos eventos registrados y sobre cómo habilitar este registro, consulte el artículo Registro de eventos de seguridad en la ayuda de la Consola de administración y supervisión.
Solo los usuarios con permisos de Administrador del sistema pueden descargar registros de eventos de seguridad desde System Monitor. Un Administrador del sistema es el Administrador de un tenant predeterminado.
Para descargar este registro, use una solicitud POST.
POST https://<server address>/FlexiCapture12/Monitoring/Tenant/GetSecurityEventsCSV

Parámetros de solicitud

  1. Todos los parámetros son obligatorios. Asegúrese de especificarlos correctamente.
  2. La búsqueda en Oracle Database distingue entre mayúsculas y minúsculas. Téngalo en cuenta si usa Oracle Database.

Name

Type

Description

filter

string

Establece los parámetros de filtro. Como resultado, solo se registrarán los logs que cumplan las condiciones del filtro. Para combinar las condiciones, solo se pueden usar los operadores AND y OR. Los operadores se especifican en el parámetro GeneralOperator. Parámetros de filtro de ejemplo:

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

Puede encontrar los valores necesarios para los parámetros PropertyKey y PropertyOperator creando el filtro deseado en la Consola de administración y supervisión. Para ello:

  1. En el menú del navegador, haga clic en Más herramientas -> Developer Tools y vaya a la pestaña Network.
  2. Inicie la Consola de administración y supervisión, vaya a System Monitor → Security event log y haga clic en el botón .
  3. Especifique los criterios de filtrado y haga clic en Apply.
  4. Haga clic en la solicitud GetFilteredSecurityEvent. Los parámetros de filtrado aparecerán en la pestaña Payload.

columnsOrder

string

Lista de columnas que se agregarán al informe. Los valores posibles son:

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

sortColumnindex

int

Especifica la columna que se usará para ordenar los registros en el log.

sortOrder

bool

Especifica el orden en que se ordenarán los registros:

  • true ordenará los registros en orden descendente,
  • false ordenará los registros en orden ascendente.

tenantId

int

Especifica los tenants cuyos registros se incluirán en el log de eventos. Los valores posibles son:

  • -1 – se incluirán en el log los registros de todos los tenants disponibles.
  • 0 – se incluirán en el log los registros del tenant predeterminado.
  • 1 y superior – solo se incluirán en el log los registros del tenant con el ID especificado.
Puede encontrar un ejemplo de uso de esta API en el script. Descargue el script aquí o utilice el código del script que se incluye a continuación.
Los parámetros de este script deben sustituirse por la dirección de su servidor y sus propias credenciales.
# parameters
$server = "https://<server address>"
$user = "<user name>"
$password = "<password>"
#ruta a la carpeta donde se guardará el log
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Tenant_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# parámetros de registro
$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 = "" # Solo el tenant predeterminado
$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
#crear carpeta en modo silencioso (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', "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