Skip to content

Authentication

This core system provides, manages and validates system identities within an Eclipse Arrowhead Local Cloud (LC).

Learn more:
Abstract System Description (SysD)

Services

identity

The purpose of this service is to give, verify and invalidate a proof of identity token. Furthermore, it also allows a system to change its own credentials. The service is offered for both application and Core/Support Systems.

Learn more:
Abstract Service Description (SD)
generic-http (IDD) | generic-https (IDD)
generic-mqtt (IDD) | generic-mqtts (IDD)
since: v5.0.0

login

This service operation acquires a proof of identity token.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

logout

This service operation invalidates a proof of identity token.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

change

This service operation changes the requester system's own credentials.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

verify

This service operation checks the validity of a provided token and acquires information about the verified system.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

general-management

Its purpose is to get some information about the hosting system's behavior, such as log entries and configuration settings. The service is offered for administrative support systems.

Learn more:
Abstract Service Description (SD)
generic-http (IDD) | generic-https (IDD)
generic-mqtt (IDD) | generic-mqtts (IDD)
since: v5.0.0

get-log

This service operation lists the log entries of the system that matches the filtering requirements.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

get-config

This service operation lists the current values of the specified configuration settings.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts


identity-management

Its purpose is to manage identities and active sessions in bulk. The different operations provide querying, creating, updating and removing functionalities. The service is offered for administrative support systems.

Learn more:
Abstract Service Description (SD)
generic-http (IDD) | generic-https (IDD)
generic-mqtt (IDD) | generic-mqtts (IDD)
since: v5.0.0

identity-mgmt-query

This service operation lists the identities that match the filtering requirements.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

identity-mgmt-create

This service operation creates the specified identities.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

identity-mgmt-update

This service operation updates the specified existing identities.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

identity-mgmt-remove

This service operation removes the specified identities.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

identity-mgmt-session-query

This service operation lists the active sessions that match the filtering requirements.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

identity-mgmt-session-close

This service operation closes and the specified active sessions and invalidates the related tokens.

Example: generic-http | generic-https
Example: generic-mqtt | generic-mqtts

Configuration

The system configuration properties can be found in the application.properties file located at /src/main/resources folder.

Note: During the build process this file is going to be built into the executable JAR, but also going to be copied next to the JAR file. Any modification in the configuration file located next to the executable JAR file will override the built in configuration property value.

General parameters

See the general configuration properties.

Note: In case of the Authentication system the property authentication.policy has a special value internal, which means the system should use its own database during authentication. The property should not be changed.

Database parameters

spring.datasource.url

Full connection URL to the database.

spring.datasource.username

Username to the database.

spring.datasource.password

Password to the database.

spring.datasource.driver-class-name

The driver provides the connection to the database and implements the protocol for transferring the query and result between client and database.

spring.jpa.show-sql

Set to true in order to log out the SQL queries.

spring.jpa.properties.hibernate.format sql

Set to true to log out SQL queries in pretty format. (Effective only when 'spring.jpa.show-sql' is 'true')

spring.jpa.hibernate.ddl-auto

Auto initialization of database tables. Value must be always 'none'.

Custom parameters

authentication.secret.key

The secret key which is used to prove to the Local Cloud's Service Registry that this authentication is trusted. This secret key must be present in the Service Registry authenticator.secret.keys structure.

enable.management.filter

Set to true to enable automatic authorization for management services.

management.policy

Defines the access policy for management services. Can be sysop-only (only systems with system operator permission can use them), whitelist (system operators and those dedicated systems that appear on the management.whitelist can use them) or authorization (system operators, whitelist members and those systems that have permission according to the Authorization system can use them).

management.whitelist

A list of system names (separated by comma) that can use management services if the management.policy is set to whitelist or authorization.

identity.token.duration

Validity period of the identity token in seconds (0 or negative value means hundred years).

cleaner.job.interval

Interval between execution times of the expired session cleaner job in milliseconds.

Logging configuration

The logging configuration properties can be found in the log4j2.xml file located at src/main/resources folder.

Note: During the build process this file is going to be built into the executable JAR, but it is also possible to override it by an external file. For that use the following command when starting the system:

java -jar arrowhead-authentication-5.x.x
     -Dlog4j.configurationFile=path-to-external-file

JDBC_LEVEL

Set this to change the level of log messages in the database. Levels: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.

CONSOLE_FILE_LEVEL

Set this to change the level of log messages in console and the log file. Levels: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.

LOG_DIR

Set this to change the directory of log files.

Changelog

v5.0.0

Related in CL-5.0.0