Saltar al contenido principal
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 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 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

Parámetros de la 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. Tenlo en cuenta si usas Oracle Database.

Name

Tipo

Descripción

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. Ejemplos de parámetros de filtro:

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 Red.
  2. Inicie la Consola de administración y supervisión, vaya a Processing 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.
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 del servidor, el nombre del tenant y sus propias credenciales.
# parameters
$server = "https://<server address>"
$tenant = "<tenant name>"
$user = "<user name>"
$password = "<password>"
#ruta a la carpeta donde se guardará el log
$folder = "C:\Temp\Logs\Stage"
$reportFileName = "Project_SecurityEvents-{0:yyMMdd-HHmmss}.csv" -f (Get-Date)
# parámetros de 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 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$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