Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Client Failover Service

Authentication

  • Last UpdatedFeb 20, 2025
  • 3 minute read

Authentication Methods

The Client Failover Service supports the following authentication methods for Adapter clients and REST tools.

Kerberos

Kerberos provides per-user security that is native to Windows and Active Directory, and is supported with Adapters and some REST clients. Kerberos does not rely on credentials being transmitted across the wire, which makes it ideal for use with untrusted connections.

If the Client Failover Service is running with the default identity of "NT SERVICE\AVEVAFailover", it is not necessary to configure Service Principal Names (SPNs) on the machine where the service is running. However, if the service identity is changed to a domain user account, the following SPNs must be configured and associated with that domain account:

  • HTTP/hostname

  • HTTP/fully.qualified.hostname

If the failover service runs as a domain account but the SPN is not set up correctly, the following error message (excerpt) can be expected in the adapter log.

[Error] Could not send heartbeat to endpoint https://<failover service node>:<Port>/api/v1/clientfailover/ {"OperationId":"86e17027c84c4e1721b438606db413be","Error":"An error occurred.","Reason":"System.InvalidOperationException: An anonymous request was received in between authentication handshake requests..."}

The resolution is to set up the SPN for domain account under which the client failover service is running.

Basic

Basic authentication is defined in the Request for Comments document RFC 2617 HTTP Authentication and is supported by Adapters and most REST clients (e.g., cURL and Postman). Basic authentication as implemented in the Client Failover Service is simple to use, provides granular, per-user security based on Windows identity, and can help avoid configuration problems related to Kerberos. When combined with SSL, as in all Client Failover Service requests, Basic authentication is reasonably secure.

However, Basic authentication is less secure than Kerberos, since Windows user credentials, though encrypted, must be included and are transmitted with each request. In addition, Basic authentication requires that the Client Failover Service keeps the decrypted username and password in memory for the duration of the request. You should not use Basic authentication unless you are confident of the security of the server on which you are running the Client Failover Service.

Local User Groups

The Failover Service creates two local user groups when it is installed. For both Kerberos and Basic authentication, the Client Failover Service performs authorization on every request and validates the requesting account. When Basic authentication is used, the account specified as "Username" in the adapter's failover configuration must be a member of the required group. When Kerberos authentication is used, the service account for the adapter must be a member of the group.

  • AVEVAFailoverUsers: Users of the Failover Service, typically accounts running adapters. Members of this group are able to configure the failover service (such as creating failover groups/sessions and delete sessions) and post heartbeat messages. The account specified in the adapter failover configuration must be a member of this group.

  • AVEVAFailoverAdministrators: Administrators of the Failover Service. Members of this group are able to delete failover groups, post role overrides, and modify the global configuration.

REST URLs

The following REST URLs table contains examples of endpoints that you can use to manually create requests along with their corresponding required group membership.

Relative URL

HTTP verb

Action

Group Required

api/v1/clientfailover/groups/{groupID}

GET

Gets the group specified by groupID

AVEVAFailoverUsers

api/v1/clientfailover/groups/{groupID}

DELETE

Deletes the group specified by groupID

AVEVAFailoverAdministrators

api/v1/clientfailover/groups/{groupID}/clientSessions

GET

Gets the client sessions in the group specified by groupID

AVEVAFailoverUsers

api/v1/clientfailover/groups/{groupID}/clientSessions/{sessionID}

DELETE

Deletes the client session in groupID with sessionID

AVEVAFailoverUsers

api/v1/clientfailover/groups/{groupID}/clientSessions/{sessionID}/roleoverride

Note: To perform an override, users must be a member of both the AVEVAFailoverAdministrators and AVEVAFailoverUsers groups.

POST

Sets the session's role to the value specified in the request body

AVEVAFailoverAdministrators
AVEVAFailoverUsers

api/v1/configuration

GET

Gets the global configuration

AVEVAFailoverAdministrators

api/v1/configuration

PUT

Sets the global configuration

AVEVAFailoverAdministrators

In This Topic
TitleResults for “How to create a CRG?”Also Available in