User Management

The User Management module handles user connectivity to the application. It handles the authentication and authorization process for the user.

Logon configuration

To enable users to log on to Transact, configure server.xml, which is located in the <Transact Folder>\JavaAppServer\conf. Configure the Realm element which is located in the following structure:

<Server>
   <Service>
      <Engine>
         <Host>
            <Context>
               <Realm />
            </Context>
         </Host>
      </Engine>
    </Service>
</Server>

The realm tag has many configurable parameters. The use and need of these parameters depends upon the type of authentication server used by the user.

Various implementations can be configured at once. For more information, look for "Realms" on the Apache Tomcat website.

The commonly used realm configurations:

  • LDAP Realm

  • Tomcat Internal Memory Realm

Visit the Apace Tomcat website for details.

As the user logs on to the application, the user name and password are verified against the configured authentication server using the specified configuration properties.

User role handling

Transact, on the basis of the roles of the user logged in to the application, determines the following:

  • Batch classes the user will be allowed to view on the batch class management view.

  • Batch instance the user will be allowed to view batch instance management view.

  • Folders the user is allowed to view on the folder management view.

  • Scanner profiles and other configurations on the web scanner view.

The user roles for the logged-in user will be verified from authentication server configured in the property file<Transact Folder>\Application\WEB-INF\classes\META-INF\dcma-user-connectivity\user-connectivity.properties:

Following is the list of the configurable properties for this properties file.

Properties common to LDAP and Active Directory

Configurable property Type of value Value options Description
user.connectivity_url String A valid URL to connect to the server The connection URL should be in the following format: ldap://(server_address):(port_number)
user.connectivity_config String N/A Class name for specifying the context factory.
user.connectivity_ domain_component_name String N/A The domain component name for the LDAP/Active Directory configuration.
user.connectivity_ domain_component_ organization String N/A The domain component organization name for the LDAP/Active Directory configuration.
user.connectivity_username String A valid username to connect and access LDAP /Active Directory server The username of the user responsible for interacting with the server. Only required if LDAP/Active directory is used for connecting to Transact.
user.connectivity_password String A valid password to connect and access LDAP/Active Directory server The password of the user responsible for interacting with the server. Only required if LDAP/ Active directory is used for connecting to Ephesoft.
user.connectivity_ groupSearchAttributeFilter String A valid attribute to be searched while getting groups. This Attribute is added so as to make search of groups in LDAP/AD configurable. By default, its cn (commonName) is returned.
user.connectivity_ userSearchAttributeFilter String A valid attribute to be searched while getting users This Attribute is added to make search of Users (Organizational Unit) in LDAP/AD configurable. By default, its cn(commonName) is returned.

Properties specific to LDAP configuration

Configurable property Type of value Value options Description
user.ldap_user_base String N/A The relative path under which all user information will be located. This path will be relative to the domain components specified by the user.
user.ldap_group_base String N/A The relative path under which all the groups/roles information will be located. This path will be relative to the domain components specified by the user.

Properties specific to Active Directory configuration

Configurable property Type of value Value options Description
user.msactivedirectory_ context_path String N/A The directory path where the intended user resides.
user.msactivedirectory_ group_search_filter String N/A This filter defines can have |(OR), &(AND) and !(NOT). Example: ((!(cn=a*))(|(cn=ephesoft*)(&(cn=b*))

Property specific to Tomcat configuration

Configurable property Type of value Value options Description
user.tomcatUserXmlPath String N/A The directory path where the Tomcat configuration XML file resides.

Property for selecting configuration

Configurable property Type of value Value options Description
user.connection List of values 0, 1, 2 The type of connection user wants for the application: 0 for LDAP, 1 for MS Active Directory, 2 for Tomcat.

Examples of configuration

LDAP

Realm
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionURL=”ldap://localhost:389″
connectionName="cn=Manager,dc=ephesoft,dc=com"
connectionPassword="********"
userPattern="cn={0},ou=people,dc= ephesoft,dc=com"
roleBase="ou=groups,dc=ephesoft,dc=com" roleName="cn"
roleSearch="uniqueMember={0}"/>
user-connectivity.properties
user.connectivity_url=ldap://localhost:389
user.connectivity_config=com.sun.jndi.ldap.LdapCtxFactory
user.connectivity_domain_component_name= ephesoft
user.connectivity_domain_component_organization=com
user.connectivity_username=cn=Manager,dc=ephesoft,dc=com
user.connectivity_password=*******
user.ldap_user_base=ou=people
user.ldap_group_base=ou=groups
user.connection=0

Active Directory

Realm
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionURL="[ldap:/x.x.x.x/ ldap://localhost:389]"
connectionName="user@company.com"
connectionPassword="********"
userBase="cn=Users,DC=ephesoft,DC=com"
userSearch="(&(objectClass=person)(sAMAccountName={0}))"
userSubtree="true"
roleBase="cn=Users,DC=ephesoft,DC=com"
roleName="cn"
roleSubtree="true"
roleSearch="member={0}" referrals="follow" />
user-connectivity.properties
user.connectivity_url=ldap://x.x.x.x:389
user.connectivity_config=com.sun.jndi.ldap.LdapCtxFactory
user.msactivedirectory_context_path=CN=Users
user.connectivity_domain_component_name=ephesoft
user.connectivity_domain_component_organization=com
user.connectivity_user_name=CN=Administrator,CN=Users,DC=ephesoft,DC=com
user.connectivity_password=*******
user.connection=1 (for fetching group and user from active directory)

Multiple realm example

<Realm className="org.apache.catalina.realm.CombinedRealm">

   <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
   connectionURL="[ldap://x.x.x.x/ ldap://x.x.x.x:389]"
   connectionName="user@company.com"
   connectionPassword="********"
   userBase="cn=Users,DC=ephesoft,DC=com"
   userSearch="(&(objectClass=person)(sAMAccountName={0}))"
   userSubtree="true"
   roleBase="cn=Users,DC=ephesoft,DC=com"
   roleName="cn" roleSubtree="true"
   roleSearch="member={0}" referrals="follow" />

   <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
   connectionURL="[ldap://x.x.x.x/ ldap://x.x.x.x:389]"
   connectionName="user@company.com"
   connectionPassword="********"
   userBase="cn=test1,DC=ephesoft,DC=com"
   userSearch="(&(objectClass=person)(sAMAccountName={0}))"
   userSubtree="true"
   roleBase="ou=test1,DC=ephesoft,DC=com"
   roleName="cn" 
   roleSubtree="true"
   roleSearch="member={0}" referrals="follow" />

   <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
   connectionURL="[ldap://x.x.x.x/ ldap://x.x.x.x:389]"
   connectionName="user@company.com"
   connectionPassword="********"
   userBase="cn=test,DC=ephesoft,DC=com"
   userSearch="(&(objectClass=person)(sAMAccountName={0}))"
   userSubtree="true"
   roleBase="ou=test,DC=ephesoft,DC=com"
   roleName="cn" 
   roleSubtree="true"
   roleSearch="member={0}" referrals="follow" />

</Realm>

Global realm example

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionURL="ldap://x.x.x.x:3268"
connectionName="user@company.com"
connectionPassword="********"
userBase="DC=ephesoft,DC=com"
userSearch="(sAMAccountName={0})"
userSubtree="true"
roleBase="ou=test,DC=ephesoft,DC=com"
roleName="cn"
roleSubtree="true"
roleSearch="member={0}"
referrals="follow" />