Configuring Users and Roles

Users and Roles can be edited within 1Integrate.

Roles are the same for both WebLogic and WildFly installations of 1Integrate. It is only the method of assigning users to these roles that differs.

Note: You will need to restart 1Integrate for any changes to user and roles to take effect.

By default, 1Integrate is deployed with example users and passwords included. This enables a quick set-up process, but for security reasons it is HIGHLY RECOMMENDED that:

  • As a minimum, on installation, change all passwords from the default to unique values.
  • change the user names to ones relevant to your organisation.

For stronger security and management, consider using other authentication mechanisms such as using your organisation's Lightweight Directory Access Protocol (LDAP) Service e.g. Microsoft Active Directory. This ensures that passwords and usernames are not stored in the application server but managed, as normal, by an IT department.

Roles

The following roles are available in 1Integrate:

Role Description
rs_admins

The administrator can set up system parameters and has all the privileges of the other roles.

These include creating and modifying:

  • rules
  • data stores
  • sessions
  • actions
  • action maps

The administrator can also define sessions and upload files.

rs_data_engineers

A data engineer can:

  • create and modify actions
  • create and modify action maps
  • define and run sessions
rs_data_loaders A data loader can upload files into 1Integrate on the Data Stores page only.
rs_data_quality_stewards A data quality steward can define and run sessions only.
rs_rule_definers

A rule definer can create and modify:

  • rules
  • data stores
  • sessions

The rule definer can also run sessions.

rs_users A user can only view data presented on the interface.
rswsuser A web service user can use the web services.

Users

The following users are and roles are created by default upon installation:

Username Password Assigned roles
INTFull integrate1

rs_users

rswsuser

rs_rule_definers

rs_data_loaders

rs_data_engineers

rs_data_quality_stewards

INTAdmin integrate101

rs_admins

rs_users

rswsuser

INTUser integrate102 rs_users
INTWService integrate103 rswsuser
INTRule integrate104 rs_rule_definers
INTLoader integrate105

rs_data_loaders

INTEng integrate106 rs_data_engineers
INTQuality integrate107 rs_data_quality_stewards

WebLogic Users

1Integrate users and roles should be configured using the WebLogic Server Administrator Console.

In WebLogic, "groups" are used to define roles. Group membership determines a user's access to application features.

1Integrate groups are created by default. However, unlike the default users that are created, the group names set up by installer must not be altered.

Note: The default setup assigns the default users to some of the default groups, allowing you to log in and start using 1Integrate without having to change any of the security configuration. If you wish to customise the users, then group assignment can be altered.

WildFly Users

To configure users and roles, navigate to the \wildfly-[version]\SETTINGS folder. This folder contains the following files:

  • users.properties contains a list of usernames and passwords, in the form username=password.

    Note: All users listed in the following table are included as default.

  • roles.properties contains a mapping from user names to 1Integrate roles in the form username=role1,role2,role3

LDAP

For stronger security and management, Consider using other authentication and authorisation mechanisms such as your organisation's Lightweight Directory Access Protocol (LDAP) Service e.g. Microsoft Active Directory. This ensures that passwords and usernames are not stored in the application server but managed, as normal, by an IT department.

Authenticate using LDAP (WebLogic)

For information on configuring WebLogic in this way, please refer to the Oracle documentation:

https://docs.oracle.com/middleware/12213/wls/SECMG/atn.htm#SECMG169

Authenticate using LDAP (WildFly)

The default WildFly configuration of storing passwords as plain text is not a recommended for production use. To configure your organisations LDAP service in WildFly, perform the following configuration:

ClosedConfigure an LDAP service

You will need to amend the standalone.xml file, to locate this go to: 1Integrate_home\standalone\configuration.

Use LdapExtLoginModule to defer authentication (usernames and passwords) and optionally authorisation (roles) to your existing LDAP server.

You will need to substitute the default "1SMS" security domain section, depending on the level of authentication or authorisation you would like from your active directory.

Note: Example LDAP configurations have been provided below, but you will need to populate the relevant with configurations specific to your organisation.

The following extract is the default "1SMS" which is to be replaced:

