User administration

Overview

In user administration, you group all users together who have the same user profile into user groups, such as "administrators", "internal users" or "external users":

User administration enables you to increase your host access security because users must already identify themselves at the front-end LogWeb/Ajax server. The server not only acts as an application firewall in front of your host system but also filters out unauthorized login attempts.

An "empty user administration service" is preconfigured and comes standard; you can use this immediately for initial tests:

For system operation, you have the following options:

Note:

Whatever you decide, we will be pleased to assist and support you with any required customizations.

Configuration examples

As delivered, the directory

userdb

contains examples for defining user files and group files that you activate by entering the corresponding basic settings:

The common template directories for these examples are found in userdb/data:

UserData = userdb/data/userdata
GroupData = userdb/data/groupdata

Note:

Basic settings: format and paths

You make basic settings for user administration in the central configuration file WEB-INF/ajax.ini:

Parameter Meaning
UserDatabase Determines the format of user administration:
  • Default setting: file
    The special LOG-WEB attributes are transferred to the LOG-WEB server if required.
    The login name is only transferred to the LOG-WEB server as a comment.
  • Alternative: logweb
    Only the parameters Group, Password, and ChangePassword, as well as all general attributes that begin with an underscore (_), are read from the LOG-WEB user files; all other parameters are ignored.
    The login name is passed to the LOG-WEB server for verification only.
  • Alternative: ldap
    All general attributes are extracted from the group profile.
UserProfiles Directory path to the user profiles USER.ini
  • Default setting: userdb/empty/users
  • Can also be located outside of the Web application.
  • For UserDatabase = logweb, the path to the LOG-WEB user directory must be entered here, for example c:/logweb73/server/config/user
  • Not used for UserDatabase = ldap
GroupProfiles Directory path to the group profiles GROUP.ini

Note that changes to this file are only applied after the Web application is restarted. However, you can create, change, or delete profile files for users and groups during operation.

Even if you do not require user administration, do not want to use LOG-WEB user administration, or do not want to integrate another external user administration service, you must specify the path to the user and group profiles because the system then searches for pseudo-files instead for better control.

Note the following when specifying directory paths:

Attributes for users and groups

A few attributes can only be specified in user files or in group files. However, you can assign most attributes for individual users as well as user groups:

Attribute Meaning
_WriteUser Indicates if the user has write access to his or her user directory.
  • Default setting: false
  • Alternative: true
  • Regardless of this entry, users who are logged in can always read their own user directories.
  • Missing directories are automatically created when data is created.
_WriteGroup Indicates if the user has write access to his or her group directory.
  • Default setting: false
  • Alternative: true
  • Regardless of this entry, users who are logged in can always read their own group directories.
  • Missing directories are automatically created when data is created.
ChangePassword Indicates if the user is allowed to create, change, or delete his or her password.
  • Default setting: false
  • Alternatives: true, Yes
  • The password is encrypted and saved as a Password attribute in the user profile.
  • Regardless of this entry, an administrator can delete or change every password.
_ChangeGroup Indicates if the user can change his or her group membership at the start of a session.
  • Default setting: false (the group cannot be changed)
  • Alternative: true (the group can be changed)
  • This entry enables administrators to easily edit the templates and macros of any user group.
  • This entry is required even if an external user administration service is used to specify group membership.

In special cases, you can also assign the following attributes:

Attribute Meaning
_CookieMaxAge Determines the validity period of the login cookie (value in seconds).
  • < 0: Cookie is only valid for the browser session (default setting)
  • = 0: Login cookie is not used
  • > 0: Validity period in seconds (for example, 64800 for 18 hours)
Default setting: -1 ("use session cookie")
_UseSessionID Determines the identifier that is sent to the server for read access to files.
  • Default setting: true: An anonymous SessionID is transmitted. The browser is therefore unable to save these accesses in the cache.
  • Alternative: false: Each user name and group name is transmitted. This enables the browser to save the data in the cache.
_AJAX_XXX If required, you can enter other "free" parameters that are transmitted to the session and can be evaluated using your own macros.

Note:

Special LOG-WEB attributes

In special cases, you may use mainframe connections (3270, 5250 and 9750) but do not want to use the LOG-WEB user administration.

In these cases, you can also pass special parameters to the LOG-WEB server in addition to the standard attributes:

Attribute Meaning
StationName Station name (LU name) of the dialog terminal.
  • If the parameter is set in the user profile, then you need to check the use of LOG-WEB server "pools".
  • You can enter the name of the pool more easily in the group profile or in a connection template.
