Accounts
Controlling who can access your data and exactly what each user can do with it is a vital part of cybersecurity.
When you first start groov RIO or groov EPIC, you must create a local administrator account with your own username and password before you can do anything else. groov products do not have a default username or password that someone might be able to guess.
For security, the administrator account credentials you create are not recoverable.
groov products provide user account management through groov Manage. You can create administrator, developer, operator, REST API, and other accounts, and then assign permissions to authorized people or software services. Authentication (over an encrypted connection) is by either username/password or API token.

All users can create long, complex passwords consisting of numbers, capitalization, punctuation, spaces, phrases and words in any language, and even emoticons.
As an administrator, you can also set user session timeouts globally, adjusting the timeout for individual users as needed. You can set user sessions to never expire or to run from 30 minutes to two weeks.
LDAP (lightweight directory access protocol)
If your site manages user accounts through an LDAP service (for example, Microsoft Active Directory Service), you can work with your IT department to configure your groov product in groov Manage to connect to the LDAP server, authenticate a user, and help determine which services a user can access. For simple setups you can use the LDAP server to authenticate users and give them default local permissions. For systems with a larger number of users or more complex user management, you can use groov Manage to map an LDAP group to a specific set of permissions.
NOTE: Your original administrator account for groov RIO or groov EPIC gives you direct, local access to your device and is not managed by your LDAP service.
Details on how permissions work and how to assign them are in your groov product user’s guide.
Security certificate management
Security certificates are a way that clients can verify servers, so that when one tries to connect, it can be assured it's communicating with the correct server and not an impostor. groov products provide built-in certificate management in groov Manage.

groov RIO and groov EPIC support X.509 PKI standard certified client connections to secure servers (Client SSL) and from clients to the groov device’s secure server (Server SSL) using TLS/SSL certificates, which can be device generated, self-signed, or registered publicly through a Certificate Authority (CA). For more information on certificates, see your groov product user’s guide, our videos on security certificates, and examples on developer.opto22.com.
Data communication options for better security
As we saw in the Firewalls section, a device is inherently more secure and requires less security configuration when it initiates data communication (as a client to a server) over an outbound network port, rather than having to open a port to receive connection requests.
Publish/subscribe (pub/sub) is a communication method that takes advantage of this greater security by using device-originated communications only. groov RIO and groov EPIC can use MQTT, a pub/sub protocol, to report status (authenticated and encrypted) to a central broker. Once connected to the broker, the connection persists, so the groov RIO or EPIC can also receive any new commands for it or to status messages from other devices, thereby providing bi-directional communication.
Because MQTT data flow is device originating, the firewall allows the data out, keeps track of the session status, and allows any packets coming back from the broker to pass through.
With MQTT, this persistent connection is the critical mechanism for the MQTT broker to determine the state of client connections at all times. In a pub/sub model for SCADA (supervisory control and data acquisition) or industrial communications, you always want to be sure that clients are still connected. If a data publisher's persistent connection is broken, the broker notifies all subscribers about the disconnect so that the state of the system is known to all.
In contrast, in request/response communication, connections do not persist unless the client maintains them. For example, if Node-RED (a client) connects to a SQL server, once data is sent from the client to the server and the server responds, the connection is closed. Subsequent data transfers must be initiated by the client each time. In the example of groov View, the client (your browser) keeps the connection open to the server (groov View) only as long as the client browser session is active.
Device-originated communication is sometimes called using an outbound port. In contrast, when the device has to have a configured port opened in order to receive communications originated from outside, it can be called using an inbound port. Through outbound, device-originating data communications such as MQTT, groov products offer a secure option that requires far less configuration. For more information on using MQTT, see MQTT Resources on our website.
The following diagram illustrates how MQTT works with groov EPIC.
