Identity Providers¶
An authentication domain defines where and how user identities are verified at connection time. Every account belongs to a group, and every group to a domain: the domain is what determines where the accounts come from — a corporate directory, an internal base, or an external identity provider.
This module lists the declared domains. Click + to add one, or double-click a name to configure it. The directory type is chosen at creation time and cannot be changed afterwards.
Four types are offered:
| Directory type | Account source | Use |
|---|---|---|
| LDAP directory | External directory (Active Directory, OpenLDAP…) | The common case: existing accounts and groups are reused as they are, with no copying. |
| Local directory | Base internal to the platform | Accounts created and managed straight from the console, alongside a directory or for a small scope. |
| SAML domain | External identity provider (IdP) | Authentication is delegated to the IdP; the platform acts as the service provider. |
| Anonymous directory | None | Rare cases where reaching an application requires no authentication at all. |
Creation order
Create the domain first, then the groups, then the user accounts: application access rights are then granted to groups, through an access contract.
Common configuration elements¶
These settings are present for every domain type:
| Field | Description |
|---|---|
| Name | Choose a meaningful domain name. |
| Shortcut URL | Displayed in edit mode only. Direct URL giving access to the user portal for this specific domain, without going through the list of available domains. Format: https://{server}/cloud/?orgname={tenant}&domainid={id}. |
| Description | Optional field describing the domain content. |
| Microsoft domain | Information that accompanies user identification when single sign-on (SSO) is enabled. |
| Expiration | Maximum inactivity delay before a session expires. Default value: 60 minutes. |
| Number of attempts before lockout | Limits the number of login attempts. Recommended value: 3 attempts (protection against brute-force attacks). This limit must be ≤ any limit set in the LDAP directory. |
| Time before unlock (minutes) | Delay before locked sessions are unlocked. Set to 0 to disable. |
| The domain is part of cascading authentication | See the Cascading authentication section. |
| Delegate authentication to an external server | Options: No, CAS, IdeoSSO. |
| Alternative username attribute | LDAP attribute used as a secondary identifier when the primary attribute fails to find the user (e.g. mail, userPrincipalName). |
| Maximum number of simultaneous sessions per user | Recommended value: 1 session. |
| Automatic deletion of the oldest session | Automatically closes an active session when a new one is requested. |
| Note displayed in the authentication form | Note intended for the domain's users only. |
Authentication method¶
| Field | Description |
|---|---|
| Authentication method | Defines how the user's identity is verified at login: Form (username and password entered manually) / User certificate (the username is extracted from the certificate's CN field) / User certificate and form (a password is still required after certificate authentication) / Apache authentication (authentication delegated to the Apache web server) / Pro Santé Connect (CIBA) (authentication through the French national health identity provider). |
| Force the use of the virtual keyboard | Displays an on-screen keyboard on the authentication page to protect password entry against keyloggers. |
Pro Santé Connect (CIBA)¶
These fields are displayed only when the Pro Santé Connect (CIBA) authentication method is selected. Pro Santé Connect is the French national identity provider for healthcare professionals.
| Field | Description |
|---|---|
| Identifier (client id) | Client identifier provided by Pro Santé Connect when the application is registered. |
| Secret (client secret) | Associated client secret, used to validate the OIDC exchanges with Pro Santé Connect. |
| Sandbox | When checked, CyberElements connects to the PSC test environment instead of the production environment. Use for integration testing only. |
| RPPS retrieval | Determines where the user's RPPS number (French health professionals registry) comes from: Use the authentication attribute (the RPPS is extracted from the primary authentication attribute) or Use another user attribute (the RPPS is extracted from a separate attribute, to be specified in the next field). |
| User attribute containing the RPPS | Name of the attribute holding the RPPS number (e.g. rpps, healthcareProfessionalId). Visible and required only if the previous option is set to "Use another user attribute". |
OTP authentication token¶
| Field | Description |
|---|---|
| Authentication token | Selection of the OTP generator(s) to use (previously declared through the OTP token generators menu). Multiple selection is possible. |
| User attribute used to send the OTP | Specifies the user attribute through which the OTP is delivered for each selected token (e.g. mobile to send by SMS, mail to send by e-mail). One field is displayed per selected token. |
| Token expiration duration | Duration after which a sent OTP is no longer accepted. Set to 0 to disable expiration. |
| Time unit | Unit of the expiration duration: Hours or Days. The value entered in the previous field is multiplied by this unit (1 for hours, 24 for days). |
| Expiration starts | Starting point of the expiration countdown: From the last OTP validation (the OTP expires X hours after it was validated) or From the last successful login (the OTP expires X hours after the session opens). |
| Replace OTP characters with "*" | Masks the characters entered in the one-time password field during login. |
neomia Pulse authentication¶
neomia Pulse is a continuous authentication solution based on behavioural analysis. These fields are displayed when the Enable neomia Pulse authentication checkbox is selected.
| Field | Description |
|---|---|
| Enable neomia Pulse authentication | Enables the integration with neomia Pulse. A Pulse configuration is created for the domain. Subject to subscription — see the box below. |
| Number of neomia Pulse attempts | Maximum number of Pulse authentication attempts before the request is blocked. Default value: 3. |
| If Pulse authentication succeeds | Behaviour when Pulse successfully validates the user: Skip the OTP token (all OTPs configured on the domain are bypassed) or Reinforce authentication (OTPs remain mandatory even after a successful Pulse validation). |
| If Pulse authentication fails | Fallback behaviour if Pulse fails or is unavailable: Block access (the user cannot log in, error code PULSE_API_ERROR is returned) or Request an additional authentication factor (automatic fallback to standard OTP authentication). |
| Display graphical components | Displays the typing-pattern visual elements of the neomia Pulse interface on the authentication page. |
| Display authentication factors | Shows the user the list of authentication factors detected by Pulse. |
A subscription option, configured by Systancia
neomia Pulse authentication is an option of the CyberElements subscription. When it has not been subscribed for the tenant, the checkbox has no effect: the console automatically returns it to the unchecked state and offers to send an activation request to Systancia. ⓘ The neomia Pulse connection parameters cannot be entered: the API URL, the authentication API URL and the API key are those of the subscribed option, filled in by Systancia. The tenant administrator only sets the authentication behaviour described above.
External authentication delegation¶
CAS server¶
| Field | Description |
|---|---|
| CAS server URL | Full URL of the CAS server to which authentication is delegated. |
IdeoSSO¶
| Field | Description |
|---|---|
| CAS server URL | Full URL of the IdeoSSO server. |
| IdeoSSO, user property matching the identifier | Name of the IdeoSSO user property used as the login identifier in cyberelements. |
Configuring a "Local directory" domain¶
Tab: General information¶
| Field | Description |
|---|---|
| Invisible shortcut | If several domains exist, check this box so the domain does not appear in the list offered to the user. The domain is then only reachable through its full shortcut URL. |
| Display the access condition if it is invalid | If checked, when an invalid access condition prevents a user from logging in, the corresponding error message is shown to them. If unchecked, the user receives no explanation. Available in edit mode only. |
Tab: Password¶
This tab is used to configure password management for the local domain users.
| Field | Description |
|---|---|
| Change the user's password at first login | If checked, on their very first login the user is automatically redirected to a password change screen. They cannot access the portal until the change is done. |
| Display the password change form | If checked, a link allowing the user to change their password is shown on the login screen. |
| Define a custom password policy | Enables the definition of a password complexity and lifetime policy specific to this domain. |
When Define a custom password policy is checked, the following settings become available:
| Field | Description |
|---|---|
| Display the password policy to the user | If checked, the complexity rules are presented to the user when they set or change their password. |
| Minimum number of characters | Minimum required password length. Default value: 10. Set to 0 to disable. |
| Minimum number of lowercase letters | Minimum number of lowercase letters required. Set to 0 to disable. |
| Minimum number of uppercase letters | Minimum number of uppercase letters required. Set to 0 to disable. |
| Minimum number of digits | Minimum number of digits required. Set to 0 to disable. |
| Minimum number of special characters | Minimum number of special characters required. Set to 0 to disable. |
| Minimum password lifetime (days) | Minimum delay before the user is allowed to change their password. Prevents overly frequent changes. Set to 0 to disable. |
| Maximum password lifetime (days) | Delay after which the password expires and must be renewed. Default value: 60 days. Set to 0 to disable. |
| Notify the user before expiration (days) | Sends an e-mail to the user the specified number of days before their password expires. Requires a configured maximum lifetime, an SMTP server and a source e-mail address. Set to 0 to disable. |
| SMTP server | Server used to send the expiration notifications (among those declared in the SMTP configuration). |
| Source e-mail | E-mail address shown as the sender of the notifications. |
| Reject the new password if it contains the login | If checked, forbids passwords that contain the user's login identifier (protection against obvious passwords). |
| Reject the new password if it matches one of the last X | Keeps a password history and forbids reusing the specified number of previous passwords. Set to 0 to disable. |
Configuring an "LDAP directory" domain¶
Tab: General information¶
| Field | Description |
|---|---|
| Invisible shortcut | If several domains exist, check this box so the domain does not appear in the list offered to the user. |
Tab: LDAP settings¶
Connection¶
| Field | Description |
|---|---|
| Authentication through a site | If checked, CyberElements uses a site's Edge Gateway to reach the directory, avoiding the need to open inbound firewall rules from the Mediation Controller hosted by Systancia. A second field lets you select the site to use. |
| Authentication type | Bind protocol to the LDAP server: SIMPLE (bind with DN + clear-text password over TLS) / NTLM (Windows authentication, requires the Microsoft domain suffix) / SASL/Digest-MD5 (SASL authentication with MD5 hashing, does not transmit the password in clear text). |
| Microsoft domain suffix | Suffix of the Windows domain used to build the NTLM identifier (e.g. CONTOSO). Visible only if the authentication type is NTLM. |
Searching for users and groups¶
| Field | Description |
|---|---|
| Search mode | Defines the strategy for retrieving groups from the directory: Retrieve groups from a group attribute (iterates over groups and reads their members — suited to standard directories) / Retrieve groups from a user attribute (reads the memberOf attribute of each user — faster on Active Directory) / Retrieve nested groups through the TokenGroups attribute (uses the special AD tokenGroups attribute to resolve nested groups recursively — recommended on Active Directory). |
| User attribute containing the groups | Name of the user object attribute that lists the groups it belongs to. Visible only if the "from a user attribute" mode is selected. |
| Use the user's DN to log in | If checked, the user's full DN is used during the LDAP bind operation (authentication). |
| User authentication attribute | LDAP attribute used as the unique identifier for the user at login. Suggested values: sAMAccountName (Active Directory), cn, sn, uid, mailNickname, userPrincipalName, employeeID, or custom. |
| User attribute customisation | Lets you manually enter an attribute not present in the list. Visible only if "custom" is selected. |
| Group authentication attribute | LDAP attribute used to uniquely identify the groups (e.g. cn, sAMAccountName). |
Tree¶
| Field | Description |
|---|---|
| Users branch | Full DN of the organisational unit containing the users (e.g. ou=Users,dc=example,dc=com). |
| Groups branch | Full DN of the organisational unit containing the groups (e.g. ou=Groups,dc=example,dc=com). |
| Manual group management | If checked, groups are not synchronised automatically from the LDAP directory. Administrators must add and remove groups manually in cyberelements. |
Service account¶
| Field | Description |
|---|---|
| Read access account | Full DN of the service account used by CyberElements to query the directory (e.g. cn=service-cye,ou=ServiceAccounts,dc=example,dc=com). Defining a dedicated proxy account and disabling anonymous binding to the directory is strongly recommended. |
| Password | Password of the service account. |
| User class | LDAP object class of the users to search for in the directory (e.g. person, inetOrgPerson, user for Active Directory). |
| Group filter | Additional attribute/value filter to identify the groups in the directory. Used only with the "from a group attribute" search mode. |
User password¶
| Field | Description |
|---|---|
| Display the password change form | If checked, a password change link is shown on the login screen. This option is only available if the directory connection uses SSL (LDAPS) or goes through a site. |
| Check whether the password must be changed | If checked, CyberElements queries the LDAP directory to find out whether the user must change their password (pwdLastSet attribute on Active Directory) and forces them to do so if necessary. |
| Check the password complexity when it is changed | If checked, CyberElements verifies that the new password meets the complexity policy defined in the directory when a change is initiated from the portal. |
Radius option¶
| Field | Description |
|---|---|
| Enable the Radius option | Check this box only if the LDAP directory is coupled with Radius authentication (two-factor). This option can only be enabled when the domain is created and cannot be changed afterwards. |
When the Radius option is enabled, the following settings appear:
| Field | Description |
|---|---|
| Mode | Operating mode of the Radius server: quicklog (direct authentication: the password is passed as is to the Radius server) or challenge/response (the Radius server sends a challenge to which the user must respond). |
| Server | IP address or DNS name of the Radius server. |
| Port | Listening port of the Radius server. Default value: 1812. |
| Secret | Shared secret between CyberElements and the Radius server, used to encrypt the exchanges. |
| Number of attempts | Maximum number of tries before CyberElements gives up on the request to the Radius server. Default value: 3. |
| Timeout (seconds) | Maximum time to wait for the Radius server response before timing out. Default value: 10 seconds. |
| Radius NAS IP address | Source IP address that CyberElements declares to the Radius server (NAS-IP-Address attribute). To be set if the Radius server filters requests by source IP address. |
Other settings¶
| Field | Description |
|---|---|
| Allow RDS server management | If checked, accounts in this domain can be associated with RDS servers in the RDS server management module. |
| Use specific certificate authorities to validate LDAPS certificates | If checked, CyberElements uses a custom CA certificate to validate the certificate presented by the LDAP server during SSL connections. If unchecked, the system CAs are used (/etc/ssl/certs/ca-certificates.crt). |
| Certificate authorities (base64 encoding) | File containing the root CA(s) in PEM format (text starting with -----BEGIN CERTIFICATE-----). Visible and required only if the previous option is enabled. |
LDAP servers¶
The server grid lists the servers associated with the domain (columns: Server, Port, Protocol). Defining several servers enables high availability: CyberElements automatically switches to an available server in case of failure.
To add a server, click +. Enter:
| Field | Description |
|---|---|
| Server | IP address or DNS name of the LDAP server. |
| Port | Access port. Default value: 389 (LDAP) or 636 (LDAPS). |
| Protocol | LDAP or LDAP over SSL. Using SSL is strongly recommended even on an internal network. |
To edit an existing server, select it and click the Properties icon.
To delete a server, select it and click ×.
Configuring an "Anonymous directory" domain¶
An anonymous domain can be used in the rare cases where accessing an application does not require authentication because the user has already been authenticated by specific means.
| Field | Description |
|---|---|
| Maximum number of connections | Limits the number of simultaneous connections allowed on this domain. |
| Use the certificate CN as the user identifier | If checked, the user's identifier is automatically extracted from the CN field of the client certificate presented at connection. This identifier is then used for SSO. |
| Identifier format, from the DN | Expression for building the identifier from the components of the certificate DN (e.g. %CN%@%OU%). Visible only if the previous option is enabled. |
Configuring a "SAML" domain¶
When a SAML domain is used, CyberElements acts as the service provider (SP) and delegates authentication to an external identity provider (IdP).
Tab: General information¶
| Field | Description |
|---|---|
| Identity provider | Type of identity provider: Other (any standard SAML IdP) or Azure (Microsoft Azure AD / Entra ID, which additionally enables asynchronous group synchronisation). |
| Identity provider EntityId | Unique identifier of the IdP in the SAML federation. Its value is provided by the IdP (e.g. https://sts.windows.net/{tenant-id}/ for Azure, https://[serverName]/idp/shibboleth for Shibboleth). |
| Group names variable | Name of the SAML attribute carrying the user's group memberships in the assertion (e.g. http://schemas.microsoft.com/ws/2008/06/identity/claims/groups for Azure). |
| Login variable | Name of the SAML attribute used as the login identifier in CyberElements (e.g. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name). |
| The domain is part of cascading authentication | See the Cascading authentication section. |
| Manual configuration | If checked, the identity provider parameters must be entered manually (EntityId of the SAML endpoints). If unchecked, these parameters are extracted automatically from the metadata file. Available in edit mode only. |
Tab: Access service¶
This tab is used to configure the metadata exchanged with the identity provider and to access the metadata of the service provider (SP) generated by cyberelements.
| Field | Description |
|---|---|
| IDP metadata URL | Public URL from which CyberElements automatically downloads the identity provider's XML metadata file. If set, the SAML endpoints are extracted automatically and updated on certificate renewals. |
| IDP metadata file | Indicates the status of the XML metadata file currently loaded (date, validity). |
| Set a new metadata file | If checked, a file upload field appears to manually load an XML metadata file provided by the IdP. |
| Metadata file (xml) | XML metadata file of the identity provider to load. Use the Check file button to validate the content before saving. Visible only if the previous box is checked. |
| Service provider | Link to the SP XML metadata file generated by CyberElements for this domain. This file must be provided to the identity provider to finalise the configuration on the IdP side. |
Cascading authentication¶
Visit the general options page to enable cascading authentication.
When a user accesses the portal, the system searches the cascading domains for which authentication is possible without login/password (SAML, Apache, certificate). The first domain that recognises the user is used. If no domain can authenticate without a password, the login/password fields are displayed.
Once enabled, two buttons appear in the domain list:
- Check "The domain is part of cascading authentication" for each desired domain.
- The order can be changed using the up/down arrows. Order 0 is processed first.
Note
Anonymous and Radius domains, and those that delegate authentication to an external server (CAS), cannot be used in cascading authentication.