<security-domain name="1SMS" cache-type="default">

<authentication>

<login-module flag="required" code="UsersRoles">

<module-option value="${jboss.home.dir}/SETTINGS/users.properties" name="usersProperties"/>

<module-option value="${jboss.home.dir}/SETTINGS/roles.properties" name="rolesProperties"/>

</login-module>

</authentication>

</security-domain>]

Mapping LDAP groups to WildFly roles

It is possible to configure authentication so that usernames and passwords are managed by LDAP, but the authorisation (roles assigned to specific LDAP groups) is managed within the WildFly configuration files. This provides high security but removes the need for the LDAP service to be told about 1Integrate roles.

Note: You can only map LDAP Groups to roles if using this method.

To achieve this, configure the standalone.xml file in the following way (the section highlighted in bold shows the addition when compared to a deployment in which you will be managing authorisation and authentication in your LDAP):

<security-domain name="1SMS" cache-type="default">

<authentication>

<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="optional">

<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>

<module-option name="java.naming.provider.url" value="ldap://localhost:389"/>

<module-option name="java.naming.security.authentication" value="simple"/>

<module-option name="bindDN" value="[user]"/>

<module-option name="bindCredential" value="[password]"/>

<module-option name="baseCtxDN" value="[ou=users,ou=yourgroup,dc=yourcompany,dc=local]"/>

<module-option name="baseFilter" value="(cn={0})"/>

<module-option name="rolesCtxDN" value="cn=users,dc=yourcompanyl,dc=local"/>

<module-option name="roleFilter" value="(member={1})"/>

<module-option name="roleAttributeIsDN" value="true"/>

<module-option name="roleAttributeID" value="cn"/>

<module-option name="roleNameAttributeID" value="cn"/>

<module-option name="roleRecursion" value="0"/>

<module-option name="searchScope" value="SUBTREE_SCOPE"/>

<module-option name="searchTimeLimit" value="5000"/>

<module-option name="java.naming.referral" value="follow"/>

</login-module>

<login-module code="org.jboss.security.auth.spi.RoleMappingLoginModule" flag="required">

<module-option name="rolesProperties" value="${jboss.home.dir}/SETTINGS/roles.properties"/>

<module-option name="replaceRole" value="true"/>

</login-module>

</authentication>

</security-domain>

 

Note: In order authorise in LDAP and authenticate in WildFly, the roles.properties file must be populated with the groups that match those from the LDAP directory with the associated role(s). e.g. LDAPGroup = rs_admins.

Note: LDAP Group names with spaces are not recognised.

Example of the roles.properties file which is mapping LDAP groups to the relevant roles:

ADMINISTRATORS= rs_admins,rs_users,rswsuser,rs_rule_definers,rs_data_loaders,rs_data_engineers

ENGINEERS=rs_data_engineers

WORKERS=rs_users,rs_rule_definers

Manage Users, Groups and Roles in LDAP

If you would like to manage authentication and authorisation in your LDAP server, use the following in place of the default:

<security-domain name="1SMS" cache-type="default">

<authentication>

<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="optional">

<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>

<module-option name="java.naming.provider.url" value="ldap://localhost:389"/>

<module-option name="java.naming.security.authentication" value="simple"/>

<module-option name="bindDN" value="[user]"/>

<module-option name="bindCredential" value="[password]"/>

<module-option name="baseCtxDN" value="[ou=users,ou=yourgroup,dc=yourcompany,dc=local]"/>

<module-option name="baseFilter" value="(cn={0})"/>

<module-option name="rolesCtxDN" value="cn=users,dc=yourcompanyl,dc=local"/>

<module-option name="roleFilter" value="(member={1})"/>

<module-option name="roleAttributeIsDN" value="true"/>

<module-option name="roleAttributeID" value="cn"/>

<module-option name="roleNameAttributeID" value="cn"/>

<module-option name="roleRecursion" value="0"/>

<module-option name="searchScope" value="SUBTREE_SCOPE"/>

<module-option name="searchTimeLimit" value="5000"/>

<module-option name="java.naming.referral" value="follow"/>

</login-module>

</authentication>

</security-domain>