Unified Event log
You can use the Unified Event Log for Axidian CertiFlow Linux installations or in multi-server Windows configurations. It allows events from all servers to be recorded in a single, centralized log.
Configure the Unified Event Log using the Axidian CertiFlow Event Log Proxy or Log Server applications.
Axidian CertiFlow Event Log Proxy
The Axidian CertiFlow Event Log Proxy application enables logging events from one or more Axidian CertiFlow servers into a unified Windows Event Log. The Axidian CertiFlow Event Log Proxy can only be installed on a workstation running the Windows OS.
To install and configure the Axidian CertiFlow Event Log Proxy:
Log in to the workstation as local administrator.
Open the Axidian CertiFlow installation package, navigate to the AxidianCertiFlow.Server catalog and run the AxidianCertiFlow.EventLog.Proxy-<version-number>.x64.en-us.msi installation file.
In the installation wizard, select an authentication method based on the operating system where the Axidian CertiFlow server is installed, and specify the required settings in the configuration files.
- Windows
- Linux
- Select the Windows authentication method. When the installation is complete, click Finish and close the installation wizard.
- Open the web.config file (C:\inetpub\wwwroot\certiflow\eventlogproxy) in Notepad as an administrator.
- In the
allow usersparameter, specify a user account from the domain where the Event Log Proxy is installed. For example, the user catalog service account.Example<authorization>
<clear />
<add accessType="Allow" users="DOMAIN\servicecertiflow" />
</authorization> - Save and close the web.config file.
Select the Certificate authentication method. When the installation is complete, click Finish and close the installation wizard.
Open the appsettings.json file (C:\inetpub\wwwroot\certiflow\eventlogproxy) in Notepad as an administrator.
In the
authSettingssection, specify the thumbprint of a client certificate of the Axidian CertiFlow server in theallowedCertificateThumbprintsparameter.
Make sure the certificate's Enhanced Key Usage (EKU) field contains the Client Authentication value and the certificate is installed in the Axidian CertiFlow server's certificate store.Example"authSettings":{
"authorizeByCertificate": "true",
"allowedCertificateThumbprints": "aba8b93d73343f2182e3c1c40482b2ae2d75b6ec"
}Save and close the appsettings.json file.
Restart the Axidian CertiFlow Event Log Proxy application pool to apply the changes.
- Open the Internet Information Services (IIS) Manager and select Application Pools in the left menu.
- Select the Axidian CertiFlow Event Log Proxy application and click Recycle in the right menu.
Log Server
With Log Server you can record events from one or more Axidian CertiFlow servers to a unified log in the following targets: Windows Event Log, Microsoft SQL Server, PostgreSQL Server, SysLog Server.
The Log Server can be installed on a workstation running either Windows or Linux OS.
- Windows
- Linux
Install Log Server
Before installing the Log Server, install .NET 8.0 and URL Rewrite.
To install the Log Server:
- Log in to the workstation as local administrator.
- Run the LogServer-<version number>.x64.en-us.msi file from the Log.Server catalog of the Axidian CertiFlow installation package and follow the wizard's instructions.
- Copy the following files from the Log.Server catalog*:
- The certiflowSchema.config file to the C:\inetpub\wwwroot\ls catalog.
- The certiflowEventLogTarget.config, certiflowMsSqlTarget.config, certiflowPgSqlTarget.config, and certiflowSysLogTarget.config files to the C:\inetpub\wwwroot\ls\targetConfigs catalog.
Configure event read/write operations
The Log Server supports reading events from only one storage target (ReadTargetId), while it can write events to multiple storage targets (WriteTargets) at the same time.
You can configure event reading and writing for the following storage types:
- Windows Event Log
- Microsoft SQL Server
- PostgreSQL Server
- Syslog Server
- Windows Event Log
- Microsoft SQL
- PostgreSQL
- Syslog
Open the C:\inetpub\wwwroot\ls catalog and edit the clientApps.config file.
- In the
Applicationssection, add the following parameters.
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowEventLogTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowEventLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowEventLogTarget" Type="eventlog"/>
</Targets>- In the
Save and close the file.
Create a database in SQL Server Management Studio.
- In the Object Explorer pane, right-click Databases and select New Database.
- Enter a database name and click OK.
- In the Owner: field, specify the owner of the database.
- Click OK to save the database.
infoCreate or select any existing internal Microsoft SQL or Active Directory account. For example, a service account for running Axidian CertiFlow.
Once the database is created, the specified account is granted the db_owner and public roles. Axidian CertiFlow use this account for read/write operations.
Open the C:\inetpub\wwwroot\ls\targetConfigs catalog and edit the certiflowMsSqlTarget.config file. In the
<Settings>…</Settings>section configure the following parameters:Data Source– the Microsoft SQL Server name or the named Microsoft SQL Server instance in theServer name\Instance nameformat.Database– the database name (ILS).User Id– the service account for managing the Axidian CertiFlow database.Password– the service account password.TrustServerCertificate– the server certificate trust setting. Set the value toTrue.
<Settings>
<ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
</Settings>Open the C:\inetpub\wwwroot\ls catalog and edit the clientApps.config file.
- In the
Applicationsection, add the following parameters.
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowMsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowMsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowMsSqlTarget" Type="mssql"/>
</Targets>- In the
Save and close the file.
Create a database in pgAdmin.
- Open pgAdmin and connect to the server.
- In the Browser section, right-click Databases and select Create → Database....
- On the General tab, specify the database name in the Database field, select the service account from the Owner list, and click Save.
Grant the service account the permissions to manage the database.
- Select the database and select Tools → Query Tool.
- Enter the query with the service account name.
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <service account name>;- Click Execute/Refresh (Execute/Refresh).
Follow these steps to add Universally Unique Identifiers (UUID) generation support.
- Click
and select Clear Query.
- Enter the query.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";- Click Execute/Refresh (Execute/Refresh).
- Click
Configure a remote connection to the database.
- Open the pg_hba.conf configuration file (C:\Program Files\PostgreSQL\<version number>\data).
- Add a string in the following format:
CONNECTIONTYPE DATABASE USER ADDRESS METHODCONNECTIONTYPE– the name of the connection type. To use TCP/IP connection, specifyhost.DATABASE– the name of the database. To grant access to all databases, specifyALL.USER– name of the user who accesses the database. To grant access to all users, specifyALL.ADDRESS– the IP address of the remote Axidian CertiFlow server. To grant access from any IP address, specify0.0.0.0/0.METHOD– the user authentication method. For example,md5,scram-sha-256.
Examplehost LogServer servicepg 192.200.1.0/24 md5
host ALL servicepg 10.0.0.0/8 md5
host ALL ALL 0.0.0.0/0 scram-sha-256Open the C:\inetpub\wwwroot\ls\targetConfigs catalog and edit the certiflowPgSqlTarget.config file. In the
<ConnectionString>…</ConnectionString>section, configure the following parameters:Host– the PostgreSQL Server name.Port– the PostgreSQL connection port. Default value is 5432.Database– the database name.Username– the service account for managing the Axidian CertiFlow database.Password– the service account password.
<Settings>
<ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
</Settings>Open the C:\inetpub\wwwroot\ls catalog and edit the clientApps.config file.
- In the
Applicationsection add a newTargetIdforReadTargetandWriteTarget.
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowPgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowPgSqlTarget" Type="pgsql"/>
</Targets>- In the
Syslog only supports event writing (WriteTargets). The following configuration extends the PostgreSQL example.
Open the C:\inetpub\wwwroot\ls\targetConfigs catalog and edit the certiflowSysLogTarget.config file. In the
<ConnectionString>…</ConnectionString>section, configure the following parameters:HostName– the Syslog server name or IP.Port– the Syslog server connection port. Default value is 514.Protocol– the Syslog server connection type: UDP, TCP, TCPoverTLS.Format– an optional parameter that configures log format: Plain, CEF, LEEF.SyslogVersion– an optional parameter that configures the protocol: RFC3164, RFC5424.
<Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>Open the C:\inetpub\wwwroot\ls catalog and edit the clientApps.config file.
- In the
Applicationsection, add a newTargetIdforWriteTarget.
<Applications>
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowPgSqlTarget</TargetId>
<TargetId>certiflowSysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowPgSqlTarget" Type="pgsql"/>
<Target Id="certiflowSysLogTarget" Type="syslog"/>
</Targets>- In the
To apply the changes, restart the IIS application pool.
- Open Internet Information Services (IIS) Manager and select Application Pools in the left menu.
- Select the Log Server application pool and click Recycle in the right menu.
Install Log server
Run the installation package.
Debiansudo dpkg -i axidian.logserver-<version number>_amd64.debRHELsudo rpm -i axidian.logserver-<version number>.x86_64.rpmOpen the Log.Server catalog and copy the certiflowSchema.config file to the /opt/axidian/ls catalog.
sudo cp ./certiflowSchema.config /opt/axidian/ls/
Configure event read/write operations
The Log Server supports reading events from only one storage target (ReadTargetId), while it can write events to multiple storage targets (WriteTargets) at the same time.
You can configure event reading and writing for the following storage types:
- Microsoft SQL Server
- PostgreSQL Server
- Syslog Server
- Microsoft SQL
- PostgreSQL
- Syslog
Create a database in SQL Server Management Studio.
- In the Object Explorer pane, right-click Databases and select New Database.
- Enter a database name and click OK.
- In the Owner: field, specify the owner of the database.
- Click OK to save the database.
infoCreate or select any existing internal Microsoft SQL or Active Directory account. For example, a service account for running Axidian CertiFlow.
Once the database is created, the specified account is granted the db_owner and public roles. Axidian CertiFlow use this account for read/write operations.
Open the /opt/axidian/ls/targetConfigs catalog and edit the certiflowMsSqlTarget.config file. In the
<Settings>…</Settings>section, configure the following parameters:Data Source– the Microsoft SQL Server name or the named Microsoft SQL Server instance in theServer name\Instance nameformat.Database– the database name (ILS).User Id– the service account for managing the Axidian CertiFlow database.Password– the service account password.TrustServerCertificate– the server certificate trust setting. Set the value toTrue.
<Settings>
<ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
</Settings>Open the /opt/axidian/ls catalog and edit the clientApps.config file.
- In the
Applicationsection, add the following parameters.
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowMsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowMsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowMsSqlTarget" Type="mssql"/>
</Targets>- In the
Create a database in pgAdmin.
- Open pgAdmin and connect to the server.
- In the Browser section, right-click Databases and select Create → Database....
- On the General tab, specify the database name in the Database field, select the service account from the Owner list, and click Save.
Grant the service account the permissions to manage the database.
- Select the database and select Tools → Query Tool.
- Enter the query with the service account name.
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <service account name>;- Click Execute/Refresh (Execute/Refresh).
Follow these steps to add Universally Unique Identifiers (UUID) generation support.
- Click
and select Clear Query.
- Enter the query.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";- Click Execute/Refresh (Execute/Refresh).
- Click
Configure a remote connection to the database.
- Open the pg_hba.conf configuration file (/etc/postgresql/<version number>/main.).
- Add a string in the following format:
CONNECTIONTYPE DATABASE USER ADDRESS METHODCONNECTIONTYPE– the name of the connection type. To use TCP/IP connection, specifyhost.DATABASE– the name of the database. To grant access to all databases, specifyALL.USER– name of the user who accesses the database. To grant access to all users, specifyALL.ADDRESS– the IP address of the remote Axidian CertiFlow server. To grant access from any IP address, specify0.0.0.0/0.METHOD– the user authentication method. For example,md5,scram-sha-256.
Examplehost LogServer servicepg 192.200.1.0/24 md5
host ALL servicepg 10.0.0.0/8 md5
host ALL ALL 0.0.0.0/0 scram-sha-256Open the /opt/axidian/ls/targetConfigs catalog and edit the certiflowPgSqlTarget.config file. In the
<ConnectionString>…</ConnectionString>section, configure the following parameters:Host– the PostgreSQL Server name.Port– the PostgreSQL connection port. Default value is 5432.Database– the database name.Username– the service account for managing the Axidian CertiFlow database.Password– the service account password.
<Settings>
<ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
</Settings>Open the /opt/axidian/ls catalog and edit the clientApps.config file.
- In the
Applicationsection add a newTargetIdforReadTargetandWriteTarget.
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowPgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowPgSqlTarget" Type="pgsql"/>
</Targets>- In the
Syslog only supports event writing (WriteTargets). The following configuration extends the PostgreSQL example.
Open the /opt/axidian/ls/targetConfigs catalog and edit the certiflowSysLogTarget.config file. In the
<ConnectionString>…</ConnectionString>section, configure the following parameters:HostName– the Syslog server name or IP.Port– the Syslog server connection port. Default value is 514.Protocol– the Syslog server connection type: UDP, TCP, TCPoverTLS.Format– an optional parameter that configures log format: Plain, CEF, LEEF.SyslogVersion– an optional parameter that configures the protocol: RFC3164, RFC5424.
<Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>Open the /opt/axidian/ls catalog and edit the clientApps.config file.
- In the
Applicationsection add a newTargetIdforWriteTarget.
<Applications>
<Application Id="certiflow" SchemaId="certiflowSchema">
<ReadTargetId>certiflowPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>certiflowPgSqlTarget</TargetId>
<TargetId>certiflowSysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- In the
Targetssection, add a new element.
<Targets>
<Target Id="certiflowPgSqlTarget" Type="pgsql"/>
<Target Id="certiflowSysLogTarget" Type="syslog"/>
</Targets>- In the
Apply Log server settings
Open the web server configuration file for nginx or Apache and uncomment the strings for processing the api application.
nginx examplelocation /api
{ include /etc/nginx/conf.d/proxy.conf; proxy_pass http://localhost:5010/api; }Apache exampleProxyPass /api http://localhost:5010/api
ProxyPassReverse /api http://localhost:5010/apiRestart the web server.
Restart the Log Server service.
sudo systemctl restart axidian-ls.service
Configure Axidian CertiFlow to use the Unified Event log
- Configure connection to the event log in the Configuration Wizard.
- Test the event log functionality. Go to the Management Console, open the Log section, and search for events.
The log search might return no results if the log on the remote server contains no events. Perform any action in the Axidian CertiFlow web applications. For example, disable a card, add or modify a comment, and then repeat the event search.