PrinterName Station name (LU name) of the printer.
  • If the parameter is set in the user profile, then you need to check the use of LOG-WEB server "pools".
  • You can enter the name of the pool more easily in the group profile or in a connection template.
LOGWEB_XXX Passes any parameter XXX and its value for the LOG-WEB server to evaluate.
  • Example: Using the parameter
    LOGWEB_StationName = TERM0001
    the station name TERM0001 is passed:
    StationName = TERM0001

Defining users: USER.ini files

With the parameter UserProfiles in the basic settings, you specify the path to your user files. For each authorized user, you create a text file in this directory using the corresponding user name, for example, meier.ini.

Note:

Special entries in user files:

Attribute Meaning
Group
or
_Group
Name of the user group for this user.
Mandatory, except in the pseudo user file _ANY_.ini.
  • Example: guest
  • For compatibility reasons, file names can be entered in the form xxx/guest.ini.
  • Note that the corresponding group file must be available (here also: //GroupProfiles/guest.ini).
  • The _Group parameter has priority over Group.
  • The parameter can also be set in the LOG-WEB user files.
Password Optional: encrypted password for this user.
  • Example: 19A7..
  • Default setting: empty (no password)
  • Users can only change, delete, or create their own passwords if you have permitted that in the ChangePassword parameter.
  • An administrator can delete or create a password at any time by setting the parameter in the user file.
  • Password entries are case-sensitive.
_User Special case for redirects: Assigns another user name.
  • In this case, the user file is only used as a placeholder.
  • The final user attributes are derived from the given reference instead.
  • Example: see "Pseudo user file _DEFAULT_.ini"

As an exception, you can also enter general attributes that give individual users priority over your attributes in the group file.

Example of a simple user file:

# user profile extern.ini
Group    = extern
Password = 19A7..

You can find other examples under Configuration examples.

Defining user groups: GROUP.ini files

You use the GroupProfiles parameter to specify the path to your group files. For each user group, you create a single text file in this directory under the corresponding user name, for example extern.ini.

Note:

In the group file, you can specify the general attributes mentioned previously. These are then valid for all users of this group, as long as they are not revoked in the user parameters.

Special entries in group files:

Attribute Meaning
_Group Special case for redirects: Assigns another group name.
  • In this case, the user file is only used as a placeholder.
  • The final group attributes are derived from the given reference instead.
  • Example: see "Pseudo group file _ANY_.ini"
  • The parameter can also be set in the LOG-WEB user files.
_AutoCreateGroup Special case: Automatically creates a missing group profile.

Example of a group file:

# group profile extern.ini
_WriteUser = true
ChangePassword = true

You can find other examples under Configuration examples.

Pseudo user file _ANY_.ini

The pseudo user file _ANY_.ini is always used if an unknown user name is entered during login.

The pseudo user file _ANY_.ini is used for an existing external user administration tool:

# pseudo user file _ANY_.ini accepts any user name from external service
    # no individual user profile created

Pseudo user files _DEFAULT_.ini

The pseudo user file _DEFAULT_.ini is always used if no user name is entered during login.

For example, the user file _DEFAULT_.ini is used to implement an empty user administration service, where it redirects to an (existing) default user:

# pseudo user file _DEFAULT_.ini accepts missing user name and redirects to user "default"
_User = default

Pseudo group file _ANY_.ini

The pseudo group file _ANY_.ini is always used if an unknown group name is transmitted.

For example, the pseudo group file _ANY_.ini is used to connect to an existing LOG-WEB or external user administration service:

# pseudo group file _ANY_.ini accepts any group name
# note: user profiles are accessed via LOG-WEB server
_WriteUser = true

Pseudo group file _DEFAULT_.ini

The pseudo group file _DEFAULT_.ini is always used if no user name is entered during login.

The pseudo group file _DEFAULT_.ini is used if an external user administration tool does not provide a group name and redirects to an existing default group:

# pseudo group file _DEFAULT_.ini accepts missing group name
# redirects to group "default"
_Group = default

Working without user administration

If you want to work without using a user administration tool, you must enter "empty" parameters. The configuration example userdb/empty is already provided with the basic settings.

UserDatabase = file
UserProfiles = userdb/empty/users
GroupProfiles = userdb/empty/groups

This configuration example is pre-configured and contains a empty sample user administration service. The configuration can be used immediately for initial tests:

The directory userdb/empty contains the following profile files for this purpose:

userdb
|
+-- empty
|   +-- users
|   |       _DEFAULT_.ini
|   |           _User = default         
|   |       default.ini
|   |           _Group = default        
|   |       admin.ini
|   |           _Group = admin          
|   |
|   \-- groups
|           default.ini
|               _CookieMaxAge = 0       
|               _WriteUser = true       
|           admin.ini
|               _WriteUser = true       
|               _WriteGroup = true      
|               _ChangeGroup = true     
|               _ChangePassword = true  
...
Meaning of profile files

For tests, the empty user administration service also has an "admin" user with special rights:

If required, you can expand this example to create and implement a complete user administration tool:

Continuing use of LOG-WEB user administration

If you have already set up LOG-WEB user administration, you can continue using this without problems. To do this:

The configuration example userdb/logweb provided shows an example of how LOG-WEB user administration is integrated:

userdb
|
+-- logweb
|   \-- groups
|           _ANY_.ini
|               _AutoCreateGroup = true 
|               _WriteUser = true       
...

Note:

Using LDAP or ActiveDirectory

If you manage your users in a LDAP or ActiveDirectory server, you can use these servers for LogWeb/Ajax as well.

In the basic settings, for UserDatabase enter the type "ldap":

UserDatabase = ldap
GroupProfiles = userdb/ldap/groups

This enables the login name to be forwarded to the LDAP or ActiveDirectory server and also enables this server to perform the corresponding tests.

Since LogWeb/Ajax does not support the membership of a user in multiple groups, you use the supplied sample configuration userdb/ldap:

userdb
|
+-- ldap
|   \-- groups
|           _DEFAULT_.ini
|               _Group = default        
|           default.ini
|               _CookieMaxAge = 0       
|               _WriteUser = true       
...

With this, all users are assigned to the group "default".

LDAP or ActiveDirectory server access is configured in the file WEB-INF/LdapConfig.ini with the following properties:

Attribute Meaning
de.logics.logwebAppV3.login.LdapSpi Java class name implementing LDAP or ActiveDirectory server access.
Default Setting:
de.logics.logwebAppV3.login.LdapExample
Please do not modifiy!
domain.server.url URL of the domain server.
Example:
ldap://my.company.com:389
domain.fast.binding A value of "true" enables "fast binding" for connecting to the domain server.
domain.return.attributes Comma or space separated list of attributes to be returned.
Example:
cn, sAMAccountName
global.server.url URL of the global catalog.
If missing, domain.server.url will be used instead.
global.username User name for connecting to the global catalog.
global.password Password for connecting to the global catalog.
global.search.base Base directory of the users in the global catalog.
Example:
DC\=company,DC\=com
global.search.filter Filter for seaarching for users in the global catalog. The string ${username} will be replaced by the supplied user name.
Example:
(&(objectClass\=user)(|(cn\=${username})(sAMAccountName\=${username})))

Please prefix all equal signs = in parameter values by a back slash \.

Example:

# LDAP configuration file

# Classname of LDAP Service Provider Implementation
de.logics.logwebAppV3.login.LdapSpi = de.logics.logwebAppV3.login.LdapExample

# Configure access to the domain server
domain.server.url = ldap://my.company.com:389
domain.fast.binding = false
domain.return.attributes = cn, sAMAccountName

# Configure access to the global catalog
global.server.url = ldap://my.company.com:3268
global.username = Administrator
global.password = Kennwort
global.search.base = DC\=company,DC\=com
# ${username} will be replaced by the supplied user name
global.search.filter = (&(objectClass\=user)(|(cn\=${username})(sAMAccountName\=${username})))

Please contact our support team for more configuration details. The documentation and an example Java implementation of the interface is available on request.

Using external user administration

If you already use another user administration service, for example, through portal integration or services such as LDAP and ActiveDirectory, you can integrate the service here.

The simplest way to do this is by integrating the user and group names that are checked by the external service, as is shown in the configuration example userdb/extern:

userdb
|
+-- extern
|   +-- users
|   |       _ANY_.ini
|   |                                        // no content
|   \-- groups
|           _ANY_.ini
|               _ChangeGroup = true     
|               _WriteUser = true       
...

The prerequisite is that all users can only access LogWeb/Ajax after they have been checked by the external service.

Alternatively, closer integration can be achieved by using the LogWeb/Ajax login interfaces. Contact us to discuss your requirements, we will be pleased to support you in planning and implementing this task.