Security
Security
70-3349-2024QAE
QAD Adaptive ERP 2024
August 2024
ii QAD Security Administration Guide
This document contains proprietary information that is protected by copyright and other intellectual
property laws. No part of this document may be reproduced, translated, or modified without the
prior written consent of QAD Inc. The information contained in this document is subject to change
without notice.
QAD Inc. provides this material as is and makes no warranty of any kind, expressed or implied,
including, but not limited to, the implied warranties of merchantability and fitness for a particular
purpose. QAD Inc. shall not be liable for errors contained herein or for incidental or consequential
damages (including lost profits) in connection with the furnishing, performance, or use of this
material whether based on warranty, contract, or other legal theory.
This document contains trademarks owned by QAD Inc. and other companies.
Security_AG_v2024QAE.pdf/sti/ymg/su9/su9/su9
QAD Inc.
100 Innovation Place
Santa Barbara, California 93108
Phone (805) 566-6000
[Link]
Nifi Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Comments? Go to [Link]/MfwKHm
vi QAD Security Administration Guide
Comments? Go to [Link]/MfwKHm
viii QAD Security Administration Guide
Comments? Go to [Link]/MfwKHm
x QAD Security Administration Guide
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375
Comments? Go to [Link]/MfwKHm
xii QAD Security Administration Guide
Starting in September 2019, the new name for QAD’s complete portfolio of products is
QAD Adaptive Applications. Additionally, QAD Adaptive ERP is the new name for QAD’s
flagship ERP solution. QAD Adaptive ERP includes the functionality previously
associated with QAD Cloud ERP and QAD Enterprise Applications - Enterprise Edition,
plus the QAD Enterprise Platform and Adaptive UX, which resulted from the Channel
Islands program. Going forward, the terms QAD Enterprise Applications, QAD Cloud
ERP, and Channel Islands will be deprecated but will remain in previous documentation
and training materials. QAD’s intention is to—as soon as possible—eliminate the use of
the deprecated terms going forward.
Change Summary
The following table summarizes significant differences between this document and
previous versions.
Date/Version Description Reference
August 2024/QAD Added the Enable HTTPS for Progress AppServer section. page 48
Adaptive ERP
March 2024/QAD Deleted the Languages and Locales section. --
Adaptive ERP 2024 Updated the Role Permissions section. page 136
Added the E-Signature Modes seAugust 2024ction. page 322
March 2023/QAD Updated the Adaptive UX Security chapter page 127
Adaptive ERP 2023
September 2022/QAD Added a new Copy an Adaptive UX Role section page 95
Adaptive ERP 2021.1 Added a new Copy and Merge Adaptive UX Roles section page 98
Comments? Go to [Link]/MfwKHm
xvi QAD Security Administration Guide
Comments? Go to [Link]/MfwKHm
xviii QAD Security Administration Guide
Introduction to Security
This section introduces the security and internal control features in your system.
Overview 2
Explains the fundamental components used to assure the preservation of confidentiality,
integrity, and availability.
User and Role-Based Security Model 3
Explains the security model used by the system to integrate the different components of
the system architecture, control who can access the system, and define the actions that
system users can perform.
System Security 4
Describes the overall security of all the components of QAD, including servers and
databases, user synchronization, and user authentication.
Internal Controls 5
Explains the mechanisms that help an organization comply with legal or regulatory
requirements to reduce their exposure to potential liability imposed for violations.
Implementation Summary 6
Describes how every user must be identified in the system, given access to a domain and
at least one entity in the domain, and associated with at least one role in the domain in
order to gain system access.
Security and Internal Controls Programs 11
Lists the menu programs you use to define and maintain security and internal controls in
your system.
2 QAD Security Administration Guide
Overview
The security and related internal controls operating in your system must be viewed within
the context of your organization’s overall security framework. While it is beyond the scope
of this guide to discuss the details of information security, the fundamental components
involve measures to assure the preservation of:
• Confidentiality—ensuring that information is accessible only to those authorized to
have access
• Integrity—safeguarding the accuracy and completeness of information and
processing methods
• Availability—ensuring that authorized users have access to information and
associated assets when required
Security properly starts with a comprehensive policy statement that:
• Demonstrates clearly management’s support and commitment to security
• Defines the principal security components important to the organization
• Describes the general approach for meeting security objectives
After the policy statement is prepared, procedures, guidelines, and other supporting
administrative controls are typically defined to support the policy. Finally, technical
controls are designed and implemented to support the administrative controls.
The system provides multiple types and levels of security and internal controls, which are
described in this chapter. This chapter also includes several checklists to use as starting
points in planning and implementing a comprehensive security plan to meet the specific
security requirements of your environment. See “Security Planning Checklists” on page 7
for details.
The specific level of security control an organization should implement is a function of the
underlying information security requirements. Those requirements originate:
• Externally, including regulatory, legal, and legislative requirements
• Internally, based on the value of information assets, associated risks to those assets,
and available controls that can eliminate or mitigate exposures to an acceptable level
Much of the security control in the system is designed to support external requirements,
including numerous controls to support customers who are concerned with meeting the
security requirements of legislation and regulations such as the Sarbanes-Oxley Act and
Food and Drug Administration 21 CFR Part 11.
Comments? Go to [Link]/MfwKHm
4 QAD Security Administration Guide
During an application session, several different types of security operate at the same
time.
Fig. 1.1
Types of Security
Domain/entity security restricts access based on user ID.
Role-based
security
prevents
access to
screens.
Field security prevents users from updating values for specific fields.
System Security
System security comprises the overall security of all the components of QAD, including
servers and databases, user synchronization, and user authentication.
• Each QAD application is assigned a collection of roles (for example, roles defined in
QAD Enterprise Edition) within the Directory service.
• All passwords stored in the system are hashed using the PBKDF2 algorithm.
Passwords are not stored when users are authenticated using LDAP.
Internal Controls
In addition to security features, the system also has internal control features. Internal
controls are mechanisms that help an organization comply with legal or regulatory
requirements to reduce their exposure to potential liability imposed for violations. For
example, the Sarbanes-Oxley Act of 2002 mandated that public companies must provide
an assessment of the effectiveness of the organization’s internal control over financial
reporting.
The system has these internal control features:
• Segregation of duties. Provides features that prevent a user from participating in more
than two parts of a transaction or process. This is accomplished by partitioning the
system application resources into mutually exclusive categories. See Chapter 9,
“Segregation of Duties in Adaptive ERP,” on page 199.
Comments? Go to [Link]/MfwKHm
6 QAD Security Administration Guide
• Electronic signatures. Provides features that require users of some system programs
to enter a valid user ID and password before they can create or update records. See
Chapter 11, “Electronic Signatures in Adaptive ERP,” on page 277.
• Auditing. The Auditing module integrates with the Progress OpenEdge Auditing
capability. You can configure your system to maintain audit trails. Audit-trail records
are created and stored in audit-trail tables. They contain facts about changes made in
the databases. A typical audit record includes information that helps you identify who
made a change, which program made the change, when the change was made, and
what the change was. You can set up these functions for all tables or you can limit the
audit trail recording activity to specific tables. See Chapter 13, “Auditing,” on
page 329.
Implementation Summary
Figure 1.2 illustrates a workflow for implementing security and internal control features.
Fig. 1.2
Security Workflow
Plan
Plansecurity
securityimplementation,
implementation,
including
includinginternal
internalcontrols.
controls.
Define
Defineusers,
users,roles,
roles,role
role
permissions,
permissions,and
andmembership.
membership.
Define
Definecontrol
controlsettings,
settings,
including
includingpassword
passwordstrategy.
strategy.
Assign
Assignaccess
accesstotofields,
fields,sites,
sites,
and
and so on based onuser
so on based on userIDs
IDs
and
androles.
roles.
Implement
Implementinternal
internalcontrols.
controls.
Optional
• Does your organization have specific internal controls-related requirements that may
require the implementation of segregation of duties or update restrictions?
Important By carefully planning how you will integrate your defined SOD policy with
your setup of user roles, role permissions, and role membership, you may avoid SOD
policy violations that require configuration rework.
• Does your organization have specific requirements regarding password aging for all
its systems?
• Do external regulatory agencies set standards for password complexity, or whether
the logged-in user ID should always display on the screen?
• Does your environment require database or operating system security controls
implemented outside your QAD applications?
Other planning considerations apply if you are setting up security for a multiple-domain
database.
For example, user profiles defined in User Maintenance (36.3.1) apply to all domains in
the system. However, profiles include several generalized codes that are domain specific
such as access location and user type. To prevent validation errors, you should ensure
that these codes exist in all domains.
If you determine how you will use such system-wide data as part of your security planning
effort, you can prevent duplication of effort by having basic information in place when you
create new domains. For more information on this topic, see QAD Financials User Guide.
Comments? Go to [Link]/MfwKHm
8 QAD Security Administration Guide
Table 1.1
Planning, Policies, and Procedures Checklist
Topic Reference
Review all information about security documentation for • This chapter
both the system and Progress prior to installation (or • Installation Guide
software upgrade if applicable). • Progress documents,
including Data
Administration,
Guide, Client
Deployment Guide,
and Programming
Handbook
Review all application-related files to determine the “Operating System
appropriate permission and ownership settings. and Progress
Security” on page 22
Optionally, determine and document any segregation of Setting Up
duties policy requirement. Also document how Segregation of Duties
application resources should be partitioned.
Document the users who should be permitted access to • “Define Users” on
the system and the domains and entities to which they page 106
should have access. This step will require an in-depth • “Specify Access to
knowledge of your organization’s security requirements. Domains and
Entities” on page 115
Document the role or roles to which users should be “Set Up Roles” on
assigned. This step will require an in-depth knowledge page 88
of your organization’s security requirements.
Determine if specific users will require access to “Additional Security
individual fields, sites, general ledger accounts, or for Standard
inventory movement codes for standard application Programs” on
programs. page 181
Consider requirements for policies and/or procedures “Set Up Users” on
regarding the deactivation of old user accounts. To meet page 104
the requirements of many regulated environments, user
accounts can be disabled, but not deleted, once they
have been used to access the system.
Define policies and procedures to be used to assure that
user/role information will be kept current.
Create a high-level overview of your business “Plan a Segregation of
environment and use a top-down approach to define Duties System” on
your segregation of duties requirements. page 205
Determine procedures to be used to create new user “Create a Password
accounts and communicate initial passwords (email, Strategy” on page 32
personal contact, other).
Decide if a simplified access approach is sufficient. This “OS-Based Sign-in
lets users log in based on operating system-level Security” on page 20
security.
Define how often users are required to changed “Expiration Days” on
passwords, and update the corresponding system page 33
security setting.
Topic Reference
Define procedures for failed login attempts, including: • “Security Control” on
• The number of failed attempts before an event notification page 27
should be communicated to the defined security • “Monitor System
administrators Security” on page 35
• Alternatives to email notification
• Reviews of system logs
• Procedures for resetting locked accounts
Define password policies and procedures, including “Create a Password
password composition, length, expiration, and reuse of Strategy” on page 32
previous passwords.
Define appropriate policies and procedures for users “Client-Level Security”
requiring that application sessions be locked using a on page 25
screen saver or comparable mechanism whenever the
user leaves the session unattended.
Table 1.2
Progress and Operating System Checklist
Topic Reference
Determine requirements for Progress-level schema “Progress-Level
security to control access to application database tables. Database Schema
Controls” on page 23
Consider disallowing Progress-level table and field “Progress Editor
access for the blank user ID Access” on page 22
Determine the period of inactivity after which a system “Client-Level
session should be terminated. For each device used to Security” on page 25
access the system, ensure that a screen saver or
comparable utility is set to activate after the defined
period of activity, requiring reentry of the user’s
password to unlock the application session.
Determine whether multiple users share a common Operating system
workstation to access the system and whether documentation
appropriate operating system functionality exists to
adequately support security.
Table 1.3
System Security Parameters, Setup, and Processes Checklist
Topic Reference
Verify and update relevant system control program “Security Control” on
settings, especially those for security. page 27
Define users assigned to the security administrator role, • “Administrator Role”
who will receive email notification of security events on page 30
such as failed logins exceeding a defined threshold. • “Maximum Access
Failures” on page 30
Update system security settings regarding user IDs and “Create a Password
passwords, including: Strategy” on page 32
• Password composition
• Password length
• Password expiration
• Limits on re-use of previous passwords
• Limits on number of failed login attempts
Comments? Go to [Link]/MfwKHm
10 QAD Security Administration Guide
Topic Reference
Determine how system security should be implemented “Additional Security
to protect the integrity of database records. For each for Standard
site, GL account, and so on, specify the appropriate Programs” on
users authorized to access data. page 181
Review users and roles for potential segregation of duty Setting Up
issues and adjust assignments as appropriate. Segregation of Duties
Comments? Go to [Link]/MfwKHm
12 QAD Security Administration Guide
Security Overview
This section discusses the security features available in your system:
Role-Based Access Security 14
Explains roles, role permissions, role membership, and additional types of security.
Password Management 17
Describes how passwords can be managed using Security Control settings.
Sign-in Security 18
Outlines types of sign-in, domain and workplace security, and different types of security
control.
Operating System and Progress Security 22
Describes different types of operating system and progress security, including details on
Progress Editor and Progress-level database information.
Client-Level Security 25
Describes potential client-level security settings that are available with some operating
systems.
QAD Adaptive ERP Security 26
Explains how QAD Adaptive ERP supports certain additional customization and security
options.
14 QAD Security Administration Guide
The system has additional types of security that can be configured for standard programs,
component-based functions, and Adaptive UX.
Roles
A role is a logical subset of activities that describes a user’s business function or set of
responsibilities within a business enterprise. You can define as many roles as required in
the system in order to model your business processes. Roles are created by using Role
Create ([Link]).
Users in the system have at least one role—and possibly several roles. In addition, the
same role can be associated with several users. Before users can sign in to the system,
they must be associated with at least one role.
A role, when associated with a set of application resources, defines the tasks or activities
a user can perform when using the system. The process of associating application
resources to a role defines role permissions. For details see “Role Permissions”.
Roles operate within the context of the domains and entities to which the user has been
granted access. This concept is known as role membership. For details see “Role
Membership” on page 15. A user with multiple roles has access to the sum of the
resources assigned to each.
Role Permissions
Role permissions are defined by assigning a set of application resources to a role using
Role Permissions Maintain ([Link]) in QAD Adaptive ERP or Role Permissions in
Adaptive UX.
• For component-based functions, role permissions control the ability to use the various
types of activity—approve, create, delete, read, and write.
• For standard programs, role permissions control the ability to execute those
programs.
Note Access control can also be defined for fields, sites, GL account updates, and
inventory movement codes using user ID, role, or a combination. For details see
“QAD Adaptive ERP Security” on page 173 and “Adaptive UX Security” on page 127.
The QAD Adaptive ERP application resources defined in the system display in a tree
layout similar to the way the menu looks in the .NET User Interface. To define role
permissions, you select the resources to assign to the role. Once role permissions and
role membership have been defined, when a user opens a workspace, only the
application resources associated with that role display on the application menu. When a
user has more than one relevant role, the application resources that display are
essentially the sum of the user roles.
Example Sophie Woods has been assigned the roles Project Manager and Accountant.
The Project Manager role allows her access to the Customer View function. The
Accountant role allows her access to the Customer Invoice Create function.
Consequently, the following menu choices display when she signs in:
Customer View
Customer Invoice Create
The role-based security that is defined for a function also applies to any associated
functions that are available on the Go To menu for which a user has been granted access.
For example, if you are modifying data in the Customer Invoice Create function, the Go To
menu for that function displays related functions—Daybook Create, for example—for
which you have appropriate permissions.
Role-based security also applies to parts of the system that do not have a user
interface—for example, Web services and API calls, as well as daemons. For more
information on daemons, see QAD System Administration User Guide.
Role Membership
Role membership associates users and roles, as well as the domains and entities in
which that role operates. Use Role Membership Maintain ([Link]) in the QAD Adaptive
ERP and User Access in Adaptive UX to create and maintain role memberships.
For each domain, access can be restricted to one or more entities in the domain. In
essence, role membership defines the context of a particular role by specifying the
meaning of a role within a specific domain and entity.
A user’s role always operates within the context of a domain and entity; you cannot set
access at the domain level. You must explicitly grant access to users to each entity within
the domain. However, entity-level access has meaning in most cases only within financial
functions. Users who will be working exclusively with operational functions such as sales,
shipping, and manufacturing are typically given access to the primary entity of the
domain.
Example Sophie Woods has the role Project Manager for all entities in the Australia
domain. When she accesses the Australia domain, the access privileges for her Project
Manager role apply for all entities within the domain. Her privileges do not apply if she
signs in to a different domain.
Example Roger Spencer has been assigned the role Accountant, but only for the entity
001 Fit & Co Pacific in the Australia domain; his role privileges do not apply for other
entities in the Australia domain or any other domain.
Comments? Go to [Link]/MfwKHm
16 QAD Security Administration Guide
Certain standard programs, described in the next section employ a user ID, role, or
sometimes both in order to control access, as in previous versions of QAD applications.
The system has several types of security that apply to operational programs only. In these
programs, security is defined by user ID, role, or a combination of both.
• Field Security Maintenance ([Link]) limits who can update specific fields. For field
security, specify a user ID.
• Update restrictions functions on the Update Restrictions menu (36.3.7) limit who can
update specific records and create specific issue, receipt, and transfer transactions.
• GL Account Security Maintenance ([Link]) restricts access to GL accounts from
operational functions. Specify any combination of user IDs or roles.
• Site Security Maintenance ([Link]) limits who can create inventory transactions at
secured sites. Specify any combination of user IDs or roles.
• Inventory Movement Code Security ([Link]) lets you grant or deny user access to
shippers and other transactions using specific movement codes at a site. Specify any
combination of user IDs or roles.
For details about setting up operational programs, see “Additional Security for Standard
Programs” on page 181.
The system has additional security for Adaptive UX. This security, which is defined by
role, is managed through Adaptive UX.
• Granular-level security allows you to grant various levels of access to different roles
for all defined resources, including business entities, individual reports, browses, and
KPIs.
• Field security limits which roles have read and write access to fields and field groups.
• QAD Adaptive ERP is designed to operate over the internet with a secure UI and
secure APIs.
• All actions in Adaptive UX are determined by role security.
For details on setting Adaptive UX security, see “Adaptive UX Security” on page 127.
Password Management
The system offers a flexible approach to assigning and managing passwords, based on
the specific requirements of each environment.
Settings in Security Control (36.3.24) determine how passwords are generated,
structured, and controlled. Your strategy can be as complex or as simple as needed to
meet requirements.
You can specify:
• The minimum length of the password, including minimum numbers of numeric and
non-numeric characters
• The number of days passwords are valid and whether the system begins warning
users of the expiration date a given number of days in advance
• The number of days or password change cycles that must pass before a user can
reuse the same password
• The manual or automatic method used to generate temporary passwords
Comments? Go to [Link]/MfwKHm
18 QAD Security Administration Guide
Sign-in Security
The following types of security are enforced at sign in:
• Sign-in security determines whether a user can sign in to an application session
based on their user ID and password. This level of security is always active, although
how it is implemented depends on settings in Security Control.
For example, system administrators can choose to allow valid users to sign in to the
QAD application based on operating system-level access. See “OS-Based Sign-in
Security” on page 20 for details.
Note You also should consider additional access security options at the operating-
system and Progress levels. See “Operating System and Progress Security” on
page 22 for details.
• Domain/entity security limits individual user access to the domains and entities
identified in User Domain/Entity Access Maintain (36.3.4). Using Adaptive ERP users
can open other workspaces in order to access domains and entities for which they are
authorized.
These two types of security are closely related and work together to ensure that users
can only access the business areas that they have been authorized.
Workspace Security
Access to domains and entities is controlled at two points:
• During system sign in
• During the application session
When users start the system, they submit user credentials using the sign in dialog box.
The client authenticates the user by calling the authentication service. If a user’s identity
cannot be verified, sign in to the system fails. This authentication takes place during sign
in for the character UI, QAD Adaptive ERP, and Adaptive UX. The system next checks to
see if the user has access to any domains and entities defined in User Domain/Entity
Access.
This step varies based on the user interface:
• In character, the system checks to see if the user has an assigned domain. If not, an
error is generated, and sign in is refused. If only one assigned domain is found, sign in
to that domain is automatic. A user with access to more than one domain can choose
from a list. The one marked as default in User Domain/Entity Access displays at the
top of the list.
• In Adaptive ERP and Adaptive UX, the authentication service creates a session for
the user, and returns a session ID to Adaptive ERP. Adaptive ERP uses the session
ID to initialize any workspaces (domain/entity combination). By default, this is the
workspace that was active when the user signed out of a previous session. If no
previous session exists, the default domain is used.
Note Sign in to Adaptive ERP can be successful even when the user is not assigned
to a workspace. This is because Adaptive ERP is a container for multiple applications
and also provides access to system administration functions that are not part of any
specific application.
Comments? Go to [Link]/MfwKHm
20 QAD Security Administration Guide
Fig. 2.1
Sign-in Validation from Sign-in Screen
User ID and
User ID and
password
password
from
fromlogin
loginscreen
screen
No
Yes
Yes
Character UI .NET UI
If access to Return
If access to Log in to last Returnuser
usertotoOS.
OS.
multiple
multiple Log in to last Disable account.
used or default. Disable account.
domains,
domains,prompt.
prompt. used or default. Send e-mail.
Send e-mail.
Build
Buildmenus
menus
based on role
based on role
membership
membershipand and
display
displaytotouser.
user.
When the Enforce OS User ID checkbox is selected, the default user ID displayed in the
sign-in screen is the same ID used by the operating system, and the user cannot change
it. This must still be a valid system user ID defined in User Maintenance (36.3.1).
Enforce OS User ID uses Windows environment variables to verify user credentials. An
unauthorized user may potentially be able to reset the %USERNAME% environment
variable in order to gain access to the system, masquerading as a different user. You
should consider this issue carefully when defining your security model.
Subsequent processing depends on whether a password is required for the user:
• If no password is specified in the system user record, sign in proceeds automatically,
subject to proper licensing.
• If the user record includes a password, the system displays a password prompt.
Important If you enable this feature and reset user passwords for the application to blank,
be careful if the Enforce OS User ID checkbox is ever cleared. If you do so without
reentering passwords in user records, anyone can gain access to the system by entering
just a user ID. When you clear this checkbox, the system displays a message to warn you
of a potential security compromise. In addition, if using the Adaptive ERP, it is not
recommended that you reset user passwords for the application to blank. It is relatively
easy to create a new user on an existing Windows machine with an ID that matches one
in the application.
Comments? Go to [Link]/MfwKHm
22 QAD Security Administration Guide
For example, on UNIX platforms, a system administrator should be the owner for most—if
not all—of these files. To restrict access to these files, operating system commands such
as the following for UNIX can be used to limit both Read and Write access to the file
owner.
chmod 600 <database file name>
The standard Progress documentation set provides information about security controls,
including the following documents:
• Database Administration Guide
• Client Deployment Guide
• Progress Programming Handbook
Access to the Progress Editor is available from menu 36.25.80, mgeditor.p. You can use
roles to limit access to the Progress Editor in the same way as any other application menu
programs. Using Role Permissions Maintain, assign appropriate access permissions to
the roles you want to be able to access the Progress Editor, and then assign these roles
to legitimate Progress Editor users.
Another related control that should be considered is to disallow privileges for users
connecting to the application database with a blank user ID. The Disallow Blank User ID
Access option on the Progress Database|Admin|Security menu is available for this
purpose. See the “Maintaining Application Security” section in the Progress Client
Deployment Guide for details.
Selecting this option denies all access privileges to the Progress blank User ID by placing
a leading exclamation point (!) in each table and field permission specification for the
database. See the next section for details.
Select the NextField option to define access specifications at the individual field level as
well.
These access specifications are enforced at compile time. Users are prevented from
writing and executing custom source code in the Progress Editor if the code violates
access restrictions.
Comments? Go to [Link]/MfwKHm
24 QAD Security Administration Guide
To provide protection against this exposure, consider using the Progress PROUTIL
function DBAUTHKEY to set a key for a Progress database. See the Progress Database
Administration Guide for details.
Once set, this key is embedded in all r-code compiled against the database. In addition,
any r-code is checked to verify that it contains this key value before it is permitted to
execute. An additional function, RCODEKEY, is available to set or change the key value in
specific r-code entries without recompiling source code.
Client-Level Security
Depending on the operating system of the machines that are running application
sessions, you may be able to combine an application security setting with operating
system features to create an additional security layer at the client level.
The Timeout Minutes field in Security Control (36.3.24) lets you specify the number of
minutes of inactivity that can occur before the system automatically signs a user out of an
application session. Primarily used to reduce the system load resulting from users who
stay signed in when they really do not need to be, this feature also enhances access
security. If you set this to a reasonable number—such as 30—you can prevent users from
inadvertently staying signed in when they go to lunch and leaving an open session that
might be accessed by unauthorized individuals. See the section “Idle Timeout Minutes”
on page 28.
In the character UI, this feature applies only when the application is displaying a menu,
rather than when a program is executing. In the Adaptive ERP, time out is applied
regardless of whether the user is displaying a program screen.
Note To add client security for times when a user leaves a computer unattended while a
program is running, you can use operating system features.
Windows Systems
In many environments, users run the application on a Windows system; for example,
character sessions using a terminal emulator, or Adaptive ERP. You can establish work
procedures that require users to set up their machines to display a screen saver after a
specified number of minutes and enter their Windows password—preferably not the same
one used for the application sign in—to turn off the screen saver.
For details, refer to your Windows system documentation.
Note Depending on the operating system and version running on your Windows
computers, as well as the way users are set up, the system administrator may be able to
configure all machines in this manner and prevent individual users from changing the
settings. Refer to your operating system documentation for details.
Non-Windows Systems
Many standard UNIX machines—including those provided by HP, Sun, and IBM, which
use the Common Desktop Environment (CDE)—offer screen-locking features much like
those in Windows. Set up CDE-based machines using the Style Manager icon on the
Front Panel. Similar features are also available for some LINUX environments. See the
user documentation for your machine for details.
Comments? Go to [Link]/MfwKHm
26 QAD Security Administration Guide
Security Control
This section discusses how to set up basic security in your system.
Define General Security Settings 28
Describes the frames of Security Control and what they are used for.
Create a Password Strategy 32
Describes how to use the Password frame to specify password settings, such as
complexity requirements and expiration dates.
Set Up Email Notifications 34
Describes the circumstances under which the system can automatically send email
notifications to users.
Monitor System Security 35
Describes the automatic features used to help administrators control and monitor security
activities.
28 QAD Security Administration Guide
Idle Timeout Minutes. Specify a number of minutes after which the system
automatically signs out inactive sessions. Set a value in this field to minimize
unnecessary overhead on busy systems. Values can range from 0 through 9,999
minutes.
Note If a nonzero value is entered in this field, the Timeout daemon must also be
configured and started. For more information on daemons, see QAD System
Administration User Guide.
The field also can be used as part of an overall security strategy to prevent users from
inadvertently allowing access to unauthorized individuals. See “Client-Level Security”
on page 25 for details.
If you enter a value, when the system considers a session inactive depends on the UI:
• In the character UI, the time out is applied only when a menu is displaying, such
as Item Data Menu (1.4). If the user is executing a program—Item Master
Maintenance (1.4.1), for example—a session is never automatically signed out.
• In Adaptive ERP, the time out is applied regardless of what the signed-in user is
doing. This is because the load on system resources for inactive users is much
greater in Adaptive ERP.
• This setting does not affect Adaptive UX. Adaptive UX timeout is determined by
values defined in Tomcat settings.
Session Expires Minutes. This field indicates how long the session can be used
before it expires, in minutes. It is not related to the Idle Timeout Minutes setting. Set
this field to a large value, such as 1,440 minutes (24 hours). When the field is set to 0
(zero), sessions never expire.
Enforce Licensed User Count. Use this option to implement enforcement of the total
number of users, sessions, or transactions allowed based on your license agreement.
Not selected (the default): The system issues license violation warnings if you violate
your license agreement, but you are not prevented from completing the action that
caused the violation.
Selected: The system issues a violation error if you violate your license agreement
and you cannot complete your current activity.
The system tracks all license violations, both warnings and errors. License violations can
occur in the following situations:
• In User Maintenance (36.3.1) when you attempt to add users or assign them to
applications
• In License Registration ([Link]) when you assign users to applications
• During user sign in to the system
• When users attempt to use separately licensed applications or non-registered
applications
Important Violation warnings should not occur often; if repeated warnings occur,
contact your QAD representative or distributor for a license upgrade.
Enforce OS User ID. Specify whether the system allows users to access character
sessions for the application based on their operating system sign in. See “OS-Based
Sign-in Security” on page 20 for details.
Not selected: Users must always enter a valid user ID and password.
Selected: Depending on password parameters defined in Security Control, valid users
defined in the system may be able to access the application directly without entering
sign-in information.
Header Display Mode. Use this field to control the information that displays in the
menu and program title bars of programs in the character interface. Valid values are:
0 (Display Date). The menu title bar displays the name associated with the current
domain followed by the current database name defined in Database Connection
Maintenance (36.6.1). The program title bar from left to right includes the program
name, the version of the program, the menu number and title, and the current date
(see Figure 3.2).
Fig. 3.2
Header Display Mode 0
Comments? Go to [Link]/MfwKHm
30 QAD Security Administration Guide
1 (Display User ID). The menu title bar is the same as choice 0. The program title bar
is the same as choice 0 except that the sign-in ID of the current user replaces the
current date. Reading from left to right, the title bar includes the program name, the
version of the program, the menu number and title, and the sign-in ID of the current
user (see Figure 3.3).
Fig. 3.3
Header Display Mode 1
2 (Display Date and Domain). The menu title bar displays only the current database
name defined in Database Connection Maintenance. The program title bar from left to
right includes the short name and currency of the current working domain, the menu
number and title, and the current date (see Figure 3.4).
Fig. 3.4
Header Display Mode 2
3 (Display User ID with Domain). The menu title bar is the same as choice 2. The
program title bar is the same as choice 2 except that the sign-in ID of the current user
replaces the current date. Reading from left to right, the program title bar includes the
short name and currency of the current working domain, the menu number and title,
and the sign-in ID of the current user (see Figure 3.5).
Fig. 3.5
Header Display Mode 3
Some regulatory environments may require the name associated with the user ID of
the signed-in user to be available from any program. In the character interface, you
can use the Ctrl+F key combination to review this information and other context
details.
Maximum Access Failures. Enter the maximum consecutive failed sign-in attempts
allowed before the system disables the user’s sign-in ID. When an account is
disabled, the system sends an email message to the system administrator. See “Set
Up Email Notifications” on page 34 for details.
Leave this field set to zero (0) if you do not want to limit failed access attempts.
Note If you are using electronic signatures, this same value controls the number of
failed signature attempts that are allowed before the system disables the user ID.
Administrator Role. Specify the role assigned to system administrators. The members
of this role receive e-mail notifications when specific security and controlled events
occur; for example:
• When a user account is disabled for too many failed sign-in attempts. See
page 34 for details.
• If you are using electronic signatures, when an electronic signature profile is
activated or a user account is disabled for too many failed signature attempts.
• When an update is made in Security Control. See page 34 for details.
Typically, the administrator role includes a primary system administrator and one or
more alternates.
Comments? Go to [Link]/MfwKHm
32 QAD Security Administration Guide
Important Reason codes are domain specific. During security planning, you should
determine the codes you will use and set them up as part of the system domain. This
way they are copied by default to all new domains.
Client ID. The client ID is required to create tokens for session management. This
value is automatically populated during installation and is linked to Client ID
Maintenance (36.3.12).
Minimum Length. Enter the minimum number of characters allowed for new
passwords. Password cannot exceed 16 characters. Leave the default 0 (zero) to
indicate that a blank password is allowed.
Note Passwords are validated against structure requirements only when they are first
created, rather than each time they are used. To make password structure changes
apply immediately, use Force Password Change Utility ([Link]) to force users to
change their passwords at the next sign in. New passwords must meet the updated
structure requirements. See “Monitor System Security” on page 35.
Min Numeric Characters. Enter the minimum number of numeric characters required
for new passwords. This value plus the value in Min Non-Numeric Characters cannot
exceed 16 and must be the same as or less than the specified minimum length. Leave
the default 0 (zero) to indicate that numeric characters are not required in the
password.
Comments? Go to [Link]/MfwKHm
34 QAD Security Administration Guide
Note The date of the user’s last password change displays in User Maintenance and
User Password Maintenance. The date in printed in Universal Time, Coordinated
(UTC). For more information on the time stamping of transactions outside domains,
see QAD System Administration User Guide.
Warning Days. Enter the number of days before a password will expire when users
are warned of the upcoming expiration date. This must be less than the value of
Expiration Days.
Users are reminded of the expiration date at each subsequent sign in and can
optionally update their passwords immediately or, depending on menu access, update
them in User Password Maintenance.
Comments? Go to [Link]/MfwKHm
36 QAD Security Administration Guide
Secured Configuration
This section describes how to configure your system to secure all aspects of your data
both at rest and in transit.
Overview 38
Describes the system components that can be secured.
Prerequisites 38
Explains certificates and keystores.
Enabling SSL/TLS 40
Describes the steps necessary to enable SSL/TLS for Tomcat.
Setting Up a Secured Configuration 41
Outlines the process of securing your system from end to end.
Platform Runtime Service 42
Explains the properties that must be configured to secure the Platform Runtime Service.
Key Management Service 42
Explains the properties that must be configured to enable KMS.
Database Security 43
Explains the properties that must be configured to enable database security.
Enable SSL for AppServerDCS 47
Provides the properties to configure security for Progress AppServers, which supports
OpenEdge version 12 and is available for Adaptive ERP 2024 users.
Securing Data in Transit 49
Explains the properties that must be configured to secure and encrypt data in transit.
Adaptive UX Support for Encryption 50
Provides the information necessary for Adaptive UX to decipher encrypted data.
Security with Apache Kafka (Optional) 51
Overview
QAD Adaptive ERP supports security features applied to its components, which ensures
data is secure both at rest while on the file system and while in transit. System security is
applied in layers, allowing you to set up end-to-end system security all at once or in
stages. QAD recommends you enable security for your production environment.
QAD Adaptive ERP supports the following security features:
SSL/TLS. All Tomcat instances support secure communication using SSL/Transport
Layer Security (TLS).
Key Management Service. A key management service (KMS) is a lightweight micro-
service that provides API endpoints to secure secret information such as passwords,
client secrets, and API keys.
Database Security. Within a QAD environment, you can secure OpenEdge databases
in two ways.
• Authentication/Authorization, which restricts access at the database or database
table level. Users are required to enter a username and password before they can
log in to an OpenEdge database.
• Transparent Data Encryption, which provides block-level encryption of data while
it is at rest in the file system.
Data in Transit. Data in transit is protected by transferring information encrypted with
SSL/TLS. The components that can use SSL/TLS to encrypt data are:
• Tomcat servers
• OpenEdge databases
Apache Kafka Security. Apache Kafka is used for building real-time data pipelines
and streaming apps. You can secure Kafka connections by encrypting data.
Apache Cassandra Security. Apache Cassandra is a key component in the Adaptive
UX Action Centers and you can secure Cassandra connections by encrypting data.
QAD recommends reviewing this chapter in its entirety before implementing any of the
security features described in it. Only skilled system administrators should enable this
functionality. Contact QAD Support or Services for assistance.
Prerequisites
Your environment must have QXtend and Alerts packages with versions that are at least
equal to the following.
• qxtend-bundled=[Link]
• alerts-bundled=[Link]
Next, acquire a signed certificate for your server and import that certificate into the server
keystore and the keystores of the other components you are securing. These instructions
assume all components are located on the same server.
Certificates
A secured configuration requires at least one X.509 certificate that digitally binds a
cryptographic key to an organization’s details. For a certificate to work without warnings, it
must be signed by a trusted third party, known as a Certificate Authority (CA). After you
have chosen a CA, follow their directions to procure a certificate. If you are using self-
signed certificates, make sure you also configure the appropriate truststores.
Java Keystore
The QAD default keystore is a Java keystore and can only be used with Java
components. The configuration for the default keystore is defined when QAD Adaptive
ERP is installed, and the keystore is created when the first certificate is imported. For
security reasons, QAD recommends changing the default password before importing a
certificate. For detailed information on keystores, see Java documentation.
The QAD default configuration associates all Tomcat instances with the default keystore
([Link]) that is located in build/work/keystore/[Link]. You can
change the location of the keystore by configuring the setting [Link].
To find the keystore with which the Tomcat instance is associated, enter:
> yab config [Link]
[Link]=/dr01/qadapps/qea/build/work/keystore/[Link]
To view the configuration of the default keystore, which includes the default password,
enter:
> yab config [Link].*
[Link]=/dr01/qadapps/qea/build/work/keystore/[Link]
[Link]=changeit
Comments? Go to [Link]/MfwKHm
40 QAD Security Administration Guide
Change the keystore password before importing certificates into the keystore. If the
password is changed after the certificates are imported, the certificates must be imported
again. To change the password, update the following setting in
[Link].
[Link]=<abetterpassword>
After you update the password, remove the existing keystore. If the keystore does not
exist, nothing will be done.
> yab keystore-default-remove
The X.509 certificate must be imported into the keystore that is associated with the
Tomcat instance to be secured. If you are importing multiple certificates into the keystore,
you can use an alias to uniquely identify the certificates. Tomcat uses the first certificate
in the keystore unless the certificates are configured with an alias. You should use aliases
when importing certificates for various QAD instances, such as Adaptive UX, the QAD
Adaptive ERP Home server, the Event Service, and QXtend.
To import a certificate without an alias, enter:
yab keystore-default-import -key:<PRIVATE KEY> -certificate:<CERTIFICATE
CHAIN>
Reverse Proxy
If you are using a reverse proxy, refer to “Reverse Proxy for QAD Adaptive ERP” on
page 353.
Enabling SSL/TLS
SSL/TLS is enabled for QAD by configuring Tomcat. Ensure you have a signed certificate
that has been imported into the default Java keystore before proceeding.
For an overview of SSL, review the Apache Tomcat documentation on this topic. For
example, see:
[Link]
For example:
[Link]=true
[Link]=true
[Link]=true
If you have multiple certificates in the Java keystore, you can use the following setting to
identify the alias of the certificate to use:
tomcat.<INSTANCE>.keyalias=<ALIAS>
For example,
[Link]=cert1
Comments? Go to [Link]/MfwKHm
42 QAD Security Administration Guide
Important Do not use YAB setting references to KMS encrypted properties. For example,
setting foo=${[Link]} would set foo to an encrypted value,
which other parts of the application that reference this value may not be able to decrypt.
Using references instead of explicit property values can lead to unexpected behavior.
The KMS will be active after you complete all secure configuration steps and run a yab
update.
Encrypt Content
KMS encrypts anything defined by the property [Link]. It is recommended
that you do not change the default settings defined for [Link]= and that you
avoid using references to these properties. These default settings safely limit what values
are encrypted, ensuring that you do not encrypt a value that cannot be decrypted and
used by another part of the system.
Default passwords and client secrets are initially stored as plain text in the
[Link] file. To encrypt the passwords and client secrets for Tomcat
instances and Adaptive UX, update the default settings and run the command yab kms-
encrypt-secrets.
Note KMS also encrypts content when you run a full system update with yab update.
Database Security
You can secure the connection to your OpenEdge databases and the files on the
databases. QAD supports defining OpenEdge database users and table access
privileges, and also supports OpenEdge Transparent Data Encryption.
Systems that have multiple databases defined in Database Connection Maintenance
(36.6.1) must have a unique parameter file for each database when database security is
enabled. The parameter file must include the username and password that were used to
secure each database. To determine the necessary username and password, enter:
yab <db>.[Link]
yab <db>.[Link]
Save the username and password in the parameter file with the following syntax:
-U <username> -P <password>
Comments? Go to [Link]/MfwKHm
44 QAD Security Administration Guide
Note If you enable database security and are using Audit DB Maintenance ([Link]),
you must include the application username and password in the parameter file for the
database. See “Manage the Archive Database Server” on page 341 for more information.
Connection User
QAD recommends that you create, at a minimum, a connection user, which is used by the
system to connect to the application, create tables and data, and administer the database
as a system administrator. The connection user is created and managed by the system
and should not reference existing users.
Although it is possible to configure each individual database with a unique connection
user, QAD recommends that you define only one connection user as shown in the
example. The db._base user is propagated to the other databases in the system, which
allows you to have the same username and password for the connection user across the
system. In addition, there is a known OpenEdge driver limitation when querying multiple
databases if they have different passwords.
Important Save OE database username and password values in a separate, secure
location. Failure to do so could result in loss of access to the database if the
[Link] file is corrupted.
Database Users
Optionally, you can set up other database users that are not connection users. The QAD
application does not require these users and does not make use of them. These users
can be granted access to individual databases by defining a specific database instance.
To set up other database users, define the following properties. Replace <INSTANCE>
with the database instance and <NAME> with a unique value for each database user.
[Link]=<username>
[Link]=<password>
[Link]=false
For existing users, set the following property to false. Do not include this property for new
users.
[Link]=false
Note All new users are created and managed by the system based on the
db._base.[Link]= setting, which should have been configured as
true when enabling database security.
To apply the changes, run a yab update.
Before proceeding, ensure that you are familiar with Progress table privilege controls. To
enable OpenEdge database table permissions, you must set up a series of rules to
control which users, tables, and permissions can be accessed or denied. Be careful with
the rules you create to avoid restricting access on too broad a level and do not include the
connection user in database table permission settings. Refer to Progress documentation for
details on database table security. The following properties define table permissions.
[Link]=
[Link]=
[Link]=
[Link]=
If you are not securing any other part of your system, apply the new settings by entering:
yab database-INSTANCE-permissions-update
Comments? Go to [Link]/MfwKHm
46 QAD Security Administration Guide
Encryption Policy
Enabling TDE
To enable TDE, the database must have one of the following licenses:
• OpenEdge Enterprise RDBMS and OpenEdge TDE, or alternatively Advanced
Enterprise Edition RDBMS, which became available with OE11.5 (for production)
• OpenEdge Development Server (for application deployment)
TDE must be configured by your system administrator. To enable TDE, refer to the official
OpenEdge documentation or follow the steps provided here. During this process, you will
add an Encryption Policy Area and execute the ENABLEENCRYTPION command.
Important These actions can be done online and offline, but it is recommended that the
database be running when you define a new Encryption Policy. While it can be completed
with the database offline, the process completes faster with the database running.
Note Do not enable encryption for the compile database, cpldb, or the rcode database,
rcddb.
1 Set the umask for the admin user, typically mfg, to 002 instead of the default 022. This
ensures that the user has write permission to the keystore file <[Link]> and
allows any new file that gets created to be written by the group. While this step does
not impact TDE configuration, it is required for a successful database restore. If you
do not set the umask to 002, a database restore will fail and you will have to change
the permissions so the group can write to the <[Link]> file.
2 Create a structure (.st) file describing the Encryption Policy Area. The area number
must not be in use by another database area definition in the .st file. Enter:
encrypt_policy_area.st
e “Encryption Policy Area”:90,32,64 . f 1024
e “Encryption Policy Area”:90,32,64 .
4 Add the Encryption Policy Area to each database where you are enabling TDE. Enter:
prostrct add <DBNAME> encrypt_policy_area.st
5 Enable encryption and set up a single passphrase. The following command contains
the Autostart option, which is required for QAD Adaptive ERP. This step will prompt
you for a passphrase for the admin user, which you will need again in step 9.
proutil <DBNAME> -C enableencryption -Cipher 2 -Autostart admin
This step performs many tasks on your database. Refer to the OpenEdge
documentation for more detailed information.
6 Compile the list of table names that you want to encrypt by using the OE data
dictionary.
7 Start the databases.
yab database-start
8 Run the following command for each table to be encrypted. This command must be
run once for every table that is to be encrypted.
proutil <DBNAME> -C epolicy manage table encrypt PUB.<TABLENAME> -
Passphrase
9 Open the [Link] file and enter the passphrase for the admin
user specified during step 5.
db._base.keystorepassphrase=<PASSPHRASE>
Comments? Go to [Link]/MfwKHm
48 QAD Security Administration Guide
This security functionality can impact system performance. Your system’s hardware also
can impact performance. To lessen the hit on performance, you can choose to not enable
security on individual AppServers, such as the QRA AppServer, as shown in the following
example.
[Link]=0
[Link]=
[Link]=
[Link]=appserverdc
PASOE supports TLS/SSL transport security. The officially supported version is TLS 1.2.
For more information about protocols, ciphers, and certificates, see Progress
Documentation.
Example To configure security in the environment, add the following YAB properties:
# build/config/[Link] or similar configuration recipe file
# Example configuration:
[Link]=[/your/drive/certificates/[Link]]
[Link]=JKS
[Link]=[your-passphrase]
[Link]=[your-wildcard-certificate-alias]
Note You can define the PASOE settings at the base type level where all PAS
instances inherit from.
In order to protect and encrypt data, you must have certificates, and your system must be
configured to point to those certificates. Configure OpenEdge with the correct certificates
for your setup. Refer to Progress documentation for details.
Comments? Go to [Link]/MfwKHm
50 QAD Security Administration Guide
Tomcat Configuration
To configure Tomcat for secure data in transit, a certificate must be placed in a Java
keystore.
Important The password for the certificate’s private key must match the password for the
keystore.
tomcat._base.enablesecure=true
tomcat._base.usehttp=false
tomcat._base.keystore=<path to your keystore>/[Link]
tomcat._base.keystorepassword=<keystore password>
tomcat._base.usessl=true
[Link]=true
[Link]=true
[Link]=true
[Link]=true
encryptionmethod=ssl
protocolversion=TLSv1.2
ciphersuites=TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256
validateservercert=true
If you need to configure a truststore with a certificate, include the following.
# @append ;
dbserver._base.[Link]=TrustStore=<path to
truststore>;TrustStorePassword=<truststore password>
Note When you set up the truststore password, do not use a reference to other
properties, such as Tomcat keystore password.
After the system has updated, you can verify your settings by entering yab config
dbserver._base.* and reviewing the output.
After you have updated all relevant properties, review the [Link]
file and then run yab update.
By default when you install Adaptive UX, Kafka connections are not encrypted. It is
recommended you obtain certificates and enable security so your data is encrypted.
Comments? Go to [Link]/MfwKHm
52 QAD Security Administration Guide
When enabled, a certificate, stored in a keystore, is required on the client side. Enter the
following settings in the [Link] file.
[Link]-keystore=<path to the client keystore in JKS format>
[Link]-keystore-password=<the keystore password>
[Link]-key-password=<the key password>
If the certificate is signed by a trusted CA, no extra properties are needed for the server
side.
If the certificate is self-signed, configure the server truststore. Enter the following settings
in the [Link] file.
[Link]=<path to the server
truststore>
[Link]=<server truststore password>
[Link]=JKS
Credentials Authentication
Credentials authentication uses Simple Authentication and Security Layer (SASL) to
authenticate the Kafka server and client connection with a username and password. To
enable credentials authentication, update the security protocol setting in the
[Link] file.
[Link]=SASL_SSL
The following simple example uses plain username and password. For the server side,
enter these properties in the [Link] file:
[Link]=<Kafka username>
[Link]=<Kafka password>
[Link]=PLAIN
[Link]=PLAIN
[Link]=PLAIN
[Link].sasl_ssl.[Link]=
[Link] required username=
"${[Link]}" password="${[Link]}"
user_${[Link]}="${[Link]}";
For the client side, enter the following properties in the [Link] file:
[Link]=
[Link] required username=
"${[Link]}" password="${[Link]}";
After you have updated all relevant properties, review the [Link]
file and then run yab update.
See Apache Kafka documentation for more information.
Enable SSL
When you install Adaptive UX, Cassandra connections are not encrypted by default. It is
recommended that you obtain certificates and enable security to encrypt your data.
Comments? Go to [Link]/MfwKHm
54 QAD Security Administration Guide
To enable SSL on the server side, set the following properties in the
[Link] file.
[Link].client_encryption_options.enabled=true
[Link].client_encryption_options.keystore=<keystore
path>
[Link].client_encryption_options.keystore_password=
<keystore password>
[Link].client_encryption_options.optional=false
[Link].client_encryption_options.protocol=TLS
If the server certificate is signed by a trusted CA, no extra properties are needed. If the
server certificate is self-signed, you must enable SSL on the client side. Enter the
following settings in the [Link] file.
[Link]-truststore=<truststore location>
[Link]-truststore-password=<truststore password>
The client requires a certificate, which is stored in a keystore. Enter the following settings
in the [Link] file.
[Link]-keystore=<keystore path>
[Link]-keystore-password=<keystore password>
[Link]-key-password=<key password>
If the server-side certificate is signed by a trusted CA, no extra properties are needed.
Self-signed certificates require a server truststore. Enter the following settings in the
[Link] file.
[Link].client_encryption_options.truststore=<path to
truststore>
[Link].client_encryption_options.truststore_password=
<truststore password>
Credential Authentication
Authentication with credentials is independent of SSL and can be enabled independently.
To enable credential authentication, define these settings:
[Link]=PasswordAuthenticator
[Link]=CassandraAuthorizer
[Link]=<cassandra username>
[Link]=<cassandra password>
After you have updated all relevant properties, review the [Link]
file and then run yab update.
The system administrator must secure the port by using an external or internal firewall,
such as iptables on Linux systems.
In addition to securing the port, you should enable HTTPS for Nifi. The following sections
list the settings you must add to the [Link] file to turn on and
configure the system for HTTPS. Contact QAD Services for assistance.
After you have set the [Link] property to true, define the settings for the
Nifi server and its keystore and truststore. You can use the same keystore and certificate
you used for Tomcat. See “Java Keystore” on page 39.
[Link]=<keystore>
[Link]=<key password>
[Link]=<keystore password>
[Link]=jks
[Link]=
${[Link]}/conf/[Link]
[Link]=<truststore password>
[Link]=jks
QAD recommends using a self-signed certificate that YAB generates and uses for API
calls. This certificate gets stored in the Nifi server truststore. If you choose to use a CA-
signed certificate, see “CA-Signed Certificate for YAB API” on page 56.
[Link]=true
[Link]=admin
[Link].o=<organization or company name>
[Link].l=<locality/city>
[Link]=<state or province name>
[Link].c=<country name>
[Link]=2
Comments? Go to [Link]/MfwKHm
56 QAD Security Administration Guide
Skip this section and move on to “Nifi Client Certificate Configuration Settings” on
page 56 if you are using a self-signed certificate for YAB to use for API calls.
1 Set the following property to false:
[Link]=false
2 Place the CA-signed certificate in the server truststore configured in Nifi Server
Settings. The three relevant properties are:
[Link]=
${[Link]}/conf/[Link]
[Link]=<truststore
password>
[Link]=jks
Next, for both self-signed and CA-signed certificates, configure the client settings.
[Link]=cert
[Link]=
${[Link]}/conf/[Link]
[Link]=<keystore password>
[Link]=jks
[Link]=nifi-admin-client
[Link]=<keystore>
[Link]=<keystore password>
[Link]=jks
Nifi Troubleshooting
In rare instances, background processes may stop unexpectedly. If you cannot resolve
the issue from the Background Processing screen in Adaptive UX, check the following
logs for error details.
• build/logs/nifi/default/[Link]
• build/logs/nifi/default/[Link]
• build/logs/nifi/default/[Link]
• servers/tomcat-webui/logs/[Link]
Authentication
This section describes how to set up authentication for your system.
Overview 58
Describes authentication.
User Authentication 58
Describes how the system validates the identity of a user.
API Authentication 69
Describes the methods that can be used for API authentication.
Smart Card Authentication 70
Describes the properties that must be set to configure smart card authentication.
SAML Single Sign-On 74
Explains the properties necessary to enable single sign-on using Security Assertion
Markup Language.
58 QAD Security Administration Guide
Overview
Authentication is a process that ensures and confirms a user’s identity. When logging in to
the system, users provide their usernames and passwords for authentication. The
combination of username and password is used to authenticate access. Authentication is
not the same thing as authorization, which determines what a user is able to see and
what tasks that user can complete.
User Authentication
User authentication validates the identity of a user. QAD supports user validation through
the following methods:
• Lightweight Directory Access Protocol (LDAP)
• Internal
LDAP Authentication
LDAP is a well-known standard for connecting to directory services to access common
enterprise services such as authentication, user, and group information. LDAP
authentication should not be confused with single sign-on (SSO), because users still must
enter their username and password. Centralizing authentication reduces the
administrative burden of enforcing password policies and simplifies the login experience
for end users by allowing the same credentials to be used across applications and
enterprise services. This type of external password management is considered a best
practice.
LDAP authentication can be configured to communicate with a directory service such as
Active Directory or OpenLDAP, and supports multiple LDAP providers. A user can be
associated with only a single LDAP provider at a time.
Internal
Enterprise Edition offers an internal authentication mechanism. QAD stores user
passwords in a database and uses the PBKDF2 algorithm for password hashing to better
protect against hackers reverse engineering the passwords.
During user synchronization, a QAD application makes a DSML search request and then
receives a DSML search response. Any data needed for user provisioning not included in
the DSML response can be supplied by an attribute mapping file.
To configure user synchronization:
1 Configure Java Keystore.
2 Install DSML Gateway.
3 Review and Update Directory to QAD Database Mappings.
4 Download QAD Adaptive ERP.
5 Configure SYNC reason code.
6 Configure Alternate Country Code.
7 Verify LDAP Instance Definition for DSML Gateway Using User Sync.
8 Test LDAP.
Comments? Go to [Link]/MfwKHm
60 QAD Security Administration Guide
The previous settings support a single LDAP service. When multiple services are
required, use the following steps as an example.
1 Open the build/config/[Link] file.
2 Add the new opendj instance for a second LDAP service.
@extends webapp._base
Note Do not enter a value for webapp.opendj2. This is the configuration syntax for
defining a new instance of the webapp type. This example creates “opendj2” webapp.
This token can be any valid identifier, but ensure that the type is defined as “opendj.”
[Link]=. The name of the webapp that gets deployed; in this
example, opendj2.
[Link]=. A parameter required for YAB. Leave as
${[Link]}
[Link]=. opendj
[Link]=. The host name of the underlying directory server.
[Link]=. The LDAP port of the underlying directory server.
Default: 636.
[Link]=. The DN used by the DSML gateway to bind to the
underlying directory server.
[Link]=. The password used by the DSML gateway to
bind to the underlying directory server.
Comments? Go to [Link]/MfwKHm
62 QAD Security Administration Guide
Planning is required so that the values in the customized attribute mapping file match
what is expected by the QAD application. For example, in QAD Enterprise Edition, active
users must have an active user reason code assigned. The reason codes themselves
must first be defined using Reason Codes Maintenance (36.2.17).
Mapping between the LDAP directory attributes and the QAD database records is defined
in the [Link] file. Reviewing the [Link] file requires some familiarity with
LDAP attribute usage. You should review the directory using a tool such as Active
Directory Explorer or JXplorer. You should also have some familiarity with QAD database
tables as described in the QAD Database Definitions Technical Reference.
The default [Link] file is located in a path such as:
.../build/catalog/packages/mfgcoreplus/n/n/n/n/[Link]/config/us
[Link]
You must edit this file and define the attribute mappings that are needed based on how
the Active Directory is organized.
Zero or many map elements may be associated with an attribute. If no mapping elements
are present, the attribute value is not replaced.
Map Element Attributes
Attribute name Required Description
key true The case insensitive mapping key that is used when matching an attribute
value.
value true The mapping value that will replace the original value.
Example [Link]
<user>
<attributes>
<attribute name="c" tableName="usr_mstr" fieldName="usr_ctry_code" overwrite="false">
<map key="U.S.A" value="US" />
<map key="AU" value="AUS" />
</attribute>
<attribute name="mail" tableName="usr_mstr" fieldName="usr_mail_address" overwrite=
"true" />
<attribute name="c" tableName="usr_mstr" fieldName="usr_lang" defaultValue="US"
overwrite="false">
<map key="U.S.A" value="US" />
<map key="AU" value="US" />
<map key="DE" value="GR" />
</attribute>
</attributes>
</user>
Comments? Go to [Link]/MfwKHm
64 QAD Security Administration Guide
Multiple
Attribute Name Alias Description Values Syntax
st stateOrProvinceName State false DirectoryString
street streetAddress Street address false DirectoryString
uid userid Username false DirectoryString
Syntax
Attribute Name Format Description Example
Generalized Time YYYYMMDDHHMMSS[.| Time stamp "19991106210627.3Z" =
,fraction][(+|-HHMM)|Z] Nov 6, 1999 21:06:27.3
UTC
DN cn=<value>,ou= Distinguished name. cn=Ben Gray,ou=
<value>,o=<value>,c= Comma delimited list editing,o=New York
<value> of name/value pairs Times,c=US
(RFC 2253)
DirectoryString UTF-8 encoded QAD Inc.
string
Integer Whole number of 12345
unlimited magnitude
Once the attribute mapping in [Link] is complete, you can proceed with
configuring QAD Enterprise Edition.
3 Click Next.
Verify LDAP Instance Definition for DSML Gateway Using User Sync
Note You should have your LDAP/Active Directory administrator present when
connecting to the authentication server during initial setup and configuration.
QAD Enterprise Edition configures the DSML gateway instance for you. You can verify the
configuration by testing one user.
Use User Maintenance (36.3.1) to sync one user at a time. This method is useful for
debugging your connection methodology before starting batch imports, updates, or
deletes.
1 Select the user you want to sync.
2 Select Next until the Active Directory fields are enabled at the bottom of the screen.
Comments? Go to [Link]/MfwKHm
66 QAD Security Administration Guide
Fig. 5.1
User Maintenance
7 Click Next. If the sync completes successfully, the user record displays information
from the LDAP server, which can include user details in the Remark field.
8 Check the [Link] and [Link] log files for errors.
These files are usually found in your working directory:
./build/work/client/[Link]/[Link]
./build/work/client/[Link]/[Link]
Once you have successfully synced one user, you can use the LDAP Distinguished Name
information in Active Directory User Sync (36.3.11) or the Sync Users action on Users in
Adaptive UX to create, update, or deactivate a single user or groups of users. Adaptive
Directory User Sync and the Sync Users action perform the same function.
If you are continuing the process in QAD Adaptive ERP, remove the user information from
the connection string of the one user you just synced.
• To update users, enter the remaining LDAP Distinguished Name information in the
Update Search Root field.
• To deactivate users, enter the remaining LDAP Distinguished Name information in the
Deactivate Search Root field.
The following example uses the memberof function to add multiple users at once. You
must add users to a group to use this functionality.
Fig. 5.2
Active Directory User Sync
Comments? Go to [Link]/MfwKHm
68 QAD Security Administration Guide
Fig. 5.3
Sync Users
1 Open Active Directory User Sync (36.3.11) or Sync Users, and set the following fields.
Create Users. Selected
Update Users. Selected
Update Search Filter. (memberof=xxx) This field identifies the group being added
and is required when Update Users is selected.
Note Use your memberof ID rather than xxx.
Note In Adaptive UX, select roles one at a time from the lookup. Make the first role
you choose the earliest in the alphabet, because upon subsequent launches of the
lookup, you only see those roles that alphabetically follow your first selection. For
example, if you first choose the required webui_user role, the next time you open the
lookup, you would not see any roles that precede webui_user.
User Licenses. Specify or select from the lookup the licenses to assign to these
users.
Note In Adaptive UX, select licenses one at a time from the lookup. Make the first
license you choose the earliest in the alphabet, because upon subsequent launches
of the lookup, you only see those licenses that alphabetically follow your first
selection. For example, if you first choose MFG/PRO, the next time you open the
lookup, you would not see any licenses that precede MFG/PRO.
Deactivate Users. Do not select this checkbox. Leave subsequent Deactivate-related
fields blank.
LDAP Instance Name. The LDAP instance name as specified in LDAP Instance
Maintenance
Search UserID. domain\UserID. This field identifies a user that can authenticate
against the directory to get access to the directory data. This field is required.
Search User Password. Enter the password for the user specified in Search UserID.
This field is required.
2 Click Next.
After processing is complete, you can check output files for more details on the
transaction. A system message directs you to the location of the output files. For
example,
Review these files for results:
/qad/sbox/007/user/mbs/04/env/build/work/client/[Link]
/qad/sbox/007/user/mbs/04/env/build/work/client/[Link]
Test LDAP
To verify your LDAP setup outside of Enterprise Edition, use a debugging tool such as
JXplorer.
[Link]
API Authentication
QAD supports the following specifications for API authentication.
• HTTP Basic is the simplest way of enforcing access control to web resources by using
the HTTP authentication header. Username and password information is sent as
base-64 encoded text.
HTTP Basic is not recommended due to performance and security issues. Systems
using HTTP Basic see significant performance degradation because credentials have
to be reauthenticated with every request. Also, it presents security risks because
authentication is done over unencrypted channels.
Comments? Go to [Link]/MfwKHm
70 QAD Security Administration Guide
• OAuth 2 provides a more secure way for REST API clients to authenticate users
without sending user credentials with each request. The OAuth 2 Specification
requires a client to receive an access token and then pass the token to the resource
sever as part of the request.
The OAuth 2 password grant flow can be used to generate access and refresh tokens
for an API user. To use this flow, the client application makes a POST request to the
server with the following parameters.
Table 5.1
OAuth 2 Parameters
Property Description Example
client_id The client ID. See “Client ID and Client Secret” for client_id=
details. Client secret is not required for the POST f2axx5f024fae0ac4b5460
request. 7f308d1ce5
grant_type OAuth2 grant type. Use the “password” grant type. grant_type=password
username User ID JonDoe
password Password password1234
client_id=f2axx5f024fae0ac4b54607f308d1ce5&grant_type=password&username=
JonDoe&password=password1234
See RFC-6749 for the OAuth 2 Authorization Framework.
Fig. 5.4
Smart Card Authentication Sequence Diagram
When using an Apache reverse proxy server, the validation is done by the reverse proxy
and the certificate is forwarded to Tomcat. See Chapter 14, “Reverse Proxy for QAD
Adaptive ERP,” on page 353 for more information.
The National Institute of Standards and Technology publishes the specifications for
cryptographic algorithms and key sizes for personal identity verification, which includes
using X.509 certificates. Their document is available at
[Link]
Define Properties
The only configuration file that you should modify is the [Link] file,
which is used to record changes to the standard configuration defaulted by the system.
Comments? Go to [Link]/MfwKHm
72 QAD Security Administration Guide
Tomcat Properties
Apache Tomcat is the servlet container that hosts the QAD application. Tomcat can be
configured to enable client certificate authentication. Define the properties described in
Table 5.2 to configure Tomcat.
Table 5.2
Tomcat Configuration Properties for Smart Card Authentication
Property Description Example
[Link] Configures the clientAuth attribute in the Tomcat [Link]=
connector. Possible values are: want
• false–Default value. No client certificate is required
and any client can connect.
• true–All clients must provide a certificate. The server
does not allow a connection without a certificate.
• want–Recommended value. Clients are asked to
provide a certificate if available, but the server allows
a connection without a certificate. Clients can log in
via a certificate when qad-
[Link]=true.
[Link] The trust store file to use to validate client [Link]=
certificates. If no value is set, the default file /path/[Link]
$JAVA_HOME/jre/lib/security/cacerts is used.
[Link] The password to access the trust store [Link]=
ss passphrase
Table 5.3
Certificate Configuration Properties for Smart Card Authentication
Property Description Example
qad- Enables certificate-based qad-
[Link] authentication. Default [Link]
bled value: false. abled=true
[Link]- The regular expression to [Link]-
principal-regex extract the principal from principal-regex=emailAddress=
the certificate, where the customer@[Link].
principal is a string that [Link]-
identifies the user. principal-regex=userID=qad
Default value:
emailAddress=(.*?)(?:,|$).
The default setting attempts
to retrieve the email
address from the certificate.
You must adjust this setting
if your certificate is
configured differently.
Other supported value:
• User ID from User
Maintenance
[Link] Required when using an [Link]
Apache reverse proxy. The
server name of the Apache
reverse proxy host.
[Link] The client ID. See “Client ID [Link]=
and Client Secret” ad75fe81eb6462b53e14846be83efee
e
qad- The client secret. See qad-
[Link] “Client ID and Client [Link]=
Secret” 4lSkeOGuYm/rz57L+TOGWjNU5+Ls
2ibgVtZg7dile2M=
qad- Optional. The token’s qad-
[Link] expiration, in seconds. [Link]
s Default value is 300. ds=300
2 Update your environment. To run only the specific steps related to smart card
authentication, enter:
> yab webapp-webshell-config-content-update tomcat-webui-update tomcat-webui-
stop tomcat-webui-start
To update your entire environment, enter:
> yab update
When using an Apache server configured as a reverse proxy to validate and extract the
client certificate, you must add the Apache reverse proxy configuration as root and restart
the httpd service. See Apache documentation for setup instructions.
Comments? Go to [Link]/MfwKHm
74 QAD Security Administration Guide
After the reverse proxy configuration is defined, create a location for a certificate client
authentication entry point. This location ensures the client certificate is requested when
accessing the main smart card authentication entry point.
<Location alias/[environment-alias]/certificate/login>
RequestHeader set SSL_CLIENT_CERT ""
RequestHeader set SSL_CLIENT_VERIFY ""
RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s"
RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"
RequestHeader add X-Forwarded-Scheme https
SSLVerifyClient
SSLVerifyDepth 5
SSLOptions +ExportCertData
</Location>
Note [environment-alias] is the proxy alias location for the actual configured
environment.
Refer to Apache documentation for appropriate SSLVerifyDepth values, which depend
on the type of certificates and length of chained SSL certificates.
In addition, ensure that a CA is configured to validate the provided client certificates. This
directive is global for SSL setup and cannot be specified on a <Location> directive. The
Apache configuration has the following directive that points to a CA certificate file:
# Certificate Authority (CA):
SSLCACertificateFile "/etc/pki/tls/certs/[Link]"
The only configuration file that you should modify is the [Link] file,
which is used to record changes to the standard configuration defaulted by the system.
To apply your configuration, follow these steps:
1 Define your configuration settings in the [Link] file located in
the build/config/ folder.
This file only contains settings that differ from the base product configuration
(build/config/system) and initially may be empty. To override a setting, add the
property to this file and define the value. If the property is already defined in the file,
you can adjust the value. You can view a [Link] file with SAML
SSO examples on page 79.
Define the properties described in Table 5.4 to enable and configure SAML SSO.
Table 5.4
SAML SSO Configuration Properties
Property Description Example
[Link] Set to true to enable SAML [Link]=true
SSO functionality. If the
property is missing, has an
empty string, or has any value
other than true, SAML SSO is
disabled.
qad- The amount of time, in seconds, qad-
[Link] that the system allows users to [Link]
[Link] remain signed in with each [Link]=259200
single sign-on. This optional
setting defaults to 259200
seconds (72 hours).
[Link] An arbitrary string that serves [Link]=
as the SP entity ID. QAD always [Link]
sets this as the URL to the
service provider. Value must be
unique within an IdP.
[Link] The alias for an IdP that is used [Link]=
as a request parameter for the onelogin
SSO process. See “Identity
Provider Properties”
qad- Defines the URL from which IdP qad-
[Link] metadata is taken. Each IdP [Link]=
has a unique metadata URL for [Link]
each SP within it. See “Types of ata/958214
Metadata URL Properties”
[Link] Defines the link to the page to [Link]=
which users are redirected if [Link]
they select Sign Out. URLs can
be relative or fully qualified.
Relative URLs must start with a
forward slash.
[Link] The client ID. See “Client ID and [Link]=
Client Secret” avcf0aerb2b32dbc3l14c390502c5900
Comments? Go to [Link]/MfwKHm
76 QAD Security Administration Guide
2 Update your environment. To run only the specific steps related to SAML SSO, enter:
> yab webapp-webshell-config-content-update tomcat-webui-stop tomcat-webui-
start
To update your entire environment, enter:
> yab update
2 File URL. Metadata is picked up from a file placed somewhere on the file system. The
URL must start with file: followed by the file system address of the file where the
IdP metadata is located. The configuration may look like:
[Link]=file:/qad/local/sandbox/team/webui-
sm2/config/onelogin_metadata_769206.xml
3 HTTPS URL. Metadata is downloaded via HTTP from a URL. The URL must start
with https and represent an internet address where the IdP metadata is located. The
configuration may look like:
[Link]=[Link]
Important It is not recommended to use HTTPS URL metadata downloading due to the
possibility of a Man in the Middle attack.
While these URL types can be mixed in one configuration set, it is not recommended.
At least one set of IdP properties should be set for alias, [Link], and
[Link]. The set with an index value of 0 is considered the default and is used if no
IdP parameter is used with the /saml/login URL.
You can create additional groups of the alias, [Link], and [Link]
properties by changing their index numbers. By default, you can set four sets of indices,
from 0-3. For example:
[Link]=<IdP alias>
[Link]=<IdP metadata URL>
[Link]=<URL to logout page>
The client ID and client secret settings can be created in either QAD Adaptive ERP or
Adaptive UX.
Note QAD highly recommends that you generate a new client ID for each application that
is calling an API so you can identify the individual applications. For example, you should
have a separate client ID and secret for SAML SSO, smart card authentication, and
OAuth2. Only use the new IDs for their defined purposes.
1 Go to Client ID Maintenance (36.3.12) in QAD Adaptive ERP or Client IDs in the QAD
Adaptive UX. In Adaptive UX, select New.
2 Select Generate to create a new client ID and client secret.
Fig. 5.5
Client ID Maintenance (QAD Adaptive ERP)
Fig. 5.6
Client IDs (QAD Adaptive UX)
3 Enter a description of the generated client ID and select the Active checkbox. Click
Next in Adaptive ERP or Save in Adaptive UX to save.
Comments? Go to [Link]/MfwKHm
78 QAD Security Administration Guide
Fig. 5.7
New Client ID and Secret
Note The Client Secret value should be kept confidential. It should not be available
outside of the [Link] file, which itself should have appropriate OS
permissions set. If at any time this value is compromised, generate a new secret and
update your [Link] file.
When SAML is enabled and properly configured, users who have logged in using SAML
are redirected to an IdP-specific logout URL when they select Sign Out. The URL is
configured with the [Link].[index].[Link] property.
Note All other login and logout cases use the [Link] and are not
SAML specific. If this property is not defined, the default value is:
[Link]=/resources/[Link]
SAML Endpoints
SAML functionality can be used with the following endpoints.
Table 5.5 SAML Endpoints
Endpoint Description
/saml/login SSO with IdP configured with [Link].0....
properties.
/saml/login?idp=your_alias SSO with IdP configured with qad-
[Link].[index].alias=your_alias and the related
properties of [Link].[index].[Link]
and [Link].[index].[Link].
/saml/metadata Generation service provider metadata XML file.
/saml/metadata File
The /saml/metadata file contains information, such as service provider ID (entity ID) and
SSO endpoints (AssertionConsumerService), that can be used to set property values in
the [Link] file. It can be useful to have the /saml/metadata file
available while you are entering data in the [Link] file. Following is
a sample /saml/metadata file.
<?xml version="1.0" encoding="UTF-8"?>
<md:EntityDescriptor
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID=
"https___customer.qad.com_clouderp_devl" entityID=
"[Link]
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="[Link]
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
Redirect" Location="[Link]
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-
format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-
format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-
format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-
format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-
format:X509SubjectName</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" Location="[Link] index="0"
isDefault="true"/>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
Artifact" Location="[Link] index="1"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
# SAML SP configuration
[Link]=[Link]
Comments? Go to [Link]/MfwKHm
80 QAD Security Administration Guide
enable single sign-on for the QAD Adaptive ERP, create a shortcut on your desktop and
enter a URL that contains the Adaptive UX base URL combined with the QAD Adaptive
ERP URL for the menu item key of the .NET screen you want to land on. The following
steps describe one way to create and populate the shortcut.
1 Open Notepad and save the file with a URL extension. For example, [Link]
2 In the Notepad file, enter the following:
[InternetShortcut]
URL=[Link] name>/<app name>/link/netui/menu?menuitem-key=<menu item
key>
3 In the URL, replace //<server name>/<app name> with the base URL for your Adaptive
UX instance. The app name is likely to be either clouderp or qad-central; for
example, //[Link]/qad-central.
4 Determine the page on which you want to land in the QAD Adaptive ERP. In .NET,
right-click on that page in the Applications menu and select Properties.
Fig. 5.8
Properties
5 In the Properties dialog box, highlight and copy the Key value text. For many menu
items, this value is the menu item number, such as 1.4.1. For others, including the
Home Page and all Enterprise Asset Management screens, the value is a string of
letters and numbers.
Fig. 5.9
Key Value
6 In the Notepad file, replace <menu item key> with the Key text you copied in the
Properties dialog box.
7 Your file should look similar to:
[InternetShortcut]
URL=[Link]
The [Link] file can be modified during runtime and the changes are applied within
10 seconds.
Comments? Go to [Link]/MfwKHm
82 QAD Security Administration Guide
When client ID or client secret values are not properly configured, an error occurs during
authentication and the following message appears on Adaptive UX sign-in screen:
Unable to sign in: access token did not pass validation.
The JWT-related values of client ID or client secret did not pass Business Layer validation
because of inconsistencies between the values stored on the Business Layer and the
JWT-related properties stored on Tomcat.
Solution: Ensure the properties for [Link] and qad-
[Link] in [Link] are identical to the
values configured in Client ID Maintenance (36.3.12) for the SAML SSO-specific Client ID
and Client Secret values.
When an error occurs during SAML validation, the following message appears on
Adaptive UX sign-in screen:
Unauthorized. Authentication Failed: Error validating SAML message.
The destination and recipient endpoints could be incorrectly defined in two different ways.
The endpoints may not match because a direct server URL is being used or because the
IdP SSO request URL differs from what has been defined.
1 The SAML SSO API (saml/login) must match the property defined for qad-
[Link]. If the SAML SSO API is invoked using a direct server URL
and the [Link] property refers to the URL of a reverse proxy,
the validation fails.
2 The IdP SSO request URL must match the property defined for qad-
[Link]. An error occurs when the RP server setting in [Link]
on the Apache server differs from the URL configured for qad-
[Link].
Solution: Ensure the proxy URL defined for [Link] is used for the
SAML SSO API and the IdP SSO request URL.
The Audience value of the IdP differs from the SP entity ID defined for qad-
[Link] in [Link].
Solution: Ensure the Audience field value in the IdP configuration is the same as the
[Link] property in the [Link] file.
Comments? Go to [Link]/MfwKHm
84 QAD Security Administration Guide
Overview
Role-based access control is a security mechanism that is designed to work with two
basic user-defined elements: users and roles. Role-based access control limits users to
executing only the system menu items belonging to their assigned role or roles.
Figure 6.1 illustrates the interaction of system users, role permissions, and role
membership to determine the resources that are available to a user.
Fig. 6.1
Users and Roles
Users
Users
(Pamela)
(Pamela)
Application Resources
Application Resources
Standard
Standardprograms
programs
(Sales
(SalesOrder
Order
Role
Rolemembership
membership Role
Role Maintenance)
Maintenance)
(Domain
(DomainA, A, (Sales
(SalesOrder
OrderEntry
Entry
Entities
Entities11and
and2)2) Clerk)
Clerk)
Component
Componentactivities
activities
(Customer
(CustomerView)
View)
Pamela
Pamelahas
hasaccess
accesstotoSales
SalesOrder
OrderMaintenance
Maintenanceandand
Customer
CustomerView
ViewininDomain
DomainA,A,Entities
Entities11and
and22
Fig. 6.2
Roles and Users Setup Flow
Note The overall flow used to set up users and roles is consistent between QAD
Adaptive ERP and Adaptive UX. The following workflow contains information specific to
QAD Adaptive ERP. For Web UI-specific information, see “Role and User Workflow in
Adaptive UX” on page 128.
1 Create roles in Role Create ([Link]) in Adaptive ERP or Roles in Adaptive UX. All
system users must be assigned to a role before they can access the system. For
details, see “Set Up Roles” on page 88.
2 After creating user roles, define role permissions using Role Permissions Maintain
([Link]). Role permissions determine which menu-level programs and activities a
user can execute; they also determine a small number of non-menu level permissions.
For details, see “Define Role Permissions” on page 101.
3 Create system users in User Maintenance (36.3.1) in Adaptive ERP or Users in
Adaptive UX, either manually, or automatically using LDAP for user synchronization.
This step identifies each user to the system by providing them with a unique ID. You
also provide basic user information to ensure that system data for each user is
correctly displayed and processed, as well as specify security-related access settings
and licensed applications. For details, see “Set Up Users” on page 104.
4 Specify user access to domains and entities in User Domain/Entity Access Maintain
(36.3.4). For details, see “Specify Access to Domains and Entities” on page 115.
5 Then use Role Membership Maintain ([Link]) to assign users to roles and specify
the role context—that is, how the role operates within domains and entities. For
details, see “Define Role Membership” on page 119.
6 If you are implementing EAM, you must complete additional setup in QAD Adaptive
ERP, such as downloading the users to EAM that you created in step 3 and linking the
EAM administrative user to a site. See the QAD Enterprise Asset Management User
Guide for detailed information.
7 If you plan to implement segregation of duties, it is best to implement this internal
control prior to defining roles and role permissions. Once associations between
application resources and segregation of duties categories have been defined, role
Comments? Go to [Link]/MfwKHm
88 QAD Security Administration Guide
Set Up Roles
Roles are used to model the business processes that exist within a business enterprise.
Roles determine the set of application resources that display for users when they access
their permitted workspaces. In order to model your organization’s business processes
effectively, users need access to all the appropriate application resources required for
them to perform their everyday business tasks.
In this context, an application resource typically is an executable program that exists
within the menu system: either a standard program or a component-based activity.
However, in addition to functions executed from the menu, some activities that are not on
the menu can be secured.
All system users must be assigned to at least one role in order to gain access to the
system. Typically the same role is given to more than one user in an organization, and a
single user may have several assigned roles.
Note A user assigned to multiple roles has access to the combination of resources
defined in the roles.
Role-based access control provides flexibility and consistency in the way security
requirements are enforced, and also helps reduce maintenance for the system
administrator. While your users may change based on terminations or task
reassignments, roles within an organization typically remain stable over time.
Roles are not domain specific—they are defined system wide. However, roles operate
within the context of the domains and entities to which the user has been granted access.
This concept is known as role membership. See “Define Role Membership” on page 119.
Uses of Roles
The primary use of roles is to limit access to menu-level functions. Roles are also used to:
• Limit access to other resources such as sites and GL accounts. This is described in
Chapter 8, “QAD Adaptive ERP Security,” on page 173.
• Limit access to a set of activities that are not on the menu related to component-
based functions.
• Create customized versions of component functions that are stored and retrieved at
the role level.
• Create saved browse settings and report variants that are stored and retrieved at the
role level.
The last two activities are described in QAD System Administration User Guide and
Introduction to QAD Adaptive Applications User Guide.
Note The Process Maps display on the menu in QAD Adaptive ERP, but are not secured
through role permissions. Anyone can view the maps. However, security is invoked when
a user clicks a link in the process map that executes a menu-level program. If the user
does not have access, an error displays.
Default Roles
Each user can be assigned a default role in Role Membership Maintain. This default is not
related to security. For security, users are granted the sum of resources assigned to the
various roles assigned to them. However, for customizations, searches, and report
variants saved at the role level, a default role is required to determine what to display.
Example Customized versions of Supplier Invoice Create are developed for roles
SalesClerk and SalesManager. The operations manager is assigned both of these roles,
but SalesManager is marked as the default role. When the operations manager uses
Supplier Invoice Create, the version customized for SalesManager displays.
If a user is not assigned a default role when multiple role-specific customizations exist,
the system-level version of the function or report displays.
Adaptive UX arrives with a variety of predefined, pre-configured roles. These roles are
provided as starting points for the roles you will create for your system. You cannot update
the default roles but you can assign users to them. You can review the default roles’
associated permissions on the Role Menus and Role Permission screens and use these
default settings as a guide when assigning permissions to new roles.
The default roles’ permissions are set using the principle of least privilege, which grants
users access to only the resources they require to complete the roles’ tasks.
Note If you are creating a new Adaptive UX role based on a default or existing role, see
“Role Menus” on page 129 for information on copying menu items and setting
permissions.
Non-Menu Resources
Comments? Go to [Link]/MfwKHm
90 QAD Security Administration Guide
Table 6.1
Secured Items Not on Menu
Secured Item Description
Customization – Design Mode General Determines if users with this role can
(Entity) customize the user interface through the
Customization – Design Mode Role Design Mode features at the system, role, or
(Entity) user level. For details, see the section on
design mode in QAD System
Customization – Design Mode User Administration User Guide.
(Entity)
Supplier – Supplier Invoices (Entity) Determines if users with this role can access
the Supplier Invoices (for the current entity)
Related View as a right-click option on
Supplier browses.
Customer – Customer Invoice (Entity) Determines if users with this role can access
the Customer Invoices (for the current entity)
Related View as a right-click option on
Customer browses.
Customer – Customer Invoices Activity Determines if users with this role can access
the Customer Invoices Activity Related View
as a right-click option on Customer browses.
Customer Invoice – Modify Due Date Determines if users with this role can modify
(Entity) invoice due dates using Customer Payment
Selection Modify.
Customer Payment Selection Modify is used
in EDI Advanced Banking for Accounts
Receivable. For details, see QAD
Financials User Guide.
Evaluated Receipt Settlement Create – Determines if users with this role can run the
(Entity) ERS Processor to generate supplier invoices
Evaluated Receipt Settlement Modify – and corresponding receiver matching records
(Entity) based on completed purchase order or fiscal
receipts. For details, see QAD Financials
User Guide.
ERS Line – Create (Entity) Determines if users with this role can access
the ERS logging activities run by the ERS
Processor. You cannot run the ERS Processor
if you do not have access to these activities.
General Ledger Masks – Maintain GL GL masks have been replaced by COA masks.
Masks (Entity) This option lets you access the old GL Mask
Maintain function to verify the conversion to
the newer COA mask functions.
Journal Entry – Create (External) Determines if users with this role can create
journal entries using an API. The API create
method is used by both Operational
Transaction Post (25.13.7) and Invoice Post
and Print (7.13.4) to create journal entries. It
could also be used to post transactions from
an external system.
You must assign this resource to any users that
will be posting operational transactions to the
GL.
Comments? Go to [Link]/MfwKHm
92 QAD Security Administration Guide
System-Supplied Roles
During system installation, a number of roles are set up automatically in Adaptive ERP.
Table 6.2 lists these roles and their functions.
Table 6.2
System Roles Created During Installation
Role Description
_EveryOne This role is only present in systems that were converted from an
earlier version of QAD software. It includes all users that were
defined in the previous system.
CustomerNotify Members of this role receive email notification when a new
customer record is created with Customer Create so that the
operational data can be completed in Customer Data Maintenance
(2.1.1).
EmployeeNotify Members of this role receive email notification when a new
employee record is created with Employee Create so that the
employee can be defined as a service/support engineer in
Engineer Maintenance (11.13.1).
EndUserNotify Members of this role receive email notification when a new end
user record is created with End User Create so that the operational
data can be completed in End User Data Maintenance (11.9.1).
SuperUser This role provides initial access to all menu functions and is
typically assigned to users with an administrative role during
system implementation.
SupplierNotify Members of this role receive email notification when a new
supplier record is created with Supplier Create so that the
operational data can be completed in Supplier Data Maintenance
(2.3.1).
The SuperUser role is initially defined to provide permissions for all menu functions
loaded in the system. However, this is true only initially. If you add new menu items
manually using Menu System Maintenance ([Link]), you must also manually grant
users rights to these menu items in Role Permissions Maintain. When you add new
domains and entities, you must explicitly grant access to the SuperUser role for members
of this role to continue to have access throughout the system.
Note This is important for certain roles that are used, for example, by daemon processes
and require access to all system resources. See “Types of Users” on page 105.
You should define other system roles for special functions such as:
• An administrative role specified in Security Control (36.3.24) to receive e-mail
notifications when specific security and controlled events occur.
• QAD Adaptive ERP includes some administrative functions that can be assigned to a
specific role.
Role Example
A system administrator configures the system to control access to three functions based
on each employee’s organizational level. Three types of access to financial functions are
required: one for clerks, one for managers, and one for the CFO.
The system administrator creates three roles: Clerk, Manager, and CFO. Sara, the AP
Clerk, is assigned to the Clerk role. Don, the AP Manager, is assigned to the Manager
and Clerk roles. Jane, the CFO, is assigned all three roles. In this setup, illustrated in
Figure 6.3, Jane’s roles grant her entry to all the levels she is authorized to access.
Fig. 6.3
Using Roles to Give Access
Budget
Budget
Create
Create
Supplier
Supplier
Invoice
Invoice
Table 6.3 shows how the system administrator assigns users to each role.
Table 6.3
Sample Role Setup
Role User
Clerk Sara, Don, Jane
Manager Don, Jane
CFO Jane
Next, the administrator uses Role Permissions Maintain to assign the appropriate system
resources to the relevant roles to determine access to the system resources that each
user requires in order to complete their assigned tasks.
When Mark is hired as the new deputy CFO, the system administrator only has to assign
Mark to the CFO role in order to give him access to each individual protected financial
function.
When a member of the SalesClerk role signs in, the user has access to:
• Sales Order Maintenance
• Customer View
• Customer Credit View
Instead of seeing the entire set of menus, only Customer Management and Financials
display. Within these folders, only the selected functions SalesClerk can access display.
Note Using features of QAD Adaptive ERP, users can also create their own custom menu
display under Favorites.
Define Roles
In QAD Adaptive ERP, use Role Create ([Link]) and in Adaptive UX, use Roles to
define roles in your system. You should define as many roles as required in order to
model your business processes in the system. In Adaptive ERP, use Role Modify
Comments? Go to [Link]/MfwKHm
94 QAD Security Administration Guide
([Link]) to perform maintenance on existing roles defined in your system, and Role
View ([Link]) to view roles. These activities can all be done in Adaptive UX from the
Roles screen.
Adaptive UX roles can be set up and maintained in both Adaptive ERP and Adaptive UX.
Roles created in Adaptive UX are immediately accessible in Adaptive ERP. If you create
roles in the QAD Adaptive ERP meant for Adaptive UX, the roles’ permissions should be
configured using role menus in Adaptive UX. See “Menus” on page 129.
A role defined in the system can be deleted using Role Delete as long as the role is not
referenced in the system.
Comments? Go to [Link]/MfwKHm
96 QAD Security Administration Guide
The Copy window contains four panels: Copy Options, Criteria, Roles, and Processing
Options (not shown in the screenshot).
Copy Menu. This field is selected by default and copies the roles’ associated menus.
Copy Permissions. This field is selected by default and copies the roles’ Adaptive
ERP and Adaptive UX permissions.
Copy User Access. Select an option to indicate how you want to treat users assigned
to the copied roles. The options are:
• Don’t Copy: Select this option if you do not want to assign users from the copied
role to the new role.
• Copy: Select this option to copy the users assigned to the copied role to the new
role. This value is the default.
• Copy & Replace: Select this option to replace user assignment to the copied role
with the new role. This option supports scenarios such as where you want to copy
and replace QAD roles with your own company’s roles.
Note For some roles, such as the following, you cannot replace the user access:
SuperUser, QADAdmin, WebUI_User, admin role set in Security Control, and
Adaptive ERP roles (that have no App URI).
Deactivate Copied Roles. Select this field to deactivate the copied roles. This field is
cleared by default.
Note You cannot deactivate some roles such as the following: SuperUser,
QADAdmin, WebUI_User, admin role set in Security Control, and Adaptive ERP roles
(that have no App URI).
If you attempt to deactivate a role, the system displays a warning message.
Role Name. Use this field to assign a prefix or a suffix to the copied role name to use
as the new role name or to use a blank role name to allow manual entry of the new
name.
Note In this field, you are setting the default value for the New Role field in the Roles
panel grid. See “Roles Panel” on page 97.
Select an option from the following:
• Prefix: Select this option to add a prefix to the copied role name. If needed, the
system removes letters from the end of the role name, after the prefix, to adhere
to the 20-character role name limitation. If the system must truncate a role name
for it to fit the character limitation, a message advises you of this. After you click
Apply, for each selected row, the system copies the text in the Copied Role
column to the New Role column, and adds the prefix.
• Suffix: Select this option to add a suffix to the copied role name. If needed, the
system removes letters from the end of the copied role name, before the suffix, to
adhere to the 20-character role name limitation. If the system must truncate a role
name for it to fit the character limitation, a message advises you of this. After you
click Apply, for each selected row, the system copies the text in the Copied Role
column to the New Role column, and adds the suffix.
This value is the default.
• Blank: After you click Apply, for each selected row, the system makes the New
Role column blank. You can then manually enter a name for each role.
Criteria Panel
Search Criteria. This field displays the search criteria passed from the browse.
If no criteria are passed, the field displays “No Criteria Selected.”
Roles Panel
The grid in the Roles panel displays roles from the browse, filtered by the search criteria.
All roles are selected by default. Clear the checkboxes on the left for the roles that you do
not want to copy.
Comments? Go to [Link]/MfwKHm
98 QAD Security Administration Guide
Fig. 6.7
Roles Panel with Grid
Selected. The fields in the column are selected by default. Clear the field for a
particular role if you do not want to copy the role.
Copied Role. This field displays the copied role name.
Copied Role Label. This field displays the copied role label.
New Role. This field displays the default value for this field, based on the option
(Suffix, Prefix, or Blank) that you selected in the Role Name field in the Copy Options
panel. The New role field has a character limit of 20.
New Role Label. This field displays the copied role label.
Active. This field is selected by default.
Exclude from SOD. This field is read only and is always selected and non-editable.
Important Copied roles are excluded from Segregation of Duties. You can manually
change this setting in the Roles screen after the copy is complete.
App. This field is read only and set to “Configuration Data.”
App URI. This field is read only and set to “urn:app:pec.”
Namespace. This field is read only and set to “pec.”
The Processing Options panel includes one field, Process in Background, which is always
selected and read only. When you have configured your role copy options, click Submit to
submit the copy action for processing. The system displays a message to indicate that the
results will be sent to your inbox.
Fig. 6.8
Copy & Merge Window
The Copy & Merge window contains five panels: Role, Copy Options, Criteria, Roles to
Merge, and Processing Options (not shown in the screenshot).
Note The Criteria, Roles to Merge, and Processing Options panels are as described for
the Copy action. See “Criteria Panel” on page 97, “Roles Panel” on page 97, and
“Processing Options Panel” on page 98.
Role Panel
Role. Specify up to 20 alphanumeric characters for the new role to which the other
roles will be copied and merged. The default is blank.
Role Label. Use the lookup to select the label string code. The default is blank.
Active. This field is selected by default. Clear the field to make the new role inactive.
Exclude from SOD. This field is read only and is always selected and non-editable.
Important Copied roles are excluded from Segregation of Duties. You can manually
change this setting in the Roles screen after the copy and merge is complete.
Save To, App. These fields are read only and set to “Configuration Data.”
App URI. This field is read only and set to “urn:app:pec.”
Comments? Go to [Link]/MfwKHm
100 QAD Security Administration Guide
Copy Menu. This field is selected by default, and copies and merges the menus
associated with the existing roles identified in the Roles to Merge grid. Any duplicates
are removed during the merge. Clear the field if you do not want to copy the menus
associated with the roles.
Copy Permissions. This field is selected by default, and copies and merges the
Adaptive ERP and Adaptive UX permissions associated with the roles identified in the
Roles to Merge grid. Clear the field if you do not want to copy the permissions
associated with the roles.
Copy User Access. Select an option to indicate how you want to treat users assigned
to the copied and merged roles. The options are:
• Don’t Copy: Select this option if you do not want to assign users from the copied
and merged roles to the new role. This option is the default.
• Copy: Select this option to assign the superset of all users assigned to the copied
and merged roles to the new role. When the copy and merge action is complete,
the users are assigned to the copied and merged roles, and the new role.
• Copy & Replace: Select this option to assign the superset of all users assigned to
the copied and merged roles to the new role. The users’ access to the roles that
were copied and merged is removed.
Note For some roles, such as the following, you cannot replace the user access:
SuperUser, QADAdmin, WebUI_User, admin role set in Security Control, and
Adaptive ERP roles (that have no App URI).
Deactivate Roles to Merge. Select this field to deactivate the roles to merge. This field
is cleared by default.
Note You cannot deactivate some roles such as the following: SuperUser,
QADAdmin, WebUI_User, admin role set in Security Control, and Adaptive ERP roles
(that have no App URI).
The grid in the Roles to Merge panel displays roles from the browse, filtered by the search
criteria. All roles are selected by default. Clear the checkboxes on the left for the roles that
you do not want to copy and merge.
Fig. 6.9
Roles to Merge Panel, with Grid
The grid fields are as described in the Roles panel for the Copy action. See “Roles Panel”
on page 97.
Comments? Go to [Link]/MfwKHm
102 QAD Security Administration Guide
Role-based permission prevents any executable from being run from within your QAD
application unless it is added to the menu and then added to a role. You cannot directly
invoke a Progress program that is not on the menu by typing its name at the menu prompt
in the character user interface.
When users attempt to execute a program on the menu and their current role does not
grant access, the message “Program not found” displays.
Important To access the program and field help in the QAD Adaptive ERP, a user must
have access to Field Help Maintenance (36.4.13). If a user is unable to access the help, a
possible cause of the problem is that the user does not have access to Field Help
Maintenance (36.4.13).
Figure 6.10 illustrates Role Permissions Maintain. You can define secured items on the
menu and secured items not on the menu. Both top-level selections display application
resources defined in the system using a tree model with leaf and non-leaf nodes, similar
to how the menu itself displays.
Fig. 6.10
Role Permissions Maintain ([Link])
Each menu item displays identified by menu number and arranged according to the
system menu. Any selected items represent the menu items currently assigned to the
specified role. Each menu item corresponds to a record in the mnd_det table.
To assign a menu item to a role, open the relevant menu grouping, navigate to the menu
item you want to associate with the selected role, and click in the checkbox next to the
item.
Fig. 6.11
Role Permissions Maintain, Secured Items on Menu
The tree nodes can be expanded and contracted. Nodes can have one of three possible
states:
• Clear. No selection is in effect.
• Gray check mark. One or more but not all of the leaf nodes or non-leaf nodes lower in
the tree are selected.
• Black check mark. The top-level node and all lower level nodes are selected.
Selecting a node within a node causes the node higher up to display as shaded. Selecting
a node causes all items below it to be selected and is indicated in the higher node. The
ability to select a node and cause lower nodes to also be selected streamlines the
process of setting permissions.
Since menu items on submenus inherit associations created at a higher level, you can
associate a menu group high in the menu tree, clear any unwanted associations for
submenus, and then modify selections at the menu item level, if required. This makes the
process of administering role permissions easier.
Menu items in the tree display with [Domain] or [Entity] after the menu description. This
indicates the level at which security access is checked when this function is executed.
Most operational functions are secured at the domain level and most financial functions
are secured at the entity level.
• When [Domain] displays, the function can be executed when the user has access to
at least one entity within the domain.
• When [Entity] displays, the function can be executed only when the user has access
for the specific entity.
Note Do not confuse this with the level of the data being updated by the function. For
example, Tax Type Maintenance (29.1.1) is secured at the domain level, even though tax
types can be used system wide.
Comments? Go to [Link]/MfwKHm
104 QAD Security Administration Guide
Activities that can be secured even though they are not on the menu are displayed based
on the component name and the activities associated with the component. Selected items
are currently assigned to the specified role.
You assign items to a role in the same way you assign menu items, by clicking in the
checkbox next to the item.
Fig. 6.12
Role Permissions Maintain, Secured Items Not on Menu
Table 6.1 on page 90 lists these functions and explains their use.
If you plan to let users customize screens for component-based functions to suit their
working preferences, you must assign at least one of the Design Mode permissions to the
user. If none of these permissions is assigned, the Design Mode menu option does not
display on the Tools menu for that user. For details on customizing screens, see QAD
System Administration User Guide.
Set Up Users
The process of setting up users identifies the users to the system and defines user-
related information that the system requires. This process consists of:
• Defining users including:
• Basic user information
• Security settings
• Application use
• Specifying the domains and entities each user can access
Users can be set up either manually or automatically using LDAP for user
synchronization. Before proceeding, determine if you are defining users one by one
through User Maintenance in the QAD Adaptive ERP or Users in Adaptive UX, or
synchronizing user accounts using LDAP. If you are defining users one by one, continue
with “Types of Users”. If you are synchronizing user accounts using LDAP, continue with
“User Synchronization”.
User Synchronization
User synchronization is the process of synchronizing the user accounts of the multiple
QAD applications with Directory Services, such as Active Directory or Open LDAP.
With user synchronization, QAD Adaptive ERP user accounts can be synchronized with a
corporate LDAP directory (Active Directory). The configuration for user synchronization
includes the use of a DSML (Directory Services Markup Language) gateway for LDAP
communication between QAD Adaptive ERP and a corporate LDAP directory. Users can
be synchronized using both the QAD Adaptive ERP and Adaptive UX.
User and group synchronization allows you to simply and securely manage information
about users on multiple applications. Typically users are centrally managed on an identity
management system, and access to applications is enabled through an application
management portal. Centralizing the management of user information enables
organizations to support the creation, management, and deactivation of users across
multiple systems.
The user information in the Directory must be expanded to include information about
which QAD applications a user is allowed to access. Each QAD application must have a
unique identifier and the roles must correspond to the roles defined in the applications.
See Chapter 5, “Authentication,” on page 57 for details on setting up LDAP and “Verify
LDAP Instance Definition for DSML Gateway Using User Sync” on page 65 for details on
user synchronization.
Once users are synchronized, continue setting up users with “Specify Access to Domains
and Entities” on page 115.
Types of Users
One of the fields that you specify when you create a user indicates the user type. Most
users represent your company employees who perform day-to-day functions such as
receiving purchased inventory, replenishing work centers, and filling sales orders.
However, the system also requires a number of users for performing background tasks
that require system sign in. These users do not represent real individuals, and are
typically given a user type of API (application program interface). Generally, this type of
user should be associated with a role that grants full access to all domains, entities, and
resources so that the required background tasks can be performed.
You specify these types of users in a number of different places:
• All of the daemon processes require a valid user ID and password for signing into the
system. Typically you should create one user with access to all domains, entities, and
resources and specify the same user for all the daemons. This makes administration
simpler.
• System Maintain ([Link]) requires a user ID and password for system startup
activities that are initiated from the operating system or from a shortcut. This ID is
used to establish that a valid user session can be created.
• A user role is defined during installation for QAD Adaptive ERP administrative
functions, that again needs access to all system resources.
Comments? Go to [Link]/MfwKHm
106 QAD Security Administration Guide
• If you are using other components of QAD Adaptive Applications such as QAD
Customer Self Service or QAD QXtend Inbound or Outbound, you need to configure a
special user for interaction between the components.
Define Users
Use User Maintenance (36.3.1) in the QAD Adaptive ERP or Users in Adaptive UX to
assign a unique ID to a system user and define related application and security details.
Note Adaptive UX often combines multiple Adaptive ERP programs into one screen.
Both interfaces require the same data to create a new user profile, but the order in which
that information is requested varies by interface. Screenshots from both interfaces are
displayed in this section to give additional context.
To access the system, each user must specify a unique user ID and the associated
password. In addition each user must have been assigned a valid role and access to one
or more domains and entities. Other user data is referenced throughout the system and
may be required for reasons other than security.
User profiles apply to all domains in the system. However, profiles include several
generalized codes that are domain specific such as access location and user type. To
prevent validation errors, you should ensure that these codes exist in all domains.
Once a user has accessed the system, the ID cannot be deleted. Instead, you can
deactivate a user’s record in the system. If an ID has never been used for sign in, you can
delete it, if necessary. This lets you correct any errors made during initial setup. This
restriction ensures a complete audit trail of users who have accessed the system.
Important The Active checkbox and the Enabled checkbox in User Maintenance have
different functions.
• The Active checkbox controls whether a user’s record is active within the system. Only
active user records can be referenced when a new record is created in other system
functions; in addition, lookups and browses only display active records.
• In contrast, the Enabled checkbox determines whether a user can sign in. By default,
the Enabled checkbox is selected when a new user is created. A user can sign in to
the system only if both the Enabled checkbox and Active checkbox are selected. The
account of an active user can be disabled, for example, while they are on medical
leave.
Note Any updates you make in User Maintenance are time stamped in Universal Time,
Coordinated (UTC). For more information on the time stamping of transactions outside
domains, see QAD System Administration User Guide.
Fig. 6.13
Adaptive ERP User Maintenance (36.3.1)
Fig. 6.14
Adaptive UX Users (Main Panel)
User ID. Enter a code (maximum 8 characters) identifying a user in this database.
This field cannot be blank or the same value as a role name. Do not use special
characters, such as exclamation points (!), commas (,) or forward and backward
slashes (/ \). In addition, it is recommended not to use accented letters in user IDs.
See Progress documentation for more information.
Note Progress does not recognize accented letters so it treats the accented and
unaccented versions of, for example, the name Rene as the same user ID. However,
the QAD Adaptive ERP treats the accented and unaccented versions of the name as
two different users. Therefore, favorite information related to the Rene account will not
display for an accented version of the same name (user ID).
To sign in to the system, the user must supply a valid user ID.
If you plan to use OS-based security, the user IDs you create should be the same as
the IDs defined for operating system sign in. See “OS-Based Sign-in Security” on
page 20.
Depending on the setting of Header Display Mode in Security Control (36.24), the
system may display this value on every program screen in the character interface. In
the QAD Adaptive ERP, the user ID always displays in the bottom message area. See
“Header Display Mode” on page 29.
User Name. Enter a user name (maximum 35 characters) identifying the full user
name associated with this ID.
The user name does not affect system security. It displays for reference on various
reports and inquiries. To display an information window that includes the user name,
press Ctrl+F from any program screen in the character interface.
Defining basic information about system users includes setting options and defining
values for:
• Controlling information process and display
• Identifying users
• Specifying email addresses
• Enabling menu substitutions
Comments? Go to [Link]/MfwKHm
108 QAD Security Administration Guide
You can ensure that system data is correctly displayed and processed for a given user—
regardless of the user’s language or location—by specifying values for the Language and
Country Code fields in User Maintenance.
Fig. 6.15
Adaptive ERP User Maintenance, Language and Country Code
Fig. 6.16
Adaptive UX Users (Locale Panel)
Language. Enter or select a two-letter code identifying the user’s language. The
system displays menus, messages, and other interface elements in this language
when the user signs in.
The language must be active and must be installed. Since labels, menus, messages,
comments, and field help text are stored and retrieved by language code, you cannot
assign a language to a user when these elements have not been loaded. Loading
translated data automatically sets the associated language to installed.
Changes to this field do not affect any users currently signed in. Changes take effect
only when they sign in again.
Country Code. Enter a valid, active country code defined in Country Create
([Link].1). The country code also must have an associated alternate country code
defined in Country Code Data Maintenance (2.14.1).
The alternate country code must be a valid International Standards Organization
(ISO) country code. The system uses the ISO code to set up date and number
formats and other interface elements for each user session.
Variant. Optionally enter the locale for the user. This field can be used to specify
regional variations within a country. The Variant setting is located with the Main panel
in Adaptive UX.
Information on language, country code, and variant are maintained in a file named
[Link], along with other format information. Once the system determines a user’s
language, country code, and corresponding ISO country code, it gets information from
[Link] and uses it to set user-specific date and number formats.
System administrators may need to change information in [Link] or add entries for
countries that are not included in the current file.
Each line in the file follows the same format. For example, the line for US English looks
like this:
US,en,US,,mdy,American
Where:
• US is the application language code.
• en is the ISO language code.
• US is the ISO country code.
• Optional variant is blank.
• mdy is the date format.
• American is the numeric format (period as the decimal separator; comma as the
thousand separator).
Identifying Users
Fig. 6.17
Adaptive ERP User Maintenance, User Identity Fields
Fig. 6.18
Adaptive UX Users (Main and Locale Panels)
Comments? Go to [Link]/MfwKHm
110 QAD Security Administration Guide
• API identifies users who access the system through an application programming
interface connection or who represent background processes such as daemons.
Employee is the default for all newly created users except customers. When you enter
a customer ID as the user ID, the type defaults to customer.
You might need to define additional types if users do not fit into the four categories; for
example, you may need a contractor or part-time type. You must predefine the new
user type in Language Detail Maintenance (36.4.2) before you can assign it to users
here.
Time Zone. Enter a time zone to associate with this user. Time zones must be
predefined in Multiple Time Zones Maintenance ([Link]).
The time zone defaults from the Time Zone field of the domain you are signed in to
when you create the user.
Access Location. Enter a code that associates the user with a major business facility
or major business location. If you have more than one facility or location or if users
work remotely or in small offices, associate the user with the major business facility or
location that is most appropriate.
Access location codes must be defined in Generalized Codes Maintenance (36.2.13)
for field usr_access_loc. The system ships with a Primary location code that is used
as the default for new user records. You can use this location as your company home
office location or central processing site.
Initials. Enter initials for the user (maximum 20 characters). Initials can be used in
references and when performing searches.
Active. Indicate if this is an active record.
When a record is active, it can be referenced from other maintenance functions. When
a record is inactive, it cannot be referenced when a new record is created in other
functions. Inactive records are not included in lookups of valid values. However,
marking a record as inactive does not prevent you from continuing to use existing
records that reference the inactive value. In addition, inactive values display on
reports.
Once a user ID has been used for sign in, it cannot be deleted from the system. If an
ID is no longer needed, deactivate it.
The system automatically selects this checkbox for new users.
Remark. Enter a brief text comment regarding the user. For example, you could note
that this user is currently on leave of absence and the ID has been disabled.
Associate a valid email address and definition with each user who receives system-
generated messages by entering values into the E-Mail Address and E-Mail Def fields.
When selected, the E-mail Address Login field enables users to sign in using their email
address.
Email can be used with many system features. For example:
• System administrators can receive automatic notification when user IDs are disabled
because of sign in violations.
Select the Menu Substitution checkbox to indicate whether menu substitution is enabled
for individual users when employing the character interface. When menu substitution is
enabled, inquiries display instead of browses. This setting has no effect when using the
QAD Adaptive ERP or Adaptive UX.
The Active Directory section enables you to specify sign-in information for Active
Directory.
Note As of the Enterprise Edition 2018 release, only server-side Active Directory
authentication is supported. Client-side Active Directory authentication is no longer
supported.
Active Directory Enabled. Select this field to enable the user to sign in through Active
Directory.
LDAP Instance Name. Enter the service name of the LDAP instance. The LDAP
instance Name comes from settings defined in LDAP Instance Maintenance
(36.3.10).
Active Directory Username. Enter the Active Directory username for this user. This
username is limited to 64 characters.
LDAP Distinguished Name. Enter the LDAP distinguished name. A distinguished
name is a sequence of relative distinguished names connected by commas.
Use the System Access frame in User Maintenance to specify security-related access
settings for each user.
Fig. 6.19
Adaptive ERP User Maintenance, System Access Frame
Comments? Go to [Link]/MfwKHm
112 QAD Security Administration Guide
Fig. 6.20
Adaptive UX Users (Access Panel)
Enabled. Select the checkbox to indicate that this user ID can be used to sign in to the
system. To disable an existing user ID, clear the checkbox.
The Enabled checkbox has a different function than the Active checkbox. The Enabled
checkbox controls the ability of a user to sign in to the system. In contrast, the Active
checkbox controls whether a user’s record is active within the system.
Note Any time this checkbox is updated, the Enabled Reason field must also be
updated.
Enabled is updated in the following ways:
• Automatically when you enter a new user ID. By default, the system selects the
Enabled checkbox; you must manually enter an enabled reason.
• Automatically when the system disables an account for too many failed sign-in
attempts. Enabled Reason is set to the code specified in Security Control. See
“Maximum Access Failures” on page 30.
• Manually when you update an existing ID; for example, you can do this to re-
enable a user that was previously disabled, or to disable an account when a user
leaves the organization. You must enter an enabled reason.
Enabled Reason. Enter a reason code that indicates the reason for modifying the
setting of Enabled. This reason code must be associated with reason type
USER_ACT. See “Enabled Reason Type” on page 31.
You must update this field anytime you change the Enabled field.
Force Password Change. Indicate whether the system should force this user to create
and validate a new password the next time he or she signs in to the system using the
current password.
By default, the system selects this checkbox for new users and the checkbox cannot
be updated. This lets you assign temporary, single-use passwords either
automatically or manually.
By default, the system clears this checkbox for existing users unless the password
has been changed. In that case, it is automatically selected and you cannot update it.
This forces users to assign their own passwords at the next sign in.
Use Force Password Change Utility ([Link]) to select this checkbox for users
belonging to selected roles.
Note Any updates made using the Force Password Change Utility are time stamped
in Universal Time, Coordinated (UTC). For more information on the time stamping of
transactions outside domains, see QAD System Administration User Guide.
Update Password. Specify whether this user requires a new password. For new
users, the system selects this checkbox by default, and you cannot change it.
Update Passwords
When the Update Password checkbox is selected in the System Access frame,
subsequent actions depend on the setting of Password Creation Method in Security
Control:
• Display. The system-generated password displays at the bottom of the screen.
• Email. The system generates a password and emails it to the user.
• No. Automatic password generation is disabled. A frame displays for you to manually
enter a new password.
Note Passwords specified in User Maintenance are single-use, temporary passwords
generated by the system or entered by the system administrator. At sign in, the user is
prompted to enter a new password.
Fig. 6.21
QAD Adaptive ERP User Maintenance, Set New Password Frame
Fig. 6.22
Adaptive UX Users (Change Password Frame)
Enter a new password. Since the system does not display passwords, type it again to
confirm it.
Note The new password must conform to structure and reuse rules defined in Security
Control.
Passwords expire based on the value of Expiration Days in Security Control. If you want
to let users change their own passwords at a time other than sign in, give them access to
User Password Maintenance (36.3.3). See “Expiration Days” on page 33.
Comments? Go to [Link]/MfwKHm
114 QAD Security Administration Guide
QAD applications support a number of license types. If you are using named user
licensing, a finite set of users is predefined.
When the user count exceeds the number of licensed users, a violation message displays
here. Violation messages can be either warnings or errors, depending on whether
enforcement of the license policy is implemented or not. This is determined by the setting
of Enforce Licensed User Count field in Security Control. See “Enforce Licensed User
Count” on page 29.
• When Enforce Licensed User Count is Yes, an error displays and you cannot add new
users when user count exceeds the number of licensed named users.
• When Enforce Licensed User Count is No, a warning displays and a violation is
recorded, but system administrators can add new users.
Important After you receive a warning, you can continue with software use. If you receive
repeated warnings, contact your QAD sales representative or distributor for a license
upgrade.
The applications that a user can access must be activated for the user; otherwise, the
user cannot access the application. You can activate access to applications here, or when
you register an application license code in License Registration ([Link]).
Once a user has accessed the system, the ID cannot be deleted. Instead, you can make
users inactive for an application. If an ID has never been used for sign in, you can delete
it, if necessary. This lets you correct any errors made during initial setup.
Use the Application List frame in User Maintenance to define the software applications
that a user can access. When you define a new user, the system prompts you to
authorize the new user for all licensed applications. If you select the checkbox, the Active
checkbox is selected for all licensed applications for this user. Otherwise, QAD Adaptive
Applications (MFG/PRO) is listed as the only active application. You can list additional
licensed software applications, then select (or clear) the Active checkbox for each
application. By default the checkbox is selected.
Fig. 6.23
Adaptive ERP User Maintenance, Application List Frame
Fig. 6.24
Adaptive UX, Applications Panel
The application name you enter under Application Name must be registered with the
system through License Registration ([Link]). If not, an error message displays.
The system counts the number of enabled users authorized to access the application and
compares the number against a predefined limit for your license type. If the number of
enabled users exceeds the predefined limit, a violation message displays and you cannot
add the application to the list.
You also can specify which users can access an application after you register the
application in License Registration.
If you disable the Adaptive Application (MFG/PRO) setting for a user, all other registered
applications are also disabled.
Use User Access by Application Inquiry (36.3.22) to view a list of applications as well as
the user’s ID and name, active or inactive status of each application, time zone, access
location, and access date.
Fig. 6.25
User Access by Application Inquiry ([Link])
Comments? Go to [Link]/MfwKHm
116 QAD Security Administration Guide
To view access privileges for domains and entities, use User Domain/Entity Access View
(36.3.5).
Function Overview
You must always define access to a combination of domain and entity. However, the entity
dimension applies largely to financial data; most operational functions do not directly
update data that is maintained at the entity level. When you are setting up users in a
domain with multiple entities and these users will be working exclusively in operational
areas such as manufacturing, sales, or service, assign them to the primary entity.
Be aware, however, that certain operational functions such as Operational Transaction
Post (25.13.7) and Invoice Post and Print (7.13.4) do update entity-specific data. In these
programs, access security defined in User Domain/Entity Access Maintain determines
which entities can be updated.
Note The level of security access enforced—either domain or entity—displays in Role
Permissions Maintain next to each menu item.
Domains and entities are defined as part of the process of setting up your foundation
data. For more information on this topic, see QAD Financials User Guide.
New domains and entities that are added to the system after implementation display in
User Domain/Entity Access Maintain in the Adaptive ERP and User Access in Adaptive
UX. You must explicitly grant users access before any updates can be made in the new
domain.
Any changes to a user’s domain or entity access privileges automatically update that
user’s role membership information. For example, removing a user’s ability to access an
entity breaks the association between that entity and the user’s assigned role, and the
entity is deleted from the list of assigned entities in Role Membership Maintain
([Link].1). For details on role membership see “Define Role Membership” on page 119.
User Domain/Entity Access Maintain provides a workbench type screen in the QAD
Adaptive ERP for streamlining the setup of access. You can use the three selection
criteria fields to limit the records you want to work with or leave them blank to see all
combinations in the system. The grid supports standard sorting and group-by features so
you can organize the data conveniently.
Selecting a checkbox in the Select column indicates that the user has access to the
associated combination of domain and entity.
Fig. 6.26
User Domain/Entity Access Maintain
You can also modify the user’s default domain by selecting the Default Domain checkbox.
Selecting this for one entity in a domain activates the setting for all entities, since the
setting applies domain wide.
Note The Primary Entity column is for reference only and cannot be modified here. The
domain’s primary entity is specified in the Domain Create activity.
Default. Select the checkbox on the row of the user’s default domain. Only one
domain can be designated as default. In the QAD Adaptive ERP, the default domain
displays only on the first sign in; on subsequent sign ins the state of the last session
displays.
Note In a multiple-database environment, a user’s default domain must be
associated with the current database; it cannot be a connection record.
When a user signs in to the database, the system retrieves the information associated
with the user’s ID. In the character interface, a user with access to more than one
domain is prompted for a domain code, which defaults from the record marked as
default.
A user with only one assigned domain does not see this prompt at sign in but is
automatically signed in to the single domain associated with the ID specified.
Users employing the QAD Adaptive ERP can switch entities by opening a different
workspace.
Comments? Go to [Link]/MfwKHm
118 QAD Security Administration Guide
User Access allows administrators to configure user access to domains, entities, and
sites, and to assign users to roles within the areas of QAD to which they have access.
Every Adaptive UX user must be assigned at least two roles, one of which is webui_user.
A user cannot access Adaptive UX without the webui_user role, but can still access the
QAD Adaptive ERP.
Note Users who access the QAD Mobile Action Center App also must be assigned the
webui_user role. If QAD Mobile App users are not assigned to the webui_user role, they
may run into permission errors for requisitions and generic approval configuration
resources.
Fig. 6.27
User Access
Set access to domains, entities, and sites by selecting or clearing the Access checkbox,
located above the Roles grid, for the appropriate system level.
Note Modifying site security on the User Access screen does not change site security
settings in the QAD Adaptive ERP or on Site Security in the QAD Adaptive UX.
The System tree is a hierarchical view of all domains, entities, and sites within Adaptive
UX. Each level of the tree shows the number of roles the selected user belongs to at that
level and a circular status indicator denotes the user’s access to that level and its children.
A solid green circle denotes access to that node and all nodes lower in the tree. A white
circle with a gray border indicates that the user has no access to the associated node, nor
to that node’s children. A half-green circle indicates that the user has access to some but
not all of the nodes lower in the tree. Sites are the lowest level of the hierarchy and can
only have full access or no access.
Inheritance of access runs both up and down the tree. Enabling access to a node
automatically enables access to the node’s parent and children. Removing access to a
child does not affect the parent. You can remove the access for nodes lower in the tree by
clearing the Access checkbox for those child items one by one. If you clear the Access
checkbox of a parent element, you cannot select the Access checkbox of a child element.
In Figure 6.27, the user has access to Entity 10CORPCONS and to all sites in 10USACO
except the first one, !mfg. Because the user does not have access to the !mfg site, the
circle next to the site’s parents, Entity 10USACO, Domain 10USA, and the System, are
half green, indicating the user has access to some but not all of the system’s children.
Comments? Go to [Link]/MfwKHm
120 QAD Security Administration Guide
Example Domain A has entities located in California, New York, and London. Carol has
been assigned the role HR Manager for all three entities. Tom has been assigned the
same role, but only for London; Pam and Tom share responsibilities for London. Pam’s
role membership is specified for entities California, New York, and London. Tom’s role
membership, however, is defined for the London entity only.
Fig. 6.28
Role Membership Maintain ([Link])
Use the User, Role, Domain, and Entity fields at the top of the screen to select the records
you want to work with during this session. You can group the data in the grid or sort or
rearrange columns to streamline the setup activity. Selecting the checkbox indicates that
the user has access to the role for the associated domain and entity.
Note Any changes to a user’s domain or entity access privileges also automatically
update that user’s role membership information. For example, removing a user’s ability to
access an entity breaks the association between that entity and the user’s assigned role,
and the entity is deleted from the list of assigned entities in Role Membership Maintain.
For details on defining user access to domains and entities, see “Specify Access to
Domains and Entities” on page 115.
Fig. 6.29
Roles Grid
Inheritance of role membership runs both up and down the tree. Selecting a role at any
level automatically adds the role to the node’s parent and children. Removing a role
automatically removes the role from the node’s children. However, you can remove a role
from a child node and leave the role selected at the parent node.
Figure 6.29 shows the roles in entity 10CORPCONS. You can modify role assignments
for the selected user using the Roles grid.
Comments? Go to [Link]/MfwKHm
122 QAD Security Administration Guide
The system displays an error message if the file name extension is incorrect, and a
confirmation message when the export or import has completed successfully.
Role Export
Fig. 6.30
Role Export
Full Filename (on Appserver). Specify a name and path for the exported file. You must
use the .xml file extension.
Select the roles to be exported and click Export.
For role records, the report lists changes made to any of the fields on a role. If the role is
new, the Old Value column is blank and the New Value column displays the initial record
content. In Figure 6.31, you can see that ROLE 05 was created with the description of
ROLE-05 Desc. It is an active role and is not exempt from segregation of duties.
The User Access Audit Report tracks changes made to:
• Users
• User Licenses
• User Access
Comments? Go to [Link]/MfwKHm
124 QAD Security Administration Guide
Fig. 6.32
User Access Audit Report - Example 1
The report displays what permissions have been granted to or revoked from the specified
resource. If the permissions were newly defined instead of changed, the Old Value
column is blank and the New Value column displays the initial record settings.
The report in Figure 6.32 shows changes to both user licenses and a user record. The
event detail highlighted in red for the user license shows the activation date for the listed
application, WAVE, along with the user IDs of the user who activated the license and the
user who now can use the application. The event detail highlighted for the user shows the
fields that are tracked when a user record is created.
Fig. 6.33
User Access Audit Report - Example 2
The User Access Audit Report also tracks changes to domains, entities, and sites on the
User Access screen, as shown in Figure 6.33.
For more detailed information on audit trail reports and enabling auditing in your
environment, see Chapter 13, “Auditing,” on page 329.
Comments? Go to [Link]/MfwKHm
126 QAD Security Administration Guide
Adaptive UX Security
This chapter applies only if you are using QAD Adaptive ERP with Adaptive UX. It covers
the following topics:
Overview 128
Explains users, roles, and menus within Adaptive UX.
Prerequisites 128
Describes the prerequisites for using Adaptive UX.
Role and User Workflow in Adaptive UX 128
Describes the ideal workflow for introducing users and roles into Adaptive UX.
Resources 128
Explains Adaptive UX resources and how to secure resources.
Menus 129
Describes role and favorites menus and using menus to assign permissions to roles.
Role Permissions 136
Describes the Role Permissions screen and how to assign permissions to roles.
Role Resource Audit Report 155
Describes how to review changes made to role permissions for resources in Adaptive UX
and Adaptive ERP.
Configure Stored Views Access 157
Explains how to save customized screen layouts, emphasizing important information
needed for everyday use and specific tasks.
Record-Level Security 158
Explains how to enable record-level security and how to share secure records.
128 QAD Security Administration Guide
Overview
Creating and maintaining a secure environment for Adaptive UX requires initial steps that
can be performed in both the QAD Adaptive ERP and Adaptive UX. Once these steps are
complete, security can be maintained within the QAD Adaptive UX.
Prerequisites
You must be running QAD Adaptive ERP.
Important To manage roles, menus, and permissions in Adaptive UX 2023 environments,
you must use new Configuration Data export.
Resources
Adaptive UX is made up of resources, which are uniquely identifiable pieces of the
product that need to be secured. Securing resources limits access to specific roles that
have adequate permission to interact with different areas of the system. All resources can
be secured.
The security model in Adaptive UX is more granular than the model in QAD Adaptive
ERP. Resources in Adaptive UX range from the app level down to individual fields, unlike
QAD Adaptive ERP resources, which are typically executable programs and certain
activities that do not appear on the menu.
Adaptive UX Resources
The following resources can be secured in Adaptive UX.
App. A collection of programs that express a cohesive set of business services
through a well-defined interface. The set of exposed services defines a high-level
area of business functionality.
Business Component. The business logic and data necessary to represent real-world
elements, such as sales orders, within Adaptive UX.
Browse. The QAD Adaptive ERP, Progress-based “.p” browse programs that display
data in a read-only browse table. You cannot edit or delete the existing data, nor add
additional records to the browse table. You can filter the data.
View. A screen that organizes a toolbar, a grid with a list of records, and a form for
completing work. Related fields and functions are grouped within panels, and a
navigation bar provides access to panels.
Report. A view of data generated from multiple data sources based on a given filter
criteria.
Service. The methods for each business component as interface services, identified
with the entity name and an “i” prefix in their URI. For example:
urn:service:[Link] for Generalized Code.
Dashboards and KPIs. Metrics used to create Action Centers. Dashboards are
directly associated with users, unlike other resources that are associated with roles.
Field. A single element of data in a business component.
Field Group. A logical grouping of fields that are part of a business component and
can be secured as a single entity.
Menus
The Menus browse is a collection of all menus that exist in Adaptive UX environments.
The browse displays all QAD-provided role menus, all non-QAD role menus, and all user
favorites menus. Users see the menus for the roles to which they are granted access in
Adaptive UX.
Menus are made up of menu-eligible resources, which are resources that have their own
views and can be displayed in the Menu Bar. These items are grouped in folders in a tree
structure on the Menu panel of the hybrid view. The folder name appears on the Menu
Bar and the folder contents, or pages, make up the associated drop-down menu.
Role Menus
QAD-provided role menus cannot be modified or deleted but can be copied to create new
role menus for roles. The new role menus can be edited and updated with additional
folders, pages, and permissions. Role menus are selected through Adaptive UX menu bar
and users see a role menu for each role to which they are assigned that has a defined
role menu.
Comments? Go to [Link]/MfwKHm
130 QAD Security Administration Guide
Before you can create a new role menu, the system must have a role that is not yet
associated with a role menu. To create a new role, see “Create a New Adaptive UX Role”
on page 95.
1 Select New.
2 Select Role from the Type drop-down menu.
3 In the Name lookup, select the role to which to assign this role menu.
4 Save the role menu.
5 Add pages and folders to the new role menu. These folders and pages become the
drop-down menus available in the menu bar for this role.
• Pages are the system’s menu items.
• Folders organize pages. Enter a new folder name or choose a label from the
options in the system. If you select from the system-provided labels, the folder
names will translate for users assigned different language codes.
Note All role menus appear on the mobile app for users who have mobile access. If a
role does not require access to specific functions on the mobile app, clear the Include
in Mobile App checkbox.
6 Save the populated role menu.
7 Select Permissions at the bottom of the screen. Role Permissions displays only the
resources that make up the role menu you created. You must grant access to these
resources for the role to have access to all required areas of Adaptive UX.
Fig. 7.1
Allow All Permissions
8 Select Allow All Permissions from the Actions menu and confirm the action by clicking
OK.
9 All of the secured resources should now have a green circle next to them. The system
saves the setup automatically.
Before you can copy a role menu to create a new role menu, the system must have a role
that is not yet associated with a role menu. To create a new role, see “Create a New
Adaptive UX Role” on page 95.
1 On the Menus browse, highlight the role menu you want to copy.
Fig. 7.2
Menus
Comments? Go to [Link]/MfwKHm
132 QAD Security Administration Guide
Fig. 7.3
Copy a Role Menu
5 Select Save. Then select Permissions at the bottom of the screen. The Role
Permissions window displays the resources that make up the role menu you copied.
These resources need to be allowed access for the new role to have access to all
required areas of Adaptive UX.
Fig. 7.4
Allow All Permissions
6 Select Allow All Permissions from the Actions menu and confirm the action by clicking
OK.
7 All of the secured resources should now have a green circle next to them. The system
saves the setup automatically.
Use the Import EE Role Permissions action to create role menus and role permissions
that align with EE role permissions. The action creates a set of menu-eligible resources in
top-level folders based on the functional area. Those folders become the menu options in
the menu bar of Adaptive UX. You can reorganize the menu items and set permissions
directly from the Menus screen, or you can choose to have the system set permissions
during import.
See “Import EE Role Permissions” on page 145 for more details on this action.
Favorites Menu
The Favorites menus are not provided by QAD and can be updated by users and
administrators; however, only administrators can configure the Favorites menus from the
Menus browse. Users can configure their own Favorites menu through the user drop-
down in the menu bar.
4 Add Pages and Folders to the new Favorites menu. These folders and pages become
the drop-down menus available in the menu bar for this role.
a Pages are the system’s menu items.
b Folders organize pages. Enter a new folder name or choose a label from the
options in the system. If you select from the system-provided labels, the folder
names will translate for users assigned different language codes.
5 Click Save.
Comments? Go to [Link]/MfwKHm
134 QAD Security Administration Guide
6 Click Permissions to check that the user’s role has adequate permission to access the
newly assigned Favorites menu. If all resources are not green, you can choose Allow
All Permissions from the Actions menu. but remember that you are updating the
resources for the role, not just this user.
You can use an existing menu as the basis of a user’s Favorites menu. This action can
only be done for a user that does not have a Favorites menu.
1 On the Menus browse, highlight the menu you want to copy.
Fig. 7.6
Menus
6 Click Permissions to check that the user’s role has adequate permission to access the
newly assigned Favorites menu. If all resources are not green, you can choose Allow
All Permissions from the Actions menu, but remember that you are updating the
resources for the role, not just this user.
3 Click Submit.
4 Select the type of menu you are creating, either Role or Favorites
5 Select the name from the lookup of the role to which to assign this menu.
6 Assign the permissions by clicking the blue Permissions button.
Note You cannot have duplicate resources in the new menu, and the system does not
resolve duplicates. If your combined menu has resources listed in multiple places, you will
receive an error if you try to save the new menu. Find the duplicates in the Menu panel
and delete them.
7 Save the new menu.
Comments? Go to [Link]/MfwKHm
136 QAD Security Administration Guide
Role Permissions
You can access the Role permissions information in the following ways:
• From the main Role Permissions screen
• From the Menus screen: by clicking the Permissions button in the bottom right corner
of a screen
• From other screens: by selecting the Permissions option from the More drop-down in
the toolbar
It is recommended to set up and configure permissions for Adaptive UX using role menus
and the Permissions option on individual screens. The Role Permissions tree is not
intended to be used to set all permissions for a role and should be used sparingly.
Adaptive UX arrives with a variety of predefined, pre-configured roles. These roles are
provided as starting points for the roles you will create for your system and their
permissions cannot be updated on Role Permissions. You can review the default roles’
permissions and use these default settings as a guide when assigning permissions to
new roles.
Note Use role menus to accurately and efficiently set permissions on new roles. See
“Role Menus” on page 129 for more information. See “Fields and Field Groups” on
page 151 for information on securing individual fields or field groups.
The main Role Permissions screen displays all the resources that can be secured in the
system. In the role permissions tree, the resources are organized by a functional menu
structure and are divided into two groups: Menu and Not in Menu, as shown in Figure 7.8.
Fig. 7.8
Role Permissions
The Menu structure contains menu-eligible resources and their dependencies. The menu-
eligible resources include the following types:
• Browse-only views
• Hybrid views
• Form-only views
• Reports
• URL links
• Action centers
The Not in Menu structure contains all the remaining resources, as well as the resources
of the Menu type that do not display in the Menu structure. The Not in Menu resources
include the following types:
• KPIs
• Services
• Scripts
• Views that are used for drill-downs and lookups
Far fewer resources are available to secure in the permissions tree when you select
Permissions from the toolbar on an individual screen, such as Item in Figure 7.9. The
Role Permissions window shows only the resources associated with that screen, which
allows you to secure only the resources that are required for a role to successfully access
the associated screen.
Fig. 7.9
Item Permissions
Comments? Go to [Link]/MfwKHm
138 QAD Security Administration Guide
When you allow Full Access to a view, all dependencies of that view are granted the
required permissions. To secure separate parts of a screen, you need to expand the
corresponding group of dependencies and set permissions separately by selecting or
clearing the checkboxes for the available operations, such as Create, Delete, Read, Write,
and so on.
Note For security reasons, grant access to the minimum permissions a role needs to
complete the required tasks.
Removing Permissions
Removing permissions at the view level does not remove permissions for the
dependencies. This secures permissions for the components that are dependencies to
other areas of the application. This way the system prevents breaking permissions in
other screens.
To clear permissions for a view and its dependencies, select Clear Permissions from
Actions in the toolbar.
Field Permissions
For field security, permissions are inherited from the parent component, as the owning
element. This approach secures the correct permission setup: you cannot allow
permissions for a separate field or field group if there are no such permissions for the
parent component. Fields and field groups are the only areas of the permission tree that
display the Inherited From column to indicate permission inheritance.
To remove any permission for a field or field group, clear the corresponding checkbox in
the Allow column, as shown in Figure 7.10.
Note When setting up permissions for fields and field groups, the system displays an
information message about the permission inheritance.
Fig. 7.10
Permission Inheritance for a Field Group
Permission Tree
The permission tree identifies how resources are organized in the system. Resources are
arranged in a hierarchy and may have multiple permission types. Figure 7.11 shows the
expanded permission tree for the AccountingClerk role.
Comments? Go to [Link]/MfwKHm
140 QAD Security Administration Guide
Fig. 7.11
Role Permissions Tree
A solid green circle represents full access to the operations associated with the resource.
A white circle with a gray outline represents no access. A half-green circle indicates
partial access. In the tree, the circle next to All Resources is half green, which indicates
that the role is granted access to some—but not all—resources in the tree. The role has
no access to CSR Browse and partial access to Customer Service Center. The circle next
to CSR Browse is white with a gray outline, as is every circle nested below it, indicating no
access to any of those resources. The circle next to Customer Service Center is half
green, indicating partial access to the resources that make up Customer Service Center.
The Customer Service Center resource contains Contacts, which has a solid green circle,
indicating full access to the resource.
The permission tree is based on the following structure:
• Views: system resources marked with a green pencil icon
• Actions: securable actions available in the current view toolbar.
• APIs: business components and services that make up a screen, including the
browse-only portion of a hybrid screen.
• Field Groups: field groups and securable fields for the current view.
• Grids: external grids available in the current view. For more information about
external grids, see “External Grids” on page 149.
Note Internal grids behave as field groups.
• Runtime Dependencies: the runtime dependencies of the current screen; for
example, other views triggered by a custom button.
Note APIs and Runtime Dependencies are only visible when you select the
Advanced View checkbox.
You can search for resources by URI or by label name using the Search feature at the top
of the permissions hierarchy tree. Search results display the resource type icon to the left
of the search list items and partial URIs to the right of the search list items.
Note If you select the Advanced View checkbox, you can search for the business
components that are part of the advanced resources, such as APIs or Runtime
Dependencies. Otherwise, you can only see the search results based on the resources of
the default view.
Fig. 7.12
Permissions Search
Figure 7.12 shows the search results for requisition approvals for the VP Logistics role.
You can click the search result resources to view and update their permissions. If you
need more information to determine which of the results is the one you are searching for,
you can view each resource within the context of the permission hierarchy by selecting it
and clicking the blue arrow next to it.
Comments? Go to [Link]/MfwKHm
142 QAD Security Administration Guide
Fig. 7.13
Expanded View in Context
The permission tree expands to show where the resource, in blue, fits into the hierarchy,
as shown in Figure 7.13.
Permission Grid
Every resource has an associated permission grid, which displays to the right of the
permission tree when you select a resource in the tree.
Fig. 7.14
Permission Grid
The grid lists the operations for the resource that can be set to Allow.
Note For fields and field groups, the permission grid also contains the Inherited From
column. This column indicates if permissions are inherited from any parent business
component.
Permission. Full Access, Approve, Create, Delete, Read, and Write operations. Every
resource has Read, which allows users of the role to view the data. Full Access allows
or denies access to all other permission operations.
Allow. Select to grant access to an operation. Allow grants a role’s users permission
to use all functionality in the designated area.
Note To be able to approve, create, delete, or write, a user’s role must have Read access
to the resource.
Different resource types have different operations associated with them. Browses, views,
and reports have one line in their permissions grids for allowing read access, while
business entities have multiple lines that can include approve, create, delete, read, and
write.
Below the permissions grid is the resource URI and the Menu Eligible checkbox. This
checkbox identifies the resources that can be added to a role menu and found in the
Menu Search. It is for informational purposes and cannot be changed.
Resource Dependencies
Resources often depend on other resources to create different elements of Adaptive UX.
These dependent entities must be secured for the main resource to have full functionality.
The software automatically identifies dependencies and sets permissions as needed.
Whenever you grant role permissions to a specific view, the dependent elements of the
permission tree are also granted permissions for this role. Even if you clear the view
permissions in the permission grid, it will not propagate to the dependent resources
because the system secures the assigned permissions for the dependencies. To clear the
permission setup completely for all dependencies and child resources, select the view
and click Actions > Clear Permissions.
Comments? Go to [Link]/MfwKHm
144 QAD Security Administration Guide
For example, browses in one business component can be lookups or drill-downs for
another business component. For a lookup or drill-down to function correctly, users must
have Read permission to the associated browse.
Dependencies appear in the tree grouped by separate containers under a main view:
Actions, APIs, Field Groups and Grids. Different views have different sets of the
dependency containers, which show all the resources required to populate the main view.
However, some of the dependencies do not display in the permission tree structure,
because they do not refer to actions, APIs, field groups, or grids. These resources are
added as Runtime Dependencies to the business component associated with the view
and are granted access automatically whenever it is granted to the parent.
Refresh Permissions
Use the Refresh Permissions action if you make updates to role permissions through
Role Permissions Maintain in QAD Adaptive ERP and want the permissions to be
updated immediately in Adaptive UX. The action clears all security-related caches and
reloads permission data. If you do not refresh the permissions using this action, users will
not see updated permissions until the cache automatically updates, which could be 24
hours depending on the settings.
Use the Import EE Secure Resources action to move browses and QRF reports created
in Adaptive ERP into Adaptive UX as secure resources.
Fig. 7.15
Import Secure Resources
This action displays the Import Secure Resources screen, which lists the number of new
browses and new reports that are set to be imported into the defined app. The process
creates the secure resources in Adaptive UX, adds them to the cache, and adds them to
the ElasticSearch index. The resources are imported as menu-eligible and appear in the
Role Permissions tree as individual items.
Use the Import EE Role Permissions action to create role menus and role permissions
that align with EE role permissions. The action creates a set of menu-eligible resources in
top-level folders based on functional area. Those folders become the menu options in the
menu bar of Adaptive UX. You can reorganize the menu items and set permissions
directly from the Menus screen, or you can choose to have the system set permissions
during import.
Fig. 7.16
Import EE Role Permissions
Options
Comments? Go to [Link]/MfwKHm
146 QAD Security Administration Guide
Save New Menus To. New menus are saved to the same app / app URI as the
corresponding role. If the role is stored in Configuration Data, the role’s menu is
created in Configuration Data. If the role is stored in an app, then the role’s menu is
created in that same app.
Existing menus are saved to their existing app URI.
Criteria
Required Criteria. Displays the required criteria that are applied to every import of EE
resources.
Roles
The Roles panel contains a list of the roles to include in the import. Click the Select link to
open a lookup with roles you can import into the current namespace.
Import Options
After you click Submit, the system checks if the selected roles have existing menus and
permissions in Adaptive UX. If they do, a window appears with the following choices.
• Replace: Overwrites the existing role menu and/or role permissions with the imported
settings.
• Append: Adds to the existing role menu or role permissions. The action does not
overwrite existing settings.
• Cancel: Cancels the Submit action and returns you to the Import window.
Permission Troubleshooting
If users can log in to Adaptive UX but cannot access screens that you expect them to
access based on their role assignments, their role may have missing resource
permissions. Use the individual screen’s Role Permissions to assign the proper
permissions.
1 As the administrator, go to the screen the users cannot access.
2 From the More menu, select Permissions.
3 Double-click the role that cannot access the screen. The Role Permissions screen
appears, displaying only the resources that make up this screen. Assign appropriate
access to the operations in the right-hand permission grid.
4 Click Save to grant the role the necessary permissions.
Every Adaptive UX screen corresponds to a view resource that is identified with a
resource URI. The view may require data from other business components, such as a
master screen’s subordinate detail screens, lookups, and services. If a user needs
access to an Adaptive UX screen, that user’s role needs access to a variety of other
resources for the user to have the full functionality of that screen. If the user’s role does
not have sufficient permissions for the different resources, the user is receives an “Error
403: Access Denied, You do not have permission to access the requested page.” For
information on identifying dependent resources and missing permissions, see “Role
Menu Dependency” on page 153.
You can set up permissions for the following screens and elements in Adaptive UX:
• “Hybrid Browse Screens” on page 147
• “Browse screens” on page 148
• “External Grids” on page 149
• “Lookups and Dashboard Panels” on page 150
• “Fields and Field Groups” on page 151
Hybrid browse screens allow you to view both a static data table and the table’s
associated interactive elements, such as a requisition and that requisition’s lines. The
secured resources for hybrid browses are located in the menu containers of the
permission tree, as shown in Figure 7.17. The associated actions, APIs, field groups, and
grids are collected under the view and can be secured from here.
To configure access to a hybrid browse resource, find it in the Permissions tree and
provide the needed permissions.
Comments? Go to [Link]/MfwKHm
148 QAD Security Administration Guide
Fig. 7.17
Hybrid Browse
Sales
Order
hybrid
browse
Browse screens
Browses are browse programs that serve as power browses or lookup browses. A browse
displays data in a read-only table. You cannot edit or delete the existing data, nor add
additional records to the browse. You can filter the view.
Before a user can open a browse and view its data, you must assign the correct read
permissions to the associated Browse resource. Permission to the Browse resource gives
the user access to the data that loads into the screen.
To configure access, find the associated browse resource in the Permissions tree, as
shown in Figure 7.18.
Fig. 7.18
Invoice Price Lists Browse in the Permission Tree
External Grids
Once permissions are set for hybrid browse screens at the view level, some of the screen
elements may require additional permission configuration to ensure complete access to
all screen elements on the hybrid browse screen. This includes external grids.
External grids have their own hybrid browse screens that require permission
configuration. To access these hybrid browse screens, click the Details button available in
the external grid.
For example, the Order Lines external grid of the Sales Order hybrid browse shown in
Figure 7.19 must be secured separately to provide complete access to the screen.
Comments? Go to [Link]/MfwKHm
150 QAD Security Administration Guide
Fig. 7.19
External Grid
To secure an external grid, locate it in the permission tree, as shown in Figure 7.20, and
assign corresponding permissions.
Fig. 7.20
Order Lines in the Permission Tree
Data linked to lookup tables and dashboard panels are also secured resources. In some
cases, these resources are used in multiple places across Adaptive UX. With lookups,
access is granted automatically if it is granted to the related field. However, if a lookup
table is not associated with any field, you must set its permissions to read access.
Otherwise, users receive an access denied message when they attempt to open the
lookup table from the screen. When a dashboard panel does not have read access, the
system displays “NO_DATA_RETURNED” in the panels.
Note This message does not always indicate that access is not configured for dashboard
panels. The message also displays if there is actually no data in the back end.
Note Lookup tables and dashboard panels do not have associated view resources.
Individual fields and groups of fields are resources that can be secured. Fields and field
groups only have read and write permissions. If you determine that more fields in your
system need to be secured, contact QAD Services.
Note Since Roles and Permissions are set at the system level, field security also must be
set at the system level to avoid fields being inaccessible to users in different apps.
Fields
Fields can be secured from the Role Permissions screen and can be identified by their
URI, which includes the word field, as shown in Figure 7.21. Fields that are hidden from
the screen by field security display with a lock icon in the Configure Panels pop-up.
Fig. 7.21
Field Permission
Field Groups
A field group applies permission inheritance to each field within the group. Field groups
can be secured from the Role Permissions screen and can be identified by their URI,
which includes the fg letters, as shown in Figure 7.22.
Comments? Go to [Link]/MfwKHm
152 QAD Security Administration Guide
Fig. 7.22
Field Groups
Secure fields and field groups from individual screens containing the fields.
1 Navigate to the screen that requires field security.
2 Select Permissions from the More drop-down in the toolbar to launch the Role
Permissions window.
3 Select the role that needs field security enabled.
4 Find the field in the role permissions tree.
5 To make the field read-only, select Allow for the Read checkbox. To remove the field
entirely from the screen for this role, clear both the Read and Write checkboxes.
6 Select Save.
The format of a field URI is:
urn:field:[Link]:[Link]. This string
consists of the following sections:
urn:field: Prefix that identifies this URI as a field.
[Link]. Name of the business component that owns the
field.
TableName. Name of the table to which this field belongs.
FieldName. Name of the field.
To add additional secured resources to Adaptive UX, contact QAD Services or Support.
1 Identify which resources are not properly secured and are missing permissions. In
particular, look for resources in the Permissions column that do not have adequate
permissions.
2 Copy the URI of the resource requiring permission.
Comments? Go to [Link]/MfwKHm
154 QAD Security Administration Guide
Note Because the Search field on Role Permissions has, by default, a 48-character limit,
copy the end of the URI to ensure your search returns the most relevant resources. If you
try to paste more than 48 characters, only the first 48 will appear in the field and be
searched.
3 Go to Role Permissions.
4 Edit the role that requires access to the denied resource.
5 In the Search field, paste the URI of the resource requiring permission.
6 Select the resource.
7 Grant the necessary permission in the permission tree and save.
Fig. 7.24
Resource Permission Types
You can use the search functionality to determine which roles or licenses have access
control entries for a specific permission type. For example, you can search the Full
Access permission type and see all containers and resources that have Full Access
assigned. The Resource Type column displays the container type, including individual
applications and business components acting as containers because they have child
components or services.
Comments? Go to [Link]/MfwKHm
156 QAD Security Administration Guide
Fig. 7.25
Role Resource Audit Report
The report displays what permissions have been granted to or revoked from the specified
resource. If the permissions were newly defined instead of changed, the Old Value
column is blank and the New Value column displays the initial record settings.
Fig. 7.26
Role Resource Audit Report - Example
In Figure 7.26, ROLE-07 was granted read access to the Purchase Orders Approval
screen.
For more detailed information on audit trail reports and enabling auditing in your
environment, see Chapter 13, “Auditing,” on page 329.
4 In the permissions grid, select the Allow checkboxes for the appropriate levels and
then save.
Comments? Go to [Link]/MfwKHm
158 QAD Security Administration Guide
Fig. 7.28
Stored Views Permission Grid
Note Due to business logic infrastructure, the webui_user role has Create, Delete, Read,
and Write access in addition to Maintain on User Level access. Other roles do not need to
have these checkboxes selected.
Stored views are created and saved on individual screens within Adaptive UX. Based
upon a user’s security permissions and the options selected in the Save Stored View As
window on an Adaptive UX screen, a stored view can be saved to a single domain or
across multiple domains. See the Stored Views entry in the Adaptive UX online help for
information on creating stored views.
Record-Level Security
Important Before implementing record-level security, contact QAD to review
configuration requirements and evaluate how it will affect your system.
Record-level security allows you to restrict user access to individual records. The Record
Level Security browse displays all business components that have record-level security
enabled. When record-level security is enabled on a business component, users must be
granted access to the records, while the roles to which the users belong must have
access to the business component itself. Permission to access a security-enabled record
does not grant access to a business component.
Each business component has a resource instance access table. The table contains the
groups or users that have access to the business component and their related CRUD
permissions. As record-level security is enabled for a business component, the applied
security rules do not take effect immediately because the processing of the rules is
handled by a batch process that individually updates the tables for each instance of a
component.
Important If you enable record-level security in Adaptive UX for business components
that access data also displayed in QAD Adaptive ERP browses, you must remove those
legacy browses in Adaptive ERP. Adaptive ERP does not support record-level security
and users will be able to access secure records to which they have not been granted
permission.
Before you start working with record-level security within the Adaptive UX, set the qad-
[Link] property to true in the
build/config/[Link] file. This enables batch processing of
your security rule records as you create and update them. Adjust other settings as
necessary for your implementation. After you update the [Link]
file, run the following command:
yab webapp-webshell-config-content-update
yab tomcat-webui-restart
Comments? Go to [Link]/MfwKHm
160 QAD Security Administration Guide
and the users who are assigned to the Administrator Role defined in Security Control. You
must share records with other users, through any of the methods described in “Granting
Access to Records” on page 161, before other users can view or edit secure records.
1 To enable record-level security for a business component, select New on the Record
Level Security browse.
Fig. 7.29
Record Level Security
3 Select the owner for the business component’s existing records. The owner can be a
single user ID or a dynamic, non-literal owner chosen from the drop-down menu. Use
the toggle button to switch between options. The dynamic options available in the
menu are all of the character-8 fields on the selected business component. When you
select a dynamic option from the menu, the system checks to see if the value of the
selected field matches a user in the user table. If a user is found in the table, that user
becomes the owner. If the field is blank or the value does not match a user, the current
user securing the records is assigned ownership. You can view the owners of all
secured records on the Secure Records browse.
4 If this business component should inherit its record-level security from another
business component, select the Inherit Security checkbox, then select the parent
business component from the Inherited From lookup.
Note The parent-child business component relationship must already be established
to use this functionality. Set up business component relationships in the Relationship
panel of Business Components.
5 Select Save.
Security Groups
Security groups organize groups of users. You can use these groups to share records
with all three sharing methods. All security groups belong to a single hierarchical
structure. This structure is displayed on the left side of the Security Groups screen. The
right side displays the specific information for the security group selected in the tree.
The tree is arranged alphabetically and cannot be reorganized. Each item in the tree
displays the group’s Group Label, number of users assigned to the group, and a toggle
icon to indicate if the element has child groups associated with it. Members of a parent
group are not automatically members of associated child groups. For example, in
Figure 7.31, the VP of Sales is a member of the North American Sales group, but is not a
member of the North American Sales Representatives group, because the organization
decided the VP of Sales does not require access to all of the sales representatives’
records.
Comments? Go to [Link]/MfwKHm
162 QAD Security Administration Guide
Fig. 7.31
Security Groups Tree and Toolbar
The tree structure is primarily controlled by the toolbar. Use the toolbar to create and
delete groups.
New
Adds a sibling to the selected tree item. You cannot add a new item when the top node is
selected.
Add Child
Delete
Fig. 7.32
Security Groups Main Panel
Main
The Main panel contains the following sections. Enter the Group Code when creating a
new group or a child group.
Group Code. The coded name for the group. This code must begin with a letter and
be two to 32 characters in length. It can contain letters (a-z and A-Z), numbers (0-9),
and the underscore character. It cannot contain spaces.
Group Label. A label for the group, which displays in the tree and at the top of the
Security Groups form. This label can be translated.
Description. A text field for a plain-text description of the group.
Users
The Users grid lists the users who are part of the selected group. To add a user, select
New. Then select a User ID from the lookup and select Save. To remove a user from the
group, select the User ID in the Users grid and then select Delete.
Note Level of access is always set at the role level, so even if a user is in a security group
that has access to a record, if that user’s role does not have access to the record’s
business component, the user cannot access the record.
Manual Sharing
Every secure record has an owner. This owner and other users with adequate access can
grant other users access to a record by sharing the record from the individual business
component’s hybrid view.
1 Double-click the record you want to share.
2 Select Share from the More drop-down menu.
Comments? Go to [Link]/MfwKHm
164 QAD Security Administration Guide
Fig. 7.33
Share Access
3 In the Share screen, first select the type of user who should have access to the
record. You can choose Everyone, User, or Group if security groups have been set up
in the system.
4 Using the lookup in the Name column, select the individual user name or group name.
When Everyone is selected as the Type, the Name column is disabled. All users with
access to the business component can access the record.
5 Select how much access the user should have. The permission levels you can select
are:
• Read Only
• Read/Write
• Full Access
• Admin
Note Admin permission provides full access plus the ability to change the ownership
of a record, as long as the Owner field for the business component is set as Current
User in Record Level Security.
Fig. 7.34
Define Share Access
You can automate sharing using security rules, which filter and apply record-level security
permissions against record-level security enabled business components. When record-
level security is enabled on a business component, users require access to the
component itself through their roles, defined in Role Permissions, and to the specific
instance of a record. Granting access to records does not happen immediately upon save
when using security rules unless you use the action Reapply Security Rules. The rules
are applied through batch processing and it can take some time with large datasets for
the new permissions to take effect. You can view the status of submitted requests on the
Secure Records and Secure Record Detail browses in the Processed column. Requests
that have been saved but not activated display No in the Processed column, while those
that are active in the system display Yes.
Comments? Go to [Link]/MfwKHm
166 QAD Security Administration Guide
Fig. 7.35
Security Rules
Main
Rule Code. The coded name for the rule. This code must begin with a letter and be
two to 32 characters in length. It can contain letters (a-z and A-Z), numbers (0-9), and
the special characters # $ _ % &. It cannot contain spaces.
Rule Label. The label for the rule, which displays at the top of the Security Rules form.
This field supports translatable strings.
Business Component. The business component to which this rule applies. The lookup
only displays record-level security enabled business components that do not inherit
their record-level security from another component.
Description. A text field for a plain-text description of the rule.
Active. A checkbox that determines if the rule is in effect. Until the Active box is
selected, the rule does not take effect, even upon save.
Scope. A dynamic text field that supports comma-separated values for restricting the
scope of a rule. This field label varies, depending on the business component
selected from the lookup. You cannot define scope for a system-level business
component. All other business components can be limited in scope based on their
system level, from domain, to entity, to site. If no information is entered in the field, the
rule is not limited at the defined system level.
Criteria
This grid filters records from the selected business component based on the selected
criteria. The rules for combination of conditions are standard. Criteria with different fields
are joined with an AND operation. Lines that have the same field code are joined with an
OR operation.
Field. The field that is evaluated in the rule. The drop-down menu contains:
• The selected business component’s fields.
• Fields from the Instance Security Access Table, which includes fields such as
Owner.
• Fields from business components that have relationships with the selected
business component as defined on the Business Components screen. This also
includes fields from the related business components’ Instance Security Access
Tables.
Operator. A drop-down menu with operators. Custom operators can appear in this
menu, based on the specified field. For example, Member Of is available when the
Field column is Owner.
Value 1. The item that is being compared against the field value defined in the Field
column. The type of this field varies based on the Field and Operator. For example:
• A numeric Field value shows a numeric input field for Value 1.
• A boolean Field value shows a drop-down menu with yes or no options.
• A user Field value along with a Member Of custom operator shows a lookup of
groups.
• A user Field value without a Member Of operator shows a lookup of users.
You can switch the contents of the Value 1 field by selecting the toggle button directly
to the right of the field. This switches the field from its initial state into a drop-down
menu with variable selections. The selections are fully qualified fields from the
selected business component and related business components that match the data
type of the field in the Field column.
Value 2. The second value for range function. This field is only active when Value 1 is
a range type.
Preview
The Preview option in the Criteria toolbar displays all the records that match the criteria
you entered in the grid. You cannot edit the record information, but it helps you determine
if you are defining the criteria in the way you intended.
Applies To
Comments? Go to [Link]/MfwKHm
168 QAD Security Administration Guide
Permissions . Select how much access the user or group should have. The
permission levels you can select are:
• Read Only
• Read/Write
• Full Access
• Admin
Applies To Parents. Yes or No. Active when Group is the selected type. Determines if
the permissions for a security group are applied to the group’s parents. A child group
can have permissions separate from and greater than the parent’s.
APIs
You can use the Business Logic API to share records with users. Contact QAD for
detailed information on implementing this sharing method.
Fig. 7.36
Reapply Security Rules
Criteria
Search Criteria. The search criteria defined in the Security Rules browse. If no search
criteria were specified, this field displays “No Criteria Selected.”
Required Criteria. This field is always set to Active=Yes. The Reapply Security Rules
screen only displays active rules, with inactive rules automatically filtered out.
Security Rules
The Security Rules grid displays the system's active security rules and selects them all by
default when the window opens. You can clear rules that do not need to be updated
immediately.
Options
The process of reapplying security rules always runs in the background. The Process in
Background checkbox cannot be cleared.
Comments? Go to [Link]/MfwKHm
170 QAD Security Administration Guide
Fig. 7.37
Secure Records
Use this browse to change the ownership of secure records, either as an individual or bulk
action. This is useful if an employee leaves the company and you want to reassign all of
that user’s records to a new user.
To change the owner of an individual record, select the record in the browse and choose
Individual Change Owner from the Actions menu.
Note Individual owners of records do not require administrator rights to transfer their own
records to other users. The owner can go to the business component, highlight the
record, and then select Change Owner from the More menu.
Fig. 7.38
Individual Change Owner
Choose the new owner from the New Owner lookup and then select Submit. The new
owner now has full access to the record. It is important to remember that the previous
owner no longer can access the record unless that user has been granted access through
any method of sharing.
The Secure Record Detail browse is more granular than the Secure Records browse.
While the Secure Records browse lists every record that is secured in the system, the
Secure Record Detail browse lists every user who has access to each record and what
level of access the user has.
Comments? Go to [Link]/MfwKHm
172 QAD Security Administration Guide
Fig. 7.40
Secure Record Detail Browse
Comments? Go to [Link]/MfwKHm
176 QAD Security Administration Guide
The private key file needs to be accessible by the user that started Tomcat. Put it in a
location accessible by that user and change its owner and permissions:
$ chown <tomcat user>:<tomcat group> id_rsa
$ mv id_rsa tomcat/webapps/<app name>/WEB-INF
$ chmod 600 tomcat/webapps/<app name>/WEB-INF/id_rsa
Use the following command to add or change a passphrase to an existing private key file.
1 If not already in your .ssh directory, go to your .ssh directory:
$ cd .ssh
2 Add a passphrase to your private key stored in the id_rsa file:
$ ssh-keygen -f id_rsa -p
Key has comment 'id_rsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
Troubleshooting Tips
If the Connection Manager sessions are not connecting properly via SSH and are stuck in
the initializing state, check the following:
Comments? Go to [Link]/MfwKHm
178 QAD Security Administration Guide
Comments? Go to [Link]/MfwKHm
180 QAD Security Administration Guide
For example, to enable SSL on the AppServers required to secure the Adaptive ERP
client connections, add:
# Adding Appserver SSL configuration
[Link]=1
[Link]=key alias name from step 1
[Link]=key password from step 2
[Link]=appserverdcs://URL returned in step 4/as-mfg
[Link]=1
[Link]=key alias name from step 1
[Link]=key password from step 2
[Link]=appserverdcs://URL returned in step 4/as-fin
[Link]=1
[Link]=key alias name from step 1
[Link]=key password from step 2
[Link]=appserverdcs://URL returned in step 4/as-eam
Note the following fundamental difference in the way role-based security works and the
way these additional forms of operational security work:
• For role-based access to domains and entities or resources secured through Role
Permissions Maintain, no one has access unless it is specifically granted.
• For other types of operational security, all users and roles have access unless specific
access records have been defined. Once access records have been defined, other
users and roles are automatically prevented from having access.
Comments? Go to [Link]/MfwKHm
182 QAD Security Administration Guide
If you use the Sales and Use Tax Interface (SUTI) to communicate tax data between the
system and Vertex’s Quantum for Sales and Use Tax product, set up similar access
controls in Tax Interface Control ([Link]). See Technical Reference: Sales and Use
Tax Interface for information on SUTI.
Access records apply only to the current domain from which they are entered.
Important When you enter exclusions, you also must define users who have access. For
example, if you enter just !user1, you are specifying that user1 does not have access—
but you have not granted access to other users. The result is that no one has access to
the controlled function. To avoid this situation, be sure to enter the appropriate user IDs,
roles, or an asterisk after the exclusions. In this example, !user1,* excludes user1, but
lets all other users run the program.
When you use the asterisk to grant access to all but specifically excluded users, the logic
works correctly only when excluded users are not assigned to roles. The asterisk allows
access to all users assigned the role, even if they have been excluded as individuals.
Table 1.6 lists some examples. User IDs and role names are not case-sensitive.
Table 8.1
Sample Uses of User ID and Role Name
String Description
* All users have access.
mary, manager Only user mary and members of the manager role have access.
!jcd,* Everyone but user jcd has access.
The inverse of the last example does not work. If you put *,!jcd in the field, the system
grants everyone access first and does not go back to check on jcd. Someone using the
jcd user ID would not be excluded. In general, avoid using any exclamation point after
the very beginning of the entry.
The following sections describe field security specific to Enterprise Edition. See “Fields
and Field Groups” on page 151 for details on securing fields in Adaptive UX.
When you install your QAD application, security is not active for any fields, and only a few
fields are eligible for field security.
Use the Dictionary Field Security Report ([Link]) to determine which fields can be
given security.
In the character interface, you also can access the field on a screen and press Ctrl+F. The
information window indicates whether password validation is available for the field.
An eligible field must have a specific validation expression in the data dictionary that
references gppswd.v. The syntax is:
{gppswd.v &field=<dictionary field name>}
Use the Activated Field Security Report ([Link]) to see which fields have security
activated. It also lists privileged user IDs.
Comments? Go to [Link]/MfwKHm
184 QAD Security Administration Guide
The Dictionary Field Security Report ([Link]) lists the fields containing the association
to the validation file as part of their definition.
Protect any of these fields from update by creating a record of privileged user IDs or roles.
This association can be made to any field, and is one of the only database definition
changes you can make that does not constitute a schema change.
1 Add the field name and the list of user IDs that can access the field in Field Security
Maintenance ([Link]).
2 Verify that the field is secured by running the Activated Field Security Report
([Link]).
You can make most fields eligible for field security by adding the validation expression to
the field in the data dictionary. You then recompile the programs that use the field, using
the modified data dictionary. It is not always possible to add field security. Some fields
have preexisting data dictionary validation expressions that prevent the addition of
gppswd.v.
Warning Once you have made a field eligible for field security, you cannot make it ineligible.
You can deactivate the security by removing all user IDs for the field in Field Security
Maintenance ([Link]).
For multiple databases, make your security changes in the database against which you
compile. The changes are then in effect for any other databases against which you run
the compiled code.
1 Identify and list all fields to which you want to add security.
Since recompiles take time, it is more efficient to add all field security at once.
2 Make sure all other users are signed out.
3 Run Field Eligibility Maintenance (mgfldcmt.p, 36.25.22), which changes the
validation expression and message in the data dictionary.
4 Set field security for each field on your list.
The mgfldcmt.p utility prompts for a table and field name on which to activate field
security. Once you enter a valid field and table name and you press Next, you are
prompted for the next entry.
5 Press End to exit Field Eligibility Maintenance.
6 Recompile either all programs or those programs impacted by the changed field
security. If you have custom programs that access these fields, they also need to be
recompiled.
To compile only the affected programs, make a backup copy of [Link] in the
qad directory, and then delete the program names that you do not want recompiled
from the file.
[Link] contains a complete list of all programs.
You also can set up field security for all users that are assigned to a specific role.
1 Assign users to roles in Role Membership Maintain ([Link].1).
2 Execute Field Security by Role ([Link]). This function adds all users who belong to
a specified role or roles to the list of authorized users for a validated field.
Fig. 8.1
Field Security by Role ([Link])
Even with this process, field security is only available at the user level, not the role level.
Field Security by Role is simply a batch utility that lets you add multiple users
simultaneously. This has the following consequences:
• If you remove a user from a role that was given access to a field, that user can still
access the field. To prevent this, use Field Security Maintenance ([Link]) to
remove the individual user.
• You cannot use Field Security by Role to remove multiple users from the list of
authorized users. To remove multiple users, you must remove users individually in
Field Security Maintenance.
• If you delete a role in Role Delete ([Link]), individual records remain on the system
until you delete them in Field Security Maintenance.
Once Field Security by Role is executed for a field and role, all users who belong to the
role display in Field Security Maintenance as authorized to access the field. The
Comments field in Field Security by Role displays as the comment for the field and user
combination in Field Security Maintenance.
Comments? Go to [Link]/MfwKHm
186 QAD Security Administration Guide
Note If you are using the optional QAD Warehousing module, you can also assign
security by warehouse using Warehouse Security Maintenance (4.23.13).
Access by Site
Site security lets administrators control user access to inventory transactions at each site
in a domain. Only authorized users can process transactions at secured sites.
Note By default, users have access to all sites unless security has been defined in this
program.
Access is managed by user and role. A user can access a site only if that user’s ID or role
is specified in the User IDs/Roles field in Site Security Maintenance ([Link]). Use Site
Security Report ([Link]) to view site security defined for system users.
Fig. 8.2
Site Security Maintenance ([Link])
When a user enters a restricted site code in a site-controlled program, the system checks
the value of the User IDs/Roles field associated with the site in Site Security
Maintenance. If the user does not belong to an appropriate role, or if the user is not given
specific access by user ID, an error message displays and the user cannot complete the
transaction.
Programs Affected
• Site security works with programs that change inventory data and have a Site field as
part of the selection criteria.
• Site security checks ranges of sites on batch update programs that meet the previous
criteria: they affect inventory and have a Site field. This includes programs such as
Regenerate Materials Plan (23.2) and Sales Order Auto Allocations (7.1.17).
• Site security does not affect inquiry and report programs.
• Delete and archive programs, Contract Control (11.5.24), and QM Quality
Management Control (19.26.24) do not use site security.
• You must set up each domain individually.
It is important to plan site security carefully and to follow closely the procedures for
creating roles, users, and associations between users and roles. After you have created
any site security records, users who are not listed individually or who have not been
assigned access privileges in Site Security Maintenance ([Link]) cannot complete
transactions at secured sites.
Ranges of Sites
Many programs let you access a range of sites at one time. Site security controls data
updates and processes for ranges of sites. If you enter a range of sites, you must have
access to all of them for the update to occur.
When you enter a range of sites that includes sites to which you do not have access, an
error message displays for the first site code from which you are restricted. You must then
adjust the site range to include only sites that you can access.
Update Restrictions
You can use Site Security Maintenance to specify which roles are allowed to update
inventory at particular sites within a domain. This type of security is discussed in the
section “Access by Site” on page 186.
However, when stringent internal controls for regulatory reporting exist, you may need to
control who can update inventory at a more detailed level than the site. For example, you
might need to allow only certain roles to transfer inventory out of a Quarantine location, or
restrict certain roles from making specific inventory status code changes within a site.
You can use the programs on the Update Restrictions Menu to implement stricter control
over inventory movements and status updates that are completed throughout the system.
Each particular update restriction program affects a set of programs where inventory
transactions occur. Grouping the transactions this way lets you focus control on the areas
that are critical to your business practices.
The specific combination of fields that you use to manage inventory depends on the
particular program that supports the update restriction, but can include item number, site,
location, inventory status code, and the GL account affected by the transaction.
Using the features of Update Restrictions, you can:
• Authorize a role to maintain records, create transactions, or change inventory status
for specific item, site, and location combinations in a set of programs that create
transactions.
• Restrict a role from maintaining records, creating transactions, or changing inventory
status for specific item, site, and location combinations in certain system programs.
• Generate a report of all defined update restrictions.
You should define update restrictions as part of a general security model, which includes
defining roles for your organization, as well as setting up any required site and field
security. The system applies site and field security before update restrictions.
Comments? Go to [Link]/MfwKHm
188 QAD Security Administration Guide
Note The descriptions of the programs in this section only discuss fields that are unique
to that program. The item, number, site, and location fields operate identically in each
program.
You can set up update restrictions for the following types of functions. “General Rules for
Update Restrictions” on page 189 describes the common logic used in all of the functions
to determine whether restrictions apply to a user’s role.
• Inventory transfers. See “Inventory Transfer Restriction Maintenance” on page 190 for
details.
• Inventory details. See “Inventory Detail Restriction Maintenance” on page 191 for
details.
• Issues and receipts. See “Unplanned Issue/Receipt Restriction Maintenance” on
page 192 for details.
• Maintaining all types of purchase orders. See “PO Restriction Maintenance” on
page 193 for details.
• Receipt handling and status change. See “PO Receipts Restriction Maintenance” on
page 193 for details.
• Maintaining sales order, invoice, and quote lines. See “SO Restriction Maintenance”
on page 194 for details.
• Creating shipments and maintaining shippers. See “SO Shipments Restriction
Maintenance” on page 195 for details.
• Maintaining distribution orders (DO). See “DO Restriction Maintenance” on page 195
for details.
• Creating DO shipments. See “DO Shipments Restriction Maintenance” on page 195
for details.
• Creating DO receipts. See “DO Receipts Restriction Maintenance” on page 196 for
details.
• Maintaining records, creating receipts, and completing shipments in SSM. See “SSM
Restriction Maintenance” on page 196 for details.
Update restrictions only apply to the domain where they are defined. If no restrictions are
defined, all roles with access to these programs can perform data updates, as long as
they also have access to the site being updated.
You can enter item number, site, location, and status values using wild cards. Use the
asterisk (*) and exclamation point (!) as inclusion and exclusion wild cards respectively:
• * indicates access to all.
• string* indicates access to all beginning with string.
• string indicates access to that string only.
• !string* indicates access is restricted from all beginning with that string.
• !string indicates access is restricted from that string only.
Use combinations of inclusive and exclusive restrictions to specify both large and small
sets of value combinations.
1 If one restriction is set up, all transactions are validated and have to pass to be
accepted. If no restrictions are set up, all transactions are accepted.
Example As soon as a restriction is set up in Inventory Restriction Detail Maint ([Link]),
then Inventory Detail Maintenance (3.1.1) is secured for all transactions.
2 Defining a record in one of the restriction setup programs only affects the programs
covered by this restriction. For example, defining a restriction in Inventory Restriction
Detail Maint has no effect on Sales Order Maintenance because Sales Order
Maintenance restrictions are specified in SO Restrictions Maintenance ([Link]).
3 The values from the transaction are matched against the restrictions defined. There
has to be one positive match for the transaction to be accepted.
4 If there is more than one match, all must be positive matches for the transaction to be
accepted. In other words, the first negative match will make the transaction fail.
5 There is an implied hierarchy within the fields used to set up the restrictions (Item,
Site, Location, and so on). The hierarchy is the order in which they appear on the
screen where the restrictions are set up. If a transaction matches a field value that is
excluded for a role—for example, Site: !10000—the system fails the transaction
without considering the values of the fields lower in the setup screen.
6 These rules are the same for all transactions that are enabled for this functionality.
The fields may be different from one transaction to another, but the above rules still
apply.
Comments? Go to [Link]/MfwKHm
190 QAD Security Administration Guide
With these restrictions defined, only the specified role can create transactions for items
with any status where:
From and To Site is 10000, From and To Location is 100, and item numbers begin with
22-1
From and To Site is 11000, From Location is 100, To Location is 200, and item
numbers beginning with 22-2
No other role can create transactions for any combinations at all.
Example When users will be prevented from creating transactions for items with only a
few combinations of values, it is best to first define restrictions that allow all changes; then
define additional restrictions for the small set of value combinations where changes are
prevented.
For each role, set access to all (*) for all items, sites, locations, and statuses; then set the
further restrictions:
Item (*), From Site (*), To Site (*), From Location (*), To Location (*), From Status (*),
To Status (*)
Item (!22-200*), From Site (10000), To Site (10000), From Location (100), To Location
(200), From Status (*), To Status (*)
For each role where these restrictions are defined, they prevent transfers from location
100 to 200 for items that begin with 22-200 in site 10000. Transfers are still allowed for
items with all other value combinations.
For each item, restrictions are based on combinations of values for From and To sites,
locations, and inventory statuses. All fields are required.
Fig. 8.3
Inventory Transfer Restriction Maintenance ([Link])
Use roles to streamline security setup. When a new user record is created, you assign
the user a role to ensure they have correct access.
Item Number. Enter the code identifying an inventory item defined in Item Master
Maintenance (1.4.1).
Item codes uniquely identify items or products. These may be raw materials,
purchased or manufactured intermediates, finished items, or packaging materials.
Item codes are also used to identify planning items, configured products, repair parts,
service items, and kits.
Most reports and inquiries can be selected by item number.
Site. Enter the originating site that is part of the definition for this update restriction.
To. Enter the receipt or receiving site that is part of the definition for this update
restriction.
Location. Enter the originating location that is part of the definition for this update
restriction.
To. Enter the receipt or receiving location that is part of the definition for this update
restriction.
Inventory Status. Enter the original or starting status code that is part of the definition
for this inventory restriction.
Restrictions can specify whether this status code can be changed to another specified
status code or whether it can be changed at all. This is part of a restriction definition
that specifies which roles have access to update specific combinations of items, sites,
and locations.
Define status codes in Inventory Status Code Maintenance (1.1.1). Assign inventory
status codes to sites with Site Maintenance (1.1.13) and locations with Location
Maintenance (1.1.18). Optionally assign default inventory status codes for purchase
order or work order receipts to individual items using Item Master Maintenance
(1.4.1), Item Inventory Data Maintenance (1.4.5), or Item-Site Inventory Data
Maintenance (1.4.16).
To. Enter the destination or target status code that is part of the definition for this
inventory restriction.
Multiple To statuses can be specified for each site, location, and From status combination
for an item. Select the Change Inventory Status checkbox and press Next; this displays
the Valid Inventory Status Code frames for maintaining the list of valid To statuses. Enter
a status code in the bottom frame and press Next to add it to the list of valid codes.
If the Change Inventory Status is not selected, the system deletes the list of valid To
status codes defined for the current role, item, and values combination.
Comments? Go to [Link]/MfwKHm
192 QAD Security Administration Guide
Fig. 8.4
Inventory Detail Restriction Maintenance ([Link])
Change Inventory Status. Indicate how you want this update restriction to apply to
inventory status changes:
Not selected: Users can change other inventory details such as assay percentage
and expire date but they cannot change the inventory status.
Selected: Users can modify the inventory status associated with records for the
specified combination of item, site, and location as long as they select an inventory
status associated with this restriction.
Selecting the checkbox displays the list of target status codes that are allowed and
lets you add or remove codes as required.
Status Code. Enter a status code to add to the list of valid target status codes that the
current code can be changed to. The list is part of an update restriction defined for a
particular role and combination of item, site, and location.
Fig. 8.5
Unplanned Issue/Receipt Restriction Maintenance ([Link])
Account. Enter a GL account code as part of an issues and receipts update restriction
defined for a particular role and combination of item, site, and location.
The account number is used when applying update restrictions to programs such as
Issues–Unplanned (3.7) and Receipts–Unplanned (3.9). Define account codes in
Account Create ([Link]).
Sub-Account. Enter a GL sub-account code as part of an issues and receipts update
restriction defined for a particular role and combination of item, site, and location.
The account number is used when applying update restrictions to programs such as
Issues–Unplanned (3.7) and Receipts–Unplanned (3.9). Define sub-accounts in Sub-
Account Create ([Link]).
Cost Center. Enter a cost center code as part of an issues and receipts update
restriction defined for a particular role and combination of item, site, and location.
The account number is used when applying update restrictions to programs such as
Issues–Unplanned (3.7) and Receipts–Unplanned (3.9). Define cost centers in Cost
Center Create ([Link]).
Project. Enter a project code as part of an issues and receipts update restriction
defined for a particular role and combination of item, site, and location.
The account number is used when applying update restrictions to programs such as
Issues–Unplanned (3.7) and Receipts–Unplanned (3.9). Define projects in Project
Create ([Link].1).
PO Restriction Maintenance
Fig. 8.6
PO Restriction Maintenance ([Link])
Comments? Go to [Link]/MfwKHm
194 QAD Security Administration Guide
Multiple To statuses can be specified for each site, location, and From status combination
for an item. Select the Change Inventory Status checkbox and press Next; this displays
the Valid Inventory Status Code frames for maintaining the valid To status codes. Enter a
status code in the bottom frame and press Next to add it to the list of valid codes.
If the Change Inventory Status checkbox is not selected, the system deletes the list of
valid To status codes defined for the current role, item, and value combination.
Fig. 8.7
PO Receipts Restriction Maintenance ([Link])
SO Restriction Maintenance
Fig. 8.8
SO Restriction Maintenance ([Link])
Fig. 8.9
SO Shipments Restriction Maintenance ([Link])
DO Restriction Maintenance
Fig. 8.10
DO Restriction Maintenance ([Link])
Comments? Go to [Link]/MfwKHm
196 QAD Security Administration Guide
Fig. 8.11
DO Shipments Restriction Maintenance ([Link])
Fig. 8.12
DO Receipts Restriction Maintenance ([Link])
Fig. 8.13
SSM Restriction Maintenance ([Link])
Comments? Go to [Link]/MfwKHm
198 QAD Security Administration Guide
When you create shippers, the system determines which inventory movement codes are
available based on the Ship-From site of the shipper. Access to the inventory movement
code also determines if you can select an existing shipper for maintenance. For more
information on movement codes, see QAD Sales User Guide.
Note Inventory movement security does not affect whether a line item from a given sales
order or other originating transaction can be added to a shipper.
You can delete inventory movement security records at any time.
Use Inventory Movement Code Security Browse ([Link]) to display inventory
movement code security records. You can view fields associated with a record by scrolling
the display to the left or right. Fields available as filtering parameters in Browse Options
are also available on the Sort By selection list.
Overview
Corporate governance legislation, such as the Sarbanes-Oxley Act of 2002, demands
that organizations introduce strong internal controls into their business processes. Among
these internal controls is segregation of duties.
Segregation of duties refers to the notion that the duties of individuals in an organization
should be limited to certain areas of responsibility, so as to minimize the ability of any
individual to misappropriate company property. Segregation of duties prevents a single
user from performing two or more phases of a transaction or operation. See “Segregation
of Duties Verification” on page 202 for an introduction to the rules on which segregation of
duties is based.
If a person can commit and conceal errors, irregularities, or both while performing day-to-
day activities, they have generally been assigned or allowed access to incompatible
duties or responsibilities.
The ability to automate and report on internal controls, such as segregation of duties,
reduces the likelihood of non-compliance to corporate governance regulations and also
reduces compliance-related costs.
Figure 9.1 shows the separation of business functions within an organization that
enforces segregation of duties. Pam is responsible for maintaining supplier invoices and
has been assigned the SuppInvCr role. All users assigned this role can create supplier
invoices.
Fig. 9.1
Segregation of Duties Example
Pam
Pam Steve
Steve
SuppInvCr
SuppInvCr SuppPayCr
SuppPayCr
Maintain
Maintainsupplier
supplierinvoices Maintain
invoices Maintainsupplier
supplierpayments
payments
(Supplier
(SupplierInvoice
InvoiceCreate) (Supplier
Create) (Supplier PaymentCreate)
Payment Create)
Steve is responsible for creating supplier payment records and is assigned to the
SuppPayCr role. All users assigned this role can create and modify supplier payments;
however, they cannot maintain supplier invoices since this ability would violate
segregation of duties policy.
Figure 9.2 shows the business functions within an organization that has not implemented
segregation of duties, or which has permitted a known segregation of duties violation. In
this example, users assigned the SuppInvCr role can create supplier payments as well as
create supplier invoices.
Comments? Go to [Link]/MfwKHm
202 QAD Security Administration Guide
Fig. 9.2
Segregation of Duties Violation
Pam
Pam Steve
Steve
SuppInvCr
SuppInvCr SuppPayCr
SuppPayCr
Maintain
Maintainsupplier
supplierinvoices Maintain
invoices Maintainsupplier
supplierpayments
payments
(Supplier
(Supplier InvoiceCreate)
Invoice (Supplier
Create) (SupplierPayment
PaymentCreate)
Create)
Comments? Go to [Link]/MfwKHm
204 QAD Security Administration Guide
Fig. 9.3
Segregation of Duties Setup Flow
Use SOD Matrix Maintain ([Link]) to define the segregation of duties categories that
are mutually exclusive. Segregation of duties compatibility constraints are stored in the
system as pairs in a segregation of duties category matrix. See “Maintain the Segregation
of Duties Matrix” on page 221.
The next step is to define role permissions in your system. This associates application
resources to user roles. See “Define Role Permissions” on page 101. This step is now
constrained by the segregation of duties policy you have defined.
Next define your role membership. This step associates users with roles and—as with the
previous step—is constrained by the defined segregation of duties policy.
If you implement segregation of duties in a new database and set up segregation of
duties categories, compatibilities, and exclusions before setting up roles, segregation of
duties would prevent you from assigning two incompatible roles to a user.
To allow for situations where a technical user account—for example, an integration user—
needs access to all system functions, you can define roles that are exempt from
segregation of duties rules using SOD Role Exclusion ([Link]). See “Segregation of
Duties Role Exclusions” on page 227.
To accommodate situations—a staff shortage, for example—where a user might need to
participate in more than one part of a business process, you can define segregation of
duties policy exceptions by using SOD Policy Exception Create ([Link].1). See
“Maintain Segregation of Duties Policy Exceptions” on page 225.
Use the SOD Violations Report ([Link]) and SOD Log Viewer ([Link]) to view
current segregation of duties policy violations and a violations history file. See “Report
and View Logs and Violations” on page 235.
Segregation of duties violations that arise during segregation of duties maintenance are
recorded in a log. Use SOD Log Archive ([Link]) action to archive log table records.
See “Archive Log Record Files” on page 239.
Comments? Go to [Link]/MfwKHm
206 QAD Security Administration Guide
When a resource is removed from the list of resources allowed for a role, the system runs
the Rule 1 and Rule 2 validation. The validation is run before and after the deletion to
detect if an existing violation has been solved by removing the resource. A new entry is
written to the segregation of duties log if the deletion fixes an existing violation.
Fig. 9.4
Role Permissions Validation
SOD Cat1 SOD Cat2
Supplier Invoice Supplier Payment
Creation Creation
!
User is prevented from
Save saving role permissions that
violate SOD
Comments? Go to [Link]/MfwKHm
208 QAD Security Administration Guide
Fig. 9.5
Role Membership Validation
SuppPayAdmin SuppInvAdmin
Role User specifies permissions
Permissions for roles SuppPayAdmin
Maintain
+ Supplier Payment
+ Supplier Invoice Menu
Activity Menu and SuppInvAdmin
!
User is prevented from
Save saving role membership that
violates SOD
The user who maintains POs has to take personal leave unexpectedly and the PO receipt
clerk has to perform both duties for a number of days. A segregation of duties policy
exception is defined for this, and the PO maintenance role is assigned to the PO receipts
clerk. The assignment of both roles violates segregation of duties rules, but because of
the policy exception, no violations are raised.
A user attempts to delete the segregation of duties policy exception, but is blocked from
doing so. Deleting the exception causes indirect segregation of duties violations.
Fig. 9.6
Indirect Segregation of Duties Violation
POMaint
POMaint and POReceive
SOD Matrix
cannot be combined Linked Resource:
Puchase Order
Maintenance
SOD Policy
A user attempts to delete
Exception Delete the policy exception
Comments? Go to [Link]/MfwKHm
210 QAD Security Administration Guide
Table 9.1
Segregation of Duties Rule Matrix
Segregation of Duties
Segregation of Segregation of Duties Active, Active, SOD Blocking
Action Duties Inactive SOD Blocking Disabled Enabled
You add a resource to a role in No segregation Rule 1: Runs segregation of Rule 1: Runs segregation of
Role Permissions Maintain of duties duties violation checks. The duties violation checks. The
([Link]), causing violations. checking. action is blocked. action is blocked.
Rule 2: Runs segregation of Rule 2: Runs segregation of
duties violation checks. The duties violation checks. The
action is not blocked and the action is blocked.
violation is logged.
You remove a resource that No segregation Rule 1: Validates segregation of Not applicable.
caused violations from a role in of duties duties violation checks. The
Role Permissions Maintain checking. previous violation is fixed.
([Link]). Rule 2: Validates segregation of
duties violation checks. The
previous violation is fixed.
You add a user to a role in Role No segregation Rule 2: Runs segregation of Rule 2: Runs segregation of
Membership Maintain ([Link]), of duties duties violation checks. The duties violation checks. The
causing violations. checking. action is blocked. action is blocked.
You remove a user that caused No segregation Rule 2: Runs segregation of Not applicable.
violations from a role in Role of duties duties violation checks. The
Membership Maintain ([Link]). checking. previous violation is fixed.
You add a resource to a No segregation Rule 1: Runs segregation of Rule 1: Validates segregation
segregation of duties category, of duties duties violation checks. The of duties violation checks.
causing violations. checking. action is not blocked and the The action is blocked.
violation is logged. Rule 2: Validates segregation
Rule 2: Runs segregation of of duties violation checks.
duties checks. The action is not The action is blocked.
blocked and the violation is
logged.
You remove a resource that No segregation Rule 1: Runs segregation of Not applicable.
caused violations from a of duties duties violation checks. The
segregation of duties category in checking. previous violation is fixed.
SOD Category Membership Rule 2: Runs segregation of
Maintain ([Link]). duties violation checks. The
previous violation is fixed.
You define an incompatibility in No segregation Rule 1: Runs segregation of Rule 1: Runs segregation of
SOD Matrix Maintain of duties duties violation checks. The duties violation checks. The
([Link]). checking. action is not blocked and the action is blocked.
violation is logged. Rule 2: Runs segregation of
Rule 2: Runs segregation of duties violation checks. The
duties checks. The action is not action is blocked.
blocked and the violation is
logged.
Segregation of Duties
Segregation of Segregation of Duties Active, Active, SOD Blocking
Action Duties Inactive SOD Blocking Disabled Enabled
You delete an incompatibility in No segregation Rule 1: Runs segregation of Not applicable.
SOD Matrix Maintain of duties duties violation checks. The
([Link]). checking. previous violation is fixed.
Rule 2: Validates segregation of
duties violation checks. The
previous violation is fixed.
You define an exception in SOD No segregation Rule 1: Validates segregation of Not applicable.
Policy Exception Create of duties duties violation checks. The
([Link].1) that rectifies an checking. previous violation is fixed.
existing violation. Rule 2: Validates segregation of
duties violation checks. The
previous violation is fixed.
You delete an exception in SOD No segregation Rule 1: Runs segregation of Rule 1: Runs segregation of
Policy Exception Delete of duties duties checks. The action is not duties violation checks. The
([Link].4). The policy checking. blocked and the violation is action is blocked.
exception had caused a previous logged. Rule 2: Runs segregation of
violation to be resolved, and is Rule 2: Runs segregation of duties violation checks. The
now deleted. duties checks. The action is not action is blocked.
blocked and the violation is
logged.
You use SOD Role Exclusion No segregation Rule 1: Runs segregation of Not applicable.
([Link]) to define a of duties duties violation checks. The
segregation of duties exclusion checking. previous violation is fixed.
for a role. The exclusion rectifies Rule 2: Validates segregation of
an existing violation. duties violation checks. The
previous violation is fixed.
You clear the Role is Excluded No segregation Rule 1: Runs segregation of Rule 1: Runs segregation of
from SOD field in SOD Rule of duties duties violation checks. The duties violation checks. The
Exclusion ([Link]). The role checking. action is not blocked and the action is blocked.
exclusion had caused a previous violation is logged. Rule 2: Runs segregation of
violation to be resolved, and is Rule 2: Runs segregation of duties violation checks. The
now reset. duties violation checks. The action is blocked.
action is not blocked and the
violation is logged.
Segregation of duties is activated No segregation Rule 1: Runs segregation of Rule 1: Runs segregation of
in SOD Configuration of duties duties violation checks. The duties violation checks. The
([Link]). checking. action is not blocked and the action is blocked.
violation is logged. Rule 2: Runs segregation of
Rule 2: Runs segregation of duties violation checks. The
duties checks. The action is not action is blocked.
blocked and the violation is
logged.
Segregation of duties is disabled No segregation Rule 1: Existing violations are Not applicable.
in SOD Configuration of duties fixed.
([Link]). checking. Rule 2: Existing violations are
fixed.
Comments? Go to [Link]/MfwKHm
212 QAD Security Administration Guide
Before setting up segregation of duties, you must create user records in the system and
provide basic identifying information. Use User Maintenance (36.3.1) to define users in
your system. Users must be defined in the system before they can be assigned to a role.
See “Set Up Users” on page 104.
You also can define user roles—but not role permissions or role membership—as a
prerequisite activity. See “Define Roles” on page 93.
Fig. 9.7
SOD Configuration ([Link])
SOD Is Active. Select the checkbox to activate rule checking for segregation of duties.
If you activate segregation of duties, all validation rules are run to check for violations.
You cannot continue implementing segregation of duties if role permission (Rule 1)
violations exist on your system. You must deactivate segregation of duties, resolve the
violations raised, and then reimplement segregation of duties.
When you first begin to implement segregation of duties, it is recommended that you
deactivate segregation of duties rule checking, and only activate it again when you
have defined all categories, the segregation of duties matrix, linked resources to
segregation of duties categories, and defined roles. If you deactivate segregation of
duties, the system does not check for role permission and role membership violations,
and notification and logging are also disabled.
If you deactivate segregation of duties, all existing violations are deleted, and log
entries are created for violations that were rectified.
Block SOD Violations. Select this checkbox if the system must block any changes to
role-based security that would allow users to access conflicting resources. The effect
of selecting this field is that all indirect violations become blocked. Direct violations are
always blocked, regardless of the setting of the Block SOD Violations field.
If this field is not selected, administrators are not blocked from providing users with
access to functions with conflicting segregation of duties categories. However, any
violations are still recorded in the log files.
Important Users are always blocked from performing actions in Role Permissions Maintain
([Link]) that cause Rule 1 violations and are always blocked from performing actions in Role
Membership Maintain ([Link]) that cause Rule 2 violations.
If you select this field, the system prevents administrators from making changes to
role-based security that violate role permission (Rule 1) and role membership (Rule 2)
segregation of duties rules. If you activate blocking for rule violations, the violations
log will always be empty because administrators are actively blocked from performing
actions that violate segregation of duties rules.
When you enable this field, the system checks if violations exist, and displays an error
if violations are found. The Block SOD Violations field cannot be enabled until these
violations are fixed.
If you leave the field clear, the system does not block an administrator from making
changes to role-based security that violate role permission (Rule 1) and role
membership (Rule 2) segregation of duties rules. The violations raised are written to
the segregation of duties log.
The default value is clear.
Comments? Go to [Link]/MfwKHm
214 QAD Security Administration Guide
Fig. 9.8
SOD Category Create ([Link].1)
Fig. 9.10
SOD Category View, Linked Resources
Comments? Go to [Link]/MfwKHm
216 QAD Security Administration Guide
Delete Categories
Use SOD Category Delete ([Link].4) to delete a segregation of duties category. You
can only delete a segregation of duties category if it is not associated with a resource. If
you try to delete a category that is associated with a resource, a message displays and
you cannot proceed.
When a segregation of duties category is deleted, the system recalculates the category
compatibility matrix to remove the sets of pairs that contain the deleted category. The
system also recalculates rule violations in the system, and logs the fixes.
After deleting a segregation of duties category, review the SOD Violations Report
([Link]) to verify that the resulting segregation of duties setup satisfies your internal
controls requirements.
Fig. 9.11
SOD Category Excel Integration ([Link].5)
Comments? Go to [Link]/MfwKHm
218 QAD Security Administration Guide
Fig. 9.12
SOD Category Membership Maintain ([Link])
To facilitate the assignment of resources, you can use the Filter field at the top of the
screen to search for menu labels, menu item entry numbers, URNs, and segregation of
duties categories.
Fig. 9.13
SOD Category Membership Maintain, Filtering
SOD Category Code (header). Specify a segregation of duties category and click the
Load Tree View button to display the menu tree view with menu items assigned that
segregation of duties category highlighted in bold.
Comments? Go to [Link]/MfwKHm
220 QAD Security Administration Guide
Filter. Specify values to search for menu labels, menu item entry numbers, URNs, and
segregation of duties categories.
Category (grid). Select a category from the drop-down on a grid row to assign that
segregation of duties category to the resource on that row. A resource can only be
associated with one category or no categories.
A right-click context menu option is available for lines containing two mutually exclusive
segregation of duties categories. The Show Exceptions option opens a browse with all
known exceptions for this conflicting pair of categories.
Comments? Go to [Link]/MfwKHm
222 QAD Security Administration Guide
Fig. 9.16
SOD Matrix Maintain, Context Menu
When you save new information, the system checks to see if segregation of duties policy
violations have been introduced based on existing category assignments to application
resources, resource assignments to roles, and user assignments to roles.
If the modified matrix introduces new segregation of duties violations, the system issues a
warning and creates a log record for each violation. Use the SOD Violations Report
([Link]) to identify any violations.
If the modified matrix fixes existing segregation of duties violations, the system logs this.
This situation typically occurs if two incompatible categories are changed to be
compatible.
If the Block SOD Violations field is selected in SOD Configuration ([Link]), you are
blocked from saving any matrix change that introduces segregation of duties violations.
Fig. 9.17
SOD Matrix Maintain ([Link])
SOD Category 1. Specify a segregation of duties category code for which you want to
define compatibility.
SOD Category 2. Specify a segregation of duties category code for which you want to
define compatibility.
Show only not combinable categories. Select the field to only display incompatible
pairs for the segregation of duties category or categories you specified in the SOD
Category 1 and SOD Category 2 search fields.
Grid
SOD Category 1. Enter a code that identifies a segregation of duties category defined
in SOD Category Create ([Link].1).
SOD Category 2. Enter a code that identifies the segregation of duties category to be
marked as compatible or incompatible with the first category code.
Cannot be Combined with. Select the field to indicate that the two category codes are
mutually exclusive. If the field is not selected, this indicates that the category codes
are compatible.
Level. Enter a value from 1 to 5 to associate a conflict level with the mutually exclusive
category codes.
This field is only enabled if you select the Cannot Be Combined with field.
Comments. Enter text to explain why the two categories are mutually exclusive.
Because the comments are typically more than just one line, you can right-click and
open a dialog box in which you can enter your comments. The Comments field in the
grid only shows the first part of the comment.
Note If you clear the Cannot be Combined with field, the comments you recorded for
the two categories that were previously mutually exclusive are cleared the next time
you save.
Fig. 9.18
SOD Matrix Maintain, Comments Dialog
Comments? Go to [Link]/MfwKHm
224 QAD Security Administration Guide
Fig. 9.19
SOD Matrix Maintain Excel Spreadsheet
A segregation of duties category combination can appear twice in the grid, for example,
one entry for InvoiceEntry-InvoiceAppr and another entry for InvoiceAppr-InvoiceEntry. In
this case, both rows are exported to Excel.
You can import your modified segregation of duties matrix spreadsheet using the Import
from Excel option in SOD Matrix Maintain ([Link]).
If there are two entries in the segregation of duties matrix spreadsheet for the same
segregation of duties category combination (for example, A-B and B-A), you must modify
both rows if you want to update the segregation of duties matrix for these categories. If
you modify one row, for example, to add comments or deselect the compatibility indicator,
but do not make an identical modification to the other row, the system displays a screen
indicating that conflicts exist.
Fig. 9.20
SOD Matrix Maintain, Conflicts
For every conflict found, you must indicate which of the conflicting pairs you want to
import by selecting the Selected field. In the example shown in Figure 9.20, the Cannot
be Combined with indicator has a different value for the otherwise identical pairs for
categories APClerk/APPayments and APPayments/APClerk. In this example, the user
selects the field to indicate that the first row is the correct one, and this value is imported.
If you try to associate an application resource with a role that has an incompatible
segregation of duties category, the system displays an error message and the association
is not saved. Use SOD Matrix Maintain ([Link]) to maintain the compatibility of
segregation of duties categories. See “Maintain the Segregation of Duties Matrix” on
page 221 for QAD Adaptive ERP.
If a user has been assigned one or more roles, the user can be assigned to the role only
if each of the roles is compatible with the current role, or if there is a policy exception that
exempts any incompatible pair of roles.
If you try to assign a user to a role that is incompatible with one or more of the roles
already assigned to the user, when you attempt to update the database the system
displays an error and does not assign the role.
When a user is restricted from using an application resource, the user cannot access a
resource by typing its name.
Comments? Go to [Link]/MfwKHm
226 QAD Security Administration Guide
When you add a user to a role, the system validates that the roles the user already
belongs to are compatible with the new role assigned. If they are not compatible, the
system searches for a policy exception for this user. If no exception is found, an error is
generated and the user cannot be added to the role.
SOD Category Code 2. Specify the second category in the pair for which this
exception applies. If you have specified the first category and that category is defined
as being incompatible with only one other segregation of duties category, the second
segregation of duties category defaults automatically.
Description. Enter a detailed description of why the policy exception is required for the
segregation of duties categories. This field is optional.
After you have defined segregation of duties policy exceptions, use Role Membership
Maintain ([Link]) to associate users with the user roles that have been defined as part
of your segregation of duties policy exceptions. See “Define Role Membership” on
page 119.
To delete a segregation of duties policy exception, use SOD Policy Exception Delete
([Link].4).
Defining a segregation of duties policy exception prevents violations from being raised
when a user is assigned to incompatible categories in role exceptions. If you delete a
policy exception and SOD blocking is enabled, the user is prevented from performing
tasks relating to segregation of duties categories that are incompatible with other
segregation of duties categories for roles to which the user is assigned.
If you delete a policy exception and SOD blocking is disabled, the user can perform tasks
relating to incompatible segregation of duties categories, but segregation of duties
violations are logged.
Comments? Go to [Link]/MfwKHm
228 QAD Security Administration Guide
Role Name. Specify the role that is exempt from segregation of duties. The role must
already be defined in Role Create ([Link]).
Role Description. This field displays a description of the role.
Active. Indicates whether the role is active or inactive.
Exclude from SOD. Select the field to exclude the role from segregation of duties
violation checks and blocking, if enabled.
If the Exclude from SOD field is selected and avoids existing Rule 1 and Rule 2
violations, you cannot clear this field if the Block SOD Violations checkbox is selected
in SOD Configuration ([Link]).
If the Block SOD Violations checkbox is cleared in SOD Configuration ([Link]),
the system logs the relevant violations if you clear the Exclude from SOD field.
Fig. 9.24
SOD Import/Export ([Link])
Comments? Go to [Link]/MfwKHm
230 QAD Security Administration Guide
Fig. 9.26
SOD Matrix Worksheet
Resource Worksheet
In the Resource spreadsheet, you can only add or remove segregation of duties
categories. See “SOD Category Membership Excel Integration” on page 220.
Fig. 9.27
Resource Worksheet
Role Worksheet
In the Role spreadsheet, you can indicate whether roles are active or inactive, and
indicate which roles are excluded from segregation of duties. See “Segregation of Duties
Role Exclusions” on page 227.
Fig. 9.28
Role Worksheet
Export to Excel
The Export to Excel option in SOD Import/Export ([Link]) creates an Excel file in the
format required for reloading data to the system.
When you click the Export to Excel button, the system asks if you want to include data
already in the system. If you answer Yes, the Excel sheet created contains all segregation
of duties data already in the system.
If you select the Include Roles checkbox, the system displays a dialog that lets you
specify the roles for which to export data.
Fig. 9.29
SOD Import/Export, Role Selection
SOD Import/Export ([Link]) displays the name and path of the exported or imported
Excel file below the Export to Excel and Import from Excel buttons.
Comments? Go to [Link]/MfwKHm
232 QAD Security Administration Guide
Fig. 9.30
Name and Path of Exported Excel File
Fig. 9.31
Check for Violations Buttons Activated
As with the Excel Integration function in SOD Matrix Maintain ([Link]), when importing
from Excel, if there are two entries in the SOD Matrix spreadsheet for the same
segregation of duties category combination (for example A-B and B-A), you must modify
both rows if you want to update the segregation of duties matrix for these categories. If
you modify one row, for example, to add comments or clear the compatibility indicator, but
do not make an identical modification to the other row, the system displays a screen
indicating that conflicts exist.
Fig. 9.32
SOD Import/Export, Conflicts
For every conflict found, you must indicate which of the conflicting pairs you want to
import by selecting the Selected field.
When you load the data, if no violations are found when you select a Check for Violations
button, the system displays a dialog indicating this.
Fig. 9.33
No Violations Found
Comments? Go to [Link]/MfwKHm
234 QAD Security Administration Guide
If you click a Check for Violations button and the loaded data contains segregation of
duties violations, the violation errors are displayed at the end of the screen.
Fig. 9.34
Violation Errors
The Check for Violations buttons become disabled when no new data is loaded after
performing the segregation of duties violation rule checks.
Export to XML
The Export to XML option exports segregation of duties data to an XML file. This XML
data can then be used during deployment.
The following data is exported:
• Roles
• Role permissions
• Segregation of duties categories
• Segregation of duties matrix
• Segregation of duties resource linking
In the XML Export dialog, select the fields in the column on the left to indicate the roles for
which you want to export XML data.
Fig. 9.35
XML Export Dialog
The loaded data is merged with the existing data, if any, and all segregation of duties
rules are checked. If blocking violations occur, the load fails.
Comments? Go to [Link]/MfwKHm
236 QAD Security Administration Guide
• SOD Category 1
• SOD Category 2
• Resource 1 URI
• Resource 2 URI
• Whether an action caused Rule 1 (role permissions) or Rule 2 (role membership) to
be violated or fixed
• Fix date – time
• Conflict date – time
• Login ID of the user who caused or fixed the violation.
Fig. 9.36
SOD Log Viewer ([Link])
Figure 9.37 illustrates the selection criteria for the SOD Violations report ([Link]).
Fig. 9.37
SOD Violation Report, Selection Criteria
A report option lets you indicate whether the report should display details or not. If you
specify the details option, the report also provides a list of the resources linked to the
conflicting categories.
The SOD Violation report ([Link]) contains two sections: Rule 1 Violations and Rule 2
Violations.
The Rule 1 Violations section displays the following data on role permission violations:
• Role name
• SOD category 1 code and description
• Resources of category 1 used in the role
• SOD category 2 code
• Resources of category 2 used in the role
The Rule 2 Violations section displays the following data on role membership violations:
• User name
• Scope (domain name or entity name or blank)
• Role 1 name
• SOD category 1 code
• Resources of category 1 used in the role
• Role 2 name
• SOD category 2 code
• Resources of category 2 used in the role
Category codes are displayed with their description. Resources are displayed with their
corresponding menu entry and label.
Comments? Go to [Link]/MfwKHm
238 QAD Security Administration Guide
Fig. 9.38
SOD Violations Report ([Link])
Use SOD Violations Rule 2 View ([Link]) to display details of role membership
violations.
Fig. 9.40
SOD Violations Rule 2 View ([Link])
Filename on Server. Specify the name that you want to assign to the segregation of
duties log archive file.
Archive Up To Date. Specify the date up to which you want to archive segregation of
duties logs. Segregation of duties log data up to that date is removed from the SOD
Log Viewer ([Link]).
Comments? Go to [Link]/MfwKHm
240 QAD Security Administration Guide
Overview
Corporate governance legislation, such as the Sarbanes-Oxley Act of 2002, demands
that organizations introduce strong internal controls into their business processes. Among
these internal controls is segregation of duties.
Segregation of duties refers to the notion that the duties of individuals in an organization
should be limited to certain areas of responsibility, so as to minimize the ability of any
individual to misappropriate company property. Segregation of duties prevents a single
user from performing two or more phases of a transaction or operation. See “Segregation
of Duties Verification” on page 244 for an introduction to the rules on which segregation of
duties is based.
If a person can commit and conceal errors, irregularities, or both while performing day-to-
day activities, they have generally been assigned or allowed access to incompatible
duties or responsibilities.
The ability to automate and report on internal controls, such as segregation of duties,
reduces the likelihood of non-compliance to corporate governance regulations and also
reduces compliance-related costs.
Figure 10.1 shows the separation of business functions within an organization that
enforces segregation of duties. Pam is responsible for maintaining supplier invoices and
has been assigned the SuppInvCr role. All users assigned this role can create supplier
invoices.
Fig. 10.1
Segregation of Duties Example
Pam
Pam Steve
Steve
SuppInvCr
SuppInvCr SuppPayCr
SuppPayCr
Maintain
Maintainsupplier
supplierinvoices Maintain
invoices Maintainsupplier
supplierpayments
payments
(Supplier
(SupplierInvoice
InvoiceCreate) (Supplier
Create) (Supplier PaymentCreate)
Payment Create)
Steve is responsible for creating supplier payment records and is assigned to the
SuppPayCr role. All users assigned this role can create and modify supplier payments;
however, they cannot maintain supplier invoices since this ability would violate
segregation of duties policy.
Figure 10.2 shows the business functions within an organization that has not
implemented segregation of duties, or which has permitted a known segregation of duties
violation. In this example, users assigned the SuppInvCr role can create supplier
payments as well as create supplier invoices.
Comments? Go to [Link]/MfwKHm
244 QAD Security Administration Guide
Fig. 10.2
Segregation of Duties Violation
Pam
Pam Steve
Steve
SuppInvCr
SuppInvCr SuppPayCr
SuppPayCr
Maintain
Maintainsupplier
supplierinvoices Maintain
invoices Maintainsupplier
supplierpayments
payments
(Supplier
(Supplier InvoiceCreate)
Invoice (Supplier
Create) (SupplierPayment
PaymentCreate)
Create)
Comments? Go to [Link]/MfwKHm
246 QAD Security Administration Guide
Fig. 10.3
Segregation of Duties Setup Flow
Use SOD Categories to define the segregation of duties categories that are mutually
exclusive. Segregation of duties compatibility constraints are stored in the system as pairs
in a segregation of duties category matrix. See “Maintain Segregation of Duties
Categories” on page 256.
The next step is to define role permissions in your system. This associates application
resources to user roles. See “Role Menus” on page 129. This step is now constrained by
the segregation of duties policy you have defined.
Next define your role membership. This step associates users with roles and—as with the
previous step—is constrained by the defined segregation of duties policy.
If you implement segregation of duties in a new database and set up segregation of
duties categories, compatibilities, and exclusions before setting up roles, segregation of
duties would prevent you from assigning two incompatible roles to a user.
To allow for situations where a technical user account—for example, an integration user—
needs access to all system functions, you can define roles that are exempt from
segregation of duties rules using Roles. See “Segregation of Duties Role Exclusions” on
page 264.
To accommodate situations—a staff shortage, for example—where a user might need to
participate in more than one part of a business process, you can define segregation of
duties policy exceptions by using SOD Policy Exceptions. See “Maintain Segregation of
Duties Policy Exceptions” on page 262.
Use the SOD Violations Report and SOD Logs to view current segregation of duties
policy violations and a violations history file. See “Report and View Logs and Violations”
on page 272.
Segregation of duties violations that arise during segregation of duties maintenance are
recorded in a log. Use SOD Logs Archive action to archive log table records. See “Archive
Log Record Files” on page 275.
If who have default segregation of duties data ready to import into your system, you can
use the Excel import and export functionality to more easily build your segregation of
duties framework. See “SOD Setup” on page 264.
Comments? Go to [Link]/MfwKHm
248 QAD Security Administration Guide
When a resource is removed from the list of resources allowed for a role, the system runs
the Rule 1 and Rule 2 validation. The validation is run before and after the deletion to
detect if an existing violation has been solved by removing the resource. A new entry is
written to the segregation of duties log if the deletion fixes an existing violation.
Fig. 10.4
Role Permissions Validation
SOD Cat1 SOD Cat2
Supplier Invoice Supplier Payment
Creation Creation
!
User is prevented from
Save saving role permissions that
violate SOD
Comments? Go to [Link]/MfwKHm
250 QAD Security Administration Guide
Fig. 10.5
Role Membership Validation
SuppPayAdmin SuppInvAdmin
Role User specifies permissions
Permissions for roles SuppPayAdmin
Maintain
+ Supplier Payment
+ Supplier Invoice Menu
Activity Menu and SuppInvAdmin
!
User is prevented from
Save saving role membership that
violates SOD
The user who maintains POs has to take personal leave unexpectedly and the PO receipt
clerk has to perform both duties for a number of days. A segregation of duties policy
exception is defined for this, and the PO maintenance role is assigned to the PO receipts
clerk. The assignment of both roles violates segregation of duties rules, but because of
the policy exception, no violations are raised.
A user attempts to delete the segregation of duties policy exception, but is blocked from
doing so. Deleting the exception causes indirect segregation of duties violations.
Fig. 10.6
Indirect Segregation of Duties Violation
POMaint
POMaint and POReceive
SOD Matrix
cannot be combined Linked Resource:
Puchase Order
Maintenance
SOD Policy
A user attempts to delete
Exception Delete the policy exception
Comments? Go to [Link]/MfwKHm
252 QAD Security Administration Guide
Table 10.1
Segregation of Duties Rule Matrix
Segregation Segregation of Duties Segregation of Duties
of Duties Active, SOD Blocking Active, SOD Blocking
Action Inactive Disabled Enabled
You add a resource to a role in No segregation Rule 1: Runs segregation of Rule 1: Runs segregation
Role Permissions, causing of duties duties violation checks. The of duties violation checks.
violations. checking. action is blocked. The action is blocked.
Rule 2: Runs segregation of Rule 2: Runs segregation
duties violation checks. The of duties violation checks.
action is not blocked and the The action is blocked.
violation is logged.
You remove a resource that No segregation Rule 1: Validates segregation Not applicable.
caused violations from a role of duties of duties violation checks.
in Role Permissions. checking. The previous violation is
fixed.
Rule 2: Validates segregation
of duties violation checks.
The previous violation is
fixed.
You add a user to a role in No segregation Rule 2: Runs segregation of Rule 2: Runs segregation
User Access, causing of duties duties violation checks. The of duties violation checks.
violations. checking. action is blocked. The action is blocked.
You remove a user that No segregation Rule 2: Runs segregation of Not applicable.
caused violations from a role of duties duties violation checks. The
in User Access. checking. previous violation is fixed.
Comments? Go to [Link]/MfwKHm
254 QAD Security Administration Guide
Before setting up segregation of duties, you must create user records in the system and
provide basic identifying information. Use Users to define users in your system. Users
must be defined in the system before they can be assigned to a role. See “Set Up Users”
on page 104.
You also can define user roles—but not role permissions or role membership—as a
prerequisite activity. See “Define Roles” on page 93.
Active. Select the checkbox to activate rule checking for segregation of duties.
When you activate SOD, all validation rules are run to check for violations. You cannot
continue implementing SOD if role permission (Rule 1) violations exist on your
system. You must deactivate SOD, resolve the violations raised, and then re-
implement SOD.
Note If the Block Violations checkbox is not selected, Rule 1 and Rule 2 violations
are reported and SOD is activated; however, all Rule 1 violations must be resolved
before you can start using SOD.
When you first begin to implement segregation of duties, it is recommended that you
deactivate SOD rule checking, and only activate it again when you have defined all
categories and incompatible categories, linked resources to segregation of duties
categories, and defined roles. If you deactivate SOD, the system does not check for
role permission and role membership violations, and notification and logging are also
disabled.
If you deactivate segregation of duties, all existing violations are deleted, and log
entries are created for violations that were rectified.
Block Violations. Select this checkbox if you want the system to block any changes to
role-based security that would allow users to access conflicting resources. The effect
of selecting Block Violations is that all indirect violations are blocked.
If this checkbox is not selected, administrators are not blocked from providing users
with access to functions with conflicting segregation of duties categories.
Users are always blocked from performing actions in Role Permissions that cause
Rule 1 violations and are always blocked from performing actions in User Access that
cause Rule 2 violations. If you select this checkbox, however, the system also
Comments? Go to [Link]/MfwKHm
256 QAD Security Administration Guide
prevents administrators from making changes to role-based security that violate role
permission (Rule 1) and role membership (Rule 2) segregation of duties rules. If you
activate blocking for rule violations, the violations log will always be empty because
administrators are actively blocked from performing actions that violate segregation of
duties rules.
When you enable Block Violations, the system checks if violations exist, and displays
an error if violations are found. The checkbox cannot be selected until these violations
are fixed.
If you leave the checkbox clear, the system does not block an administrator from
making changes to role-based security that violate role permission (Rule 1) and role
membership (Rule 2) segregation of duties rules. The violations raised are written to
the segregation of duties log.
The default value is clear.
Notifications User ID. In addition to on-screen notifications and the SOD audit logs,
the system can send notification of SOD violations to the User ID specified here. The
notification can go to the user's external email address, the QAD inbox, or to both,
depending on the Category Settings defined for Segregation of Duties on the user's
Profile page.
Fig. 10.8
SOD Categories
Comments? Go to [Link]/MfwKHm
258 QAD Security Administration Guide
Assigning Resources
Resource types that are eligible for segregation of duties are:
• Business Components
• Services
• Reports
• Field Groups
Every application resource has one or more permission types, such as read and create. A
resource's permission types can each be assigned to one and only one SOD category or
no SOD category, and the resource's permission types can each have a different SOD
category from the others.
• If associated with a category, the resource's permission type is only compatible with
other resource permission types that are associated with a compatible SOD category,
with resource permission types in the same SOD category, and with permission types
that are not assigned to an SOD category.
• If associated with no category, the resource is compatible with any other application
resource, regardless of the SOD category to which those resources may be attached.
Use the resource tree to select a resource and then use the Default SOD Category
lookup and the Permission types grid to assign category membership.
Resource Tree
The resource tree identifies how resources are organized in the system in a hierarchical
manner.
Fig. 10.9
Adaptive UX Resource Tree
You can search for resources by label name or URI using the Search feature at the top of
the resource hierarchy tree. Search results display the resource type icon to the left of the
search list items and partial URIs to the right side of the search list items. You can select
a search result and edit the resource’s category membership in the right-hand panel.
If you need more information to determine which result is the correct resource, you can
view the resources within the context of the hierarchy.
1 Select one of the resources.
2 Select the more icon.
3 Select View in context.
The right side of SOD Category Membership contains the default SOD Category field and
a permission types grid. Use the Apply to All button to assign the default SOD category to
all permission types of the secure resource and then update the individual permission
types within the grid as needed.
Comments? Go to [Link]/MfwKHm
260 QAD Security Administration Guide
Fig. 10.10
Adaptive UX Permissions Grid
Include Field Groups. Select this checkbox when a business component's field
groups need to be included in segregation of duties violation checks. When selected,
the treeview on the left side of the screen expands to display the field groups for the
selected business component. Configure the SOD categories for the field groups as
needed.
Note If the business component does not include any field groups, selecting the
checkbox has no effect on the resource tree.
Permission. The permission types associated with this application resource.
SOD Category. The SOD category assigned to the permission type. You can edit the
SOD Category field for each permission type independently by selecting the field in
the grid.
SOD Category Description. The SOD category's associated description.
The URI is provided for informational purposes.
When you select Save, the system validates that the new SOD category assignments do
not conflict with existing settings. Depending on settings defined during SOD
configuration, the system blocks the save or saves the settings and logs the conflict in
SOD Logs.
If you try to associate an application resource with a role that has an incompatible
segregation of duties category, the system displays an error message and the association
is not saved. Use SOD Categories to maintain the compatibility of segregation of duties
categories. See “SOD Categories” on page 265.
If a user needs to be assigned to more than one role, the roles must be compatible with
each other, or there must be a policy exception that exempts any incompatible pair of
roles.
If you try to assign a user to a role that is incompatible with one or more of the roles
already assigned to the user, when you attempt to update the database the system
displays an error and does not assign the role.
When a user is restricted from using an application resource, the user cannot access the
resource by typing its name.
Comments? Go to [Link]/MfwKHm
262 QAD Security Administration Guide
Menu Resource Only. This filter returns the mapping of Enterprise Edition resources
to menu-eligible resources in Adaptive UX. Menu-eligible resources, such as views,
can belong to business components, which themselves can have multiple permission
types. If multiple SOD categories are assigned to a business component and not to
the view, those categories are listed in the SOD Category column as comma-
separated entries.
Fig. 10.12
SOD Policy Exceptions
Comments? Go to [Link]/MfwKHm
264 QAD Security Administration Guide
Category 2. Specify the second category in the pair for which this exception applies. If
you selected the first category using the lookup, this second segregation of duties
category defaults automatically.
Category 2 Description. Enter a description of Category 2.
Comments. Enter a detailed description of why the policy exception is required for the
segregation of duties categories. This field is optional.
The system validates entries in the required fields as you enter them.
SOD Setup
SOD Setup brings together SOD categories, the SOD matrix of incompatible categories,
and system roles. From this screen, you can load default data for segregation of duties
categories, matrices, menus, resource assignments, and roles using a single Excel
spreadsheet. The import function lets you check for role permission (Rule 1) and role
membership (Rule 2) violations before saving the data to the database.
QAD provides default segregation of duties data to use during the deployment process.
This default data is based on best practices, and has not been validated by an external
audit company.
Note If you reload the default data after you have modified segregation of duties content
in the environment, the reloaded default data will overwrite the modifications and restore
the SOD categories and matrix settings to those defined in the default data.
You can export and import your environment’s segregation of duties data to an Excel file
to add and update settings as well as to move it from one environment to another. See
“Import and Export Segregation of Duties Data” on page 267 for more information on
Excel integration.
Fig. 10.14
SOD Setup
SOD Categories
The SOD Categories grid lists all of the segregation of duties categories as they appear
on the SOD Categories screen. Highlight a category and click Details to view a category's
associated incompatible categories and add new incompatible categories as needed.
Category. The unique category name.
Description. The description of the category.
Comments? Go to [Link]/MfwKHm
266 QAD Security Administration Guide
SOD Matrix
The SOD Matrix grid lists all pairings of incompatible categories. This information can be
found in filtered form on the individual SOD Categories screen for every category.
Category 1. A segregation of duties category that is not compatible with the entry in
Category 2.
Category 1 Description. The description of the entry in Category 1.
Category 2. A segregation of duties category that is not compatible with the entry in
Category 1.
Category 2 Description. The description of the entry in Category 2.
Exclusion Level. This value, from 1 to 5, associates a conflict level with the
categories. Use this optional setting to set up better filtering capabilities for
segregation of duties reports.
Comments. Information that explains why the two categories are incompatible.
To add a new incompatible categories pairing, one of the categories already must be
listed in the Category 1 column in the matrix. If one of the incompatible categories is not
listed as Category 1, go to the SOD Categories screen to create the pairing.
1 Highlight the Category 1 record that requires another incompatible category. Click
Details to view the individual record.
2 From the detail view, click New.
3 Select or enter a new incompatible category in the Category 2 field.
4 Optionally, enter an exclusion level and comments.
5 Click Save to create the new incompatible category record.
Roles
The Roles grid lists all of the roles as they appear on the Roles screen. Highlight a role
and click Details to update its current settings.
Role. The role name.
Role Label. The role label.
Active. When selected, the role is active in the system upon save.
Exclude from SOD. When selected, the role is excluded from segregation of duties
Rule 1 and Rule 2 validations.
If you export just the template from your system, the sheets have column headers but no
data. If you export with your system data, the sheets are populated with their respective
details.
SOD Category
The SOD Category sheet lists all of the categories and their associated descriptions. You
can add new categories and edit existing category descriptions. You cannot change the
segregation of duties category code because the system would interpret a changed
category as a new category when you load the data. If you delete a category from the
sheet, it will not be deleted from the system upon import.
SOD Matrix
The sheet lists all possible combinations of existing categories, both compatible and
incompatible. You can edit existing combinations and add new combinations for import
into the system. If you delete a row, that change will not be reflected in the system upon
import.
Category combinations that are compatible have an entry of FALSE in the “Cannot be
combined with” column and do not appear in the Adaptive UX SOD Matrix grid. Category
combinations that are incompatible have TRUE in the “Cannot be combined with” column
and are listed in the SOD Matrix grid in Adaptive UX. The Level column is for an optional
value, from 1 to 5, that can be used for filtering on SOD reports.
Comments? Go to [Link]/MfwKHm
268 QAD Security Administration Guide
Menu
The sheet represents role menus, with each row corresponding to a single menu item of a
role menu. Menu Type is always Role, because Favorites menus are not supported as
part of the export and import process.
Role menus in the system with no menu items are not exported, meaning menus must
have pages and/or folders assigned to them to be included on the sheet.
The Menu sheet is synced with the Role sheet. Upon export, the Menu sheet only
contains data related to roles listed on the Role sheet. During import, the system only
loads menu data related to roles on the Role sheet and ignores other entries.
Resource
The sheet identifies the resources and permissions assigned to a segregation of duties
category. You can assign a category to a resource, change the category assigned to a
resource, or clear the SOD Category field to remove a resource and category
assignment.
Adaptive UX resources can have multiple permissions assigned to them, such as Read,
Create, and Delete. Because of this permission granularity, one Adaptive UX resource
can be listed multiple times for the same category on the Resource sheet, with each
permission type having its own row.
The Resource sheet is synced with the Role sheet. Upon export, the Resource sheet only
contains data related to roles listed on the Role sheet. During import, the system only
loads resource data related to roles on the Role sheet and ignores other entries.
Resource Property
• Property Name
• Property Value
The data on this sheet represent resource properties. This includes properties such as
“IncludeFieldGroups,” which shows that a resource includes field groups in segregation of
duties processing.
Role
The Role sheet lists the roles that were selected during export, if any. You can edit
existing roles and add new roles to be included in the system when the file is imported.
For each role, you can indicate if the role is active or inactive, and indicate if any roles are
excluded from segregation of duties limitations. If you delete a role from the sheet, that
change will not be reflected in the system upon import.
The Role sheet is synced with the Menu and Resource sheets. Upon export, the Menu
and Resource sheets only contain data related to roles listed on the Role sheet. During
import, the system only loads menu and resource data related to roles on the Role sheet
and ignores any other entries.
Comments? Go to [Link]/MfwKHm
270 QAD Security Administration Guide
Fig. 10.15
SOD Setup Export
On the Export screen, fill out the following fields to define the structure of the exported
file.
File Properties
File Name. Enter a name for the file being created by the export action.
File Type. Select the file type. Currently, you can only export to an Excel (.xlsx) file.
Options
Export Template Only. When selected, the Export action does not include data in the
exported Excel file. The template contains all predefined sheets and each sheet's
default columns. The default sheets contain the following columns.
• SOD Category contains Category and Description.
• SOD Matrix contains SOD Category 1, SOD Category 2, Cannot be combined
with, Level, and Comments.
• Menu contains Menu Type, Menu Code, Path, Resource URI, String Code,
Primary Secure URI, and Include in Mobile.
• Resource contains Resource URI, Resource Label, Permission Type, and SOD
Category.
• Resource Property contains Resource URI, Property Name, and Property Value.
• Role contains Role Name, Role Description, Active, and Exclude from SOD.
Include Roles. When selected, a grid appears, as shown in Figure 10.15, that
displays all system roles in the Options panel. Select which roles and their associated
data to include in the exported file.
Export File
Results will be sent to your inbox. After you define how you want the exported file to
appear, click Export to generate the Excel file.
Choose File
Select the file to import using the Choose File button or by dragging the file into the
highlighted box. The system validates the file structure and checks for Rule 1 and Rule 2
violations as the file is uploaded and any violations are displayed in the SOD Violations
panel. All Rule 1 conflicts must be resolved before the file can be imported.
If the Excel file has invalid entries, those lines of the file are skipped and all valid entries
will be imported.
Import Results
Once the file loads successfully, click Import. The results of the upload are sent to your
inbox.
Comments? Go to [Link]/MfwKHm
272 QAD Security Administration Guide
Fig. 10.17
SOD Logs
• Entity
• Domain
• Role
• User
• Include rule 1 (Yes/No)
• Include rule 2 (Yes/No)
• Exclusion Level
• Include Resource Details (Yes/No)
Figure 10.18 illustrates the selection criteria for the SOD Violations report.
Fig. 10.18
SOD Violation Report, Selection Criteria
A report option lets you indicate whether the report should display details or not. If you
specify the details option, the report also provides a list of the resources linked to the
conflicting categories.
The SOD Violations report contains two sections: Rule 1 Violations and Rule 2 Violations.
The Rule 1 Violations section displays the following data on role permission violations:
• Role name
• SOD category 1 code and description
• Resources of category 1 used in the role
• SOD category 2 code
• Resources of category 2 used in the role
The Rule 2 Violations section displays the following data on role membership violations:
• User name
• Scope (domain name or entity name or blank)
• Role 1 name
• SOD category 1 code
• Resources of category 1 used in the role
• Role 2 name
Comments? Go to [Link]/MfwKHm
274 QAD Security Administration Guide
Category codes are displayed with their description. Resources are displayed with their
corresponding menu entry and label.
Fig. 10.19
SOD Violations Report
Fig. 10.21
SOD Violations Rule 2
Archive Up to Date. Select the date before which all records will be archived and
removed from the SOD Logs screen.
Comments? Go to [Link]/MfwKHm
276 QAD Security Administration Guide
Overview
Regulatory guidance often requires records to be signed by an author, approver, tester, or
other accountable individual, particularly in areas with critical processes that rely on tight
quality control such as the pharmaceuticals industry.
While this signature process is historically associated with a hard-copy signature on
paper, it has been extended in many areas to electronic records. For example, the United
States Food and Drug Administration (FDA), in 21 CFR Part 11, describes how electronic
signatures can be used to support automated processing.
The electronic signature features of the Enhanced Controls menu support this
requirement. You can configure your system to require users of some programs to enter a
valid user ID and password before they can create or update records. Additionally, they
must provide a reason code that defines the meaning of the signature; for example,
Approved or Tested. Based on setup data, users may be able to enter a related remark as
part of the signature.
Note Any valid user who has access to a function that records signatures can sign
records. Use Role Permissions Maintain ([Link]) to assign access to signature-
controlled functions based on user roles. See “Define Role Permissions” on page 101.
These features are intended as part of an overall approach—also incorporating
capabilities offered by system security—to meeting the user accountability requirements
of customers with regulated environments.
Important Electronic signatures can be enabled in Adaptive ERP and Adaptive UX, and
operate in both user interfaces simultaneously. However, you must set up and configure
the functionality in both UIs separately. In addition, as you enable electronic signature
configurations in Adaptive UX, you should disable the related functionality in .NET by
removing permissions to menu options. This ensures reports and histories for electronic
signature events are confined to one interface with a consistent reporting structure.
Contact QAD Support for assistance with Adaptive UX electronic signature configuration.
Comments? Go to [Link]/MfwKHm
280 QAD Security Administration Guide
Various reports and inquiries associated with signature-eligible menu programs can
display signature data. The field that controls this feature—Display E-Signature Details—
displays on the user interface based on setup data. See “Functional Reports and
Inquiries” on page 308.
The electronic signature function prompts for and maintains signature information based
on signature profiles. Each profile is associated with a specific category of data and
indicates whether signatures should be captured and for which menu programs, as well
as which fields are being signed.
Important Categories are defined by QAD and delivered with the electronic signature
functionality. Adding new categories requires custom development.
Comments? Go to [Link]/MfwKHm
282 QAD Security Administration Guide
Fig. 11.1
Electronic Signatures Workflow
1 Load electronic signature initial data. Use E-Sig Initial Data Load ([Link]) to
load the initial data (QAD-provided default profiles) into the system. See “Load
Electronic Signature Initial Data” on page 283.
2 Set up electronic signature reason codes. Electronic signature reason codes are a
critical component because they explain the meaning of each signature. Reason
codes describe whether the person applying the signature was approving, inspecting,
reviewing, or so on. Be sure to plan and implement reason codes that make sense in
your specific regulatory environment. All reason codes used by electronic signatures
must have an “ESIG” reason type. See “Set Up Electronic Signature Reason Codes”
on page 283.
3 Define electronic signature control settings. When setting up electronic signature
functionality, define the security control settings in Security Control (36.3.24) to
determine how sign-in security is defined in terms of password structure and use
rules. See “Define Security Control Settings” on page 284.
4 Optionally, assign electronic signature categories to groups. Optionally, define
electronic signature groups to simplify the setup process. To avoid repetitive data
entry for individual category profiles, create signature groups in E-Signature Group
Maintenance ([Link]). See “Electronic Signature Categories” on page 285.
5 Refresh workbench profiles from QAD default data or activated profiles. See
“Refresh Signature Profiles” on page 293.
Comments? Go to [Link]/MfwKHm
284 QAD Security Administration Guide
Each time the system prompts for an electronic signature, the user must provide a valid
reason code. For example, reason codes might indicate that a quality record has been
approved, reviewed, or inspected. See “Record Electronic Signatures” on page 300.
Use Reason Codes Maintenance (36.2.17) to define signature reason codes that are
appropriate to your environment.
Important All reason codes used by electronic signatures must be associated with the
QAD-provided ESIG reason type. Reasons of any other type cannot be entered in the
signature prompt frame.
These fields
control
access for
electronic
signature
processing.
Two fields directly control how the system manages unsuccessful electronic signature
attempts:
• Maximum Access Failures indicates how many consecutive unsuccessful signature
attempts cause the user’s session to terminate, disable the account, and inform the
administrator role of a potential unauthorized access attempt.
• Administrator Role is the name of the role—defined in Role Create ([Link])—
assigned to the system users who are notified by email when a session is terminated
because of excessive unsuccessful signature attempts. The system also sends email
to users who are assigned this role when a signature profile is activated. See “Email
Notifications” on page 303.
Comments? Go to [Link]/MfwKHm
286 QAD Security Administration Guide
Note Some categories are also associated with reports and inquiries that can include
electronic signature data. See “Functional Reports and Inquiries” on page 308 for
information.
Use E-Sig Category Master Report ([Link]) to view information about the QAD-
defined categories.
Category Considerations
Current signature data for category 0007, Transaction History, is never shown as part of
the latest electronic signature when you access a previously signed record from one of
the programs listed in Table 11.3 for category 0007. When setting up this category, you
should ensure that the fields and filters selected match for programs associated with two
categories—such as Inventory Detail Maintenance—to avoid confusion regarding which
data the signature is applied to. See “Record Electronic Signatures” on page 300.
Note You can still view the final data being signed in the final signature data frame for this
category.
Comments? Go to [Link]/MfwKHm
288 QAD Security Administration Guide
The delete event is for a different ld_det record than the create and modify.
When electronic signatures are enabled, only one signature for these three events is
captured. The signature is associated with the last event. This may appear to be
misleading in the E-Signature History Report (36.12.5).
If you typically use temporary locations, you should consider this before enabling
electronic signatures on this type of record.
Fig. 11.3
Example of Workbench Profile Table/Field Structure
Parent-level table
Field in parent-
level table
Child-level table
Top Tables
Each QAD-provided category definition includes a top-level table, which displays in the
Top Table field in the first frame of E-Sig Workbench Profile Maintenance. In most cases,
this is the first table that appears in the profile structure.
In other cases, however, the top table is not included in the data to be signed but instead
provides key values for identifying the signed data.
Example The top table in the Quality Results category is the work order routing
(wr_route) table, but this table is not included in the data to be signed; that consists of the
master specification history (mph_hist) table and related transaction comments
(cmt_det). The wr_route record is used only to identify the signed data by providing the
context.
You can specify top-table field values to identify data that may have signatures attached;
for example, use E-Signature History Report (36.12.5) to view signature history
associated with a specific work order identified in the wr_route table. See “Electronic
Signature Reports” on page 305.
Filters
Depending on the specific requirements of your environment, you may not need to record
electronic signatures for all records of a given type. For example, you might want to
require signatures only on inventory transactions involving a specific site or certain items.
QAD-provided categories include filters for selecting or excluding data that must have
electronic signatures applied.
Table 11.4 indicates the filters that are available in each QAD-provided category
definition.
Comments? Go to [Link]/MfwKHm
290 QAD Security Administration Guide
Table 11.4
Available Filters, by Category
Filter
Item Number
Work Center
Location
Domain
Site
Category
0001 Inventory Control
0002 QM Quality Results
0003 Operation History
0004 Regulatory Attributes
Control
0005 Lot Master
0006 Inventory Detail
0007 Transaction History
0008 QM Quality Order
0009 PCO Implementation
0010 PCO Approval
0011 Quality Order
0012 Quality Test Record
0013 Lot Attribute Order
0014 Test Specification
0015 Certificate of Analysis
When you refresh a workbench profile based on the QAD-provided default profile, the
filter mode is set to indicate that filtering will not be applied. If you choose to set up
signature requirements based on available filters, specify appropriate values when you
define your implementation-specific profile in E-Signature Workbench Profile
Maintenance. See “Set Up Filters” on page 299.
Filters are designed to work either by inclusion or exclusion, as defined by the Filter Mode
field in E-Signature Workbench Profile Maintenance. For example, an inclusion filter
might be set up to include records by site and location. If you set up the filter criteria with
site values of 1000 and 2000 and location values of loc1 and loc2, only records with a
combination of one of those sites and one of those locations will require an electronic
signature. In this scenario, updating a record associated with site 1000, loc3 would not
trigger a prompt for an electronic signature.
In the same example, defined as an exclusion filter, electronic signatures would not be
required for records with any combination of the specified sites and locations. Updates to
records with any other sites and locations, however, would trigger a signature prompt.
A profile can have either inclusion or exclusion filters, but not both.
Overview
The electronic signature system maintains signature information based on a signature
profile that is associated with a specific category of data. Profiles are identified by the
corresponding QAD-defined category codes. The category profile specifies:
• Whether electronic signatures are required
• In which programs
• Which fields are signed
• Characteristics of how signatures are displayed and recorded
• Filter definitions
Comments? Go to [Link]/MfwKHm
292 QAD Security Administration Guide
Fig. 11.4
Profile Flow
Default Profile
Refresh
1
from
defaults
Update 2
OR Workbench Profile
Refresh
Activate 3
from
activated
Activated Profile
Before refreshing workbench profiles, you can optionally create signature groups to
manage several profiles more easily and streamline the data setup process. Once
refreshed, modify the workbench profiles with your requirements. You can enable or
disable signatures and update filters as needed. When your workbench profiles are
complete, activate them and set a begin date. To discontinue signatures, simply update
the workbench profile to set E-Signature On to No; then activate it with the begin date set
to the date signatures are no longer needed.
Comments? Go to [Link]/MfwKHm
294 QAD Security Administration Guide
Refresh Profiles. Indicate whether to refresh all data for the specified profiles. When
this field is Yes, an additional frame displays that you can use to determine which
profiles are used as the source of the updates.
Override Fields. Indicate whether to override the field that controls electronic
signatures for the specified profiles. When this field is Yes, an additional frame
displays.
Figure 11.5 illustrates the first frame of E-Signature Workbench Profile Maintenance.
Fig. 11.5
E-Signature Workbench Profile Maintenance ([Link])
Enter a QAD-defined category code and choose Next. The system displays several fields
you can use to control electronic signature processing.
Top Table Name. The system displays the name of the table used to identify the set of
data defined by the category; this sets the context for the signed data.
Example Category 0002, QM Quality Results, has a value of wr_route (work order
routing) in this field. Master specification test history (mph_hist) is shown as the first
table in the 0002 profile structure. One electronic signature could contain many
records of this type—so the mph_hist identification is not unique. However, all
mph_hist records from the electronic signature instance are related to a single
wr_route record, which serves as a unique identifier for the signed data. See “Tables
and Fields” on page 288.
Comments? Go to [Link]/MfwKHm
296 QAD Security Administration Guide
E-Signature On. Indicate whether the system should apply the electronic signature
functions for the category defined in this profile when it is activated.
No: Electronic signatures do not apply to this category. Use this option to turn
electronic signatures off for programs that currently require them. For example, if
signatures are currently used and a new profile for this category with E-Signature On
set to No is activated, electronic signature functions stop on the new profile’s begin
date.
Yes: Once this profile is activated, electronic signatures are required for this category
as defined by the menu details and applicable filters.
When you refresh from QAD-provided default data, the value is Yes.
Display Latest E-Sig. Indicate whether the system displays the latest electronic
signature when programs controlled by this profile are executed. See “Record
Electronic Signatures” on page 300.
When you refresh from QAD-provided default data, the value is Yes.
Prompt for Preview E-Sig. For programs that generate transactions, enter Yes to have
the system prompt for a signature before the transaction data is created. The user is
given the option to display the final data before signing. You can use this feature to
avoid potential record-locking issues. This feature does not apply to all signature-
enabled programs.
When the user sets Show Final Data to Yes when entering a signature, the system
creates the transactions and displays final data before it is signed. Otherwise, the user
enters the signature without viewing the final data.
When you refresh from QAD-provided default data, the value depends on the types of
programs included in the category.
This configurability is provided to address record-locking issues that might be caused
by the user interacting with the signature frame. In some menu programs that create
transaction records such as operation or transaction history, the system locks
frequently updated records while creating the transaction records. These programs
have been designed to minimize the amount of time that records are locked by having
no user interaction during record creation.
When electronic signatures are used with these programs and the final data to be
signed—including the transaction data—must be displayed to the user while
prompting for the signature, records remain locked until the user successfully
completes the signature. This record-locking during signing is necessary because all
changes must be rolled back if the signature is not accepted. During this time, no
other users can update these same locked records. This issue becomes even more
problematic, for example, if the user decides to leave their computer at this crucial
time, before entering the signature fields.
This problem can be avoided in most situations because the relevant data for the user
to review before signing are the fields that the user entered. These fields are generally
available in the preview signature frames. After the signature is accepted, the program
generates the transaction records and includes them in the signed data stored with
the signature. Your system validation process can provide the assurance that the
program systematically and reproducibly generates the transaction records based on
the entered data. So, by signing in the preview signature frame, the final data never
needs to be displayed and the records will not be locked any longer than required to
create them. If the signature is not accepted, all user changes are rolled back and the
transaction records are not created.
Set Prompt for Preview E-Sig to Yes to avoid these potential problems.
Data Frame Optional. Enter Yes to allow users to immediately enter an electronic
signature without scrolling through the data to be signed. In this case, they can still
view all the fields by setting Scroll Details to Yes in the signature frame.
When the field is No, focus is on the frame that displays the data to be signed. To
enter the signature, users must first choose End to exit that frame.
When you refresh from QAD-provided default data, the value is Yes.
Prompt for Remarks. Indicate whether the user can add an optional remark while
entering electronic signature data. When this field is Yes, a 64-character updateable
Remarks field displays in the signature frame. Remarks are included in the electronic
signature record.
When you refresh from QAD-provided default data, the value is Yes.
Filter Mode. Specify the type of filtering the system will use in determining whether
specific data requires electronic signatures. See “Filters” on page 289.
None: Filters are not used. The Filters and Filter Criteria frames do not display.
Inclusion: Only data meeting the specified filter criteria requires electronic signatures.
Exclusion: All data except those meeting the specified filter criteria require electronic
signatures.
Note A profile can have either inclusion or exclusion filters, but not both.
When you refresh from QAD-provided default data, the value is None.
Multiple Categories
Based on the data they update, some menu programs can be associated with more than
one category. When this occurs, the system includes logic to resolve conflicting
workbench profile setup data for three settings:
• Prompt for Preview E-Sig
• Data Frame Optional
• Prompt for Remarks
Table 11.5 shows the sequence the system uses for determining which profile takes
precedence in each such case.
Note This logic is needed only when a program is selected in the Workbench Profile
Menu Details frame of more than one category profile. Additionally, when the menu
program is executing, if a signature is not required for the first category, the second
category profile is used to determine these three settings.
Comments? Go to [Link]/MfwKHm
298 QAD Security Administration Guide
Table 11.5
Profile Precedence for Multiple Categories
Menu Program Category Sequence
Labor Feedback by Work Order 1. Operation History (0003)
(16.20.1) 2. QM Quality Results (0002)
Labor Feedback by Employee (16.20.2)
Labor Feedback by Work Center
(16.20.3)
Operation Move Transaction (16.20.6)
QM Quality Order Results Entry 1. Transaction History (0007)
(19.26.11) 2. QM Quality Order (0008)
When you initially set up electronic signature functions by refreshing profiles based on
QAD-provided data, each category is associated with one or more menu programs that
update the data defined in the category.
Although you cannot specify additional programs, you can use the Workbench Profile
Menu Details frame to control whether signature functionality will apply to the available
menu programs.
When a program is included in the category profile, an asterisk (*) displays in the Apply
column. Clear the field to deselect a program.
Note If a program appears more than once in the menu system, the frame lists all menu
numbers. Changing the Apply setting for one menu number automatically updates all.
In some profiles, the program list includes reports and inquiries. See “Functional Reports
and Inquiries” on page 308. These programs can display signature data if included in the
activated profile. When they are included, they have a Display E-Signature Details field
that gives the user the option of displaying signature data in the output.
QAD-provided setup data includes a set of tables and fields that define the data to be
signed and stored with the signature. The Workbench Profile Structure frame lists the
tables and fields defined by the category.
If the current profile was refreshed based on default data, all tables and fields are
selected.
Toggle the asterisk in the Sel column to select or deselect fields or tables. If you deselect
or select a table, all fields in the table are automatically deselected or selected as well. In
that case, the frame display does not refresh immediately.
Note The first field listed for each table is the system-assigned object ID (OID) that
uniquely identifies each record in the database. You cannot clear this field.
The system uses greater-than symbols (>) and spaces to show the hierarchical
relationships between table and field elements in the profile structure. See “Tables and
Fields” on page 288.
Set Up Filters
When Filter Mode is Inclusion or Exclusion in the Workbench Profile Details frame,
additional frames let you select and set up filters. Filter frames do not display when Filter
Mode is None.
These settings determine whether electronic signature processing occurs for data
associated with specified values. See “Filters” on page 289.
Use the Filters frame to specify which of the available filters you want to apply to this
category profile. When the Sel column includes an asterisk, the filter is selected and
displays in the Filter Criteria frame.
Note You cannot complete the profile record if all selected filters do not have at least one
criteria value. The system prompts you to remove such filters from the profile.
The Filter Criteria frame lists all the filters that were selected in the Filters frame. To enter
criteria values for a filter, navigate to the Criteria Value frame and enter a value that will be
used to either include or exclude electronic signature processing, depending on the filter
mode.
You cannot enter data ranges for a filter. Instead, enter multiple criteria values. Each
criteria value displays on a separate line in the Filter Criteria frame.
To filter on a blank value, enter the filter field name and leave Value blank. The system
prompts you to confirm. A blank value is not a wildcard; instead, it only matches data
where the value is actually blank.
Important Since the system does not validate this value, you should be careful when you
set up filters. For example, if you are setting up an inclusion filter to require electronic
signatures only for a single site and accidentally enter an invalid site code, the program
will never prompt for a signature.
Comments? Go to [Link]/MfwKHm
300 QAD Security Administration Guide
Profiles cannot be activated on the begin date. Plan all changes ahead of time and
activate updated profiles before their begin date. Profiles must have the begin date set to
sometime in the future. Activated profiles become effective at 12:00 AM on the specified
date.
You can execute this program in batch mode if you are activating a group with many
associated categories.
When this program completes execution, it generates a report that displays information
for each activated profile. The report includes the following for both the original profile and
the newly activated one:
• The category name.
• The value of E-Signature On.
• The begin date.
• The data structure of the profile, listing all tables and fields that are marked as
selected in E-Signature Workbench Maintenance. The system uses greater-than
symbols (>) and spaces to show the hierarchical relationships between data
elements. See “Tables and Fields” on page 288.
If Activate Profiles is No, only the report is generated; the profiles currently in use are not
updated. You can use this setting to verify the effects of running the program before you
actually activate the profiles.
Use Activated E-Sig Profile Report ([Link]) to display details about activated profiles.
When a profile is activated, the system automatically sends an email message to system
users who are assigned to the administrator role in Security Control (36.3.24). See “Email
Notifications” on page 303.
Note The Current setting is not stored as part of the signature instance. It is determined
in real time based on the activated profile currently in effect. If multiple categories are
signed in one menu program, each category of signed data is independent of the others.
If the data changes in one, it does not affect the Current setting of the others.
The lower frame shows the value of the signed data fields at the time of the last signature.
Greater-than symbols (>) and spaces show the hierarchy of the data structure. See
“Tables and Fields” on page 288.
Note If the data about to be displayed has never been signed, the system displays a
message for the associated category.
You can scroll through the frame to view all the field values. Choose End to exit from the
details frame and return to the program.
When you finish entering or updating data according to the standard menu program
functionality, the system prompts you to enter an electronic signature.
Note The points at which a program saves updates to the database may change when
electronic signatures are enabled. See “Transaction Scoping” on page 302.
The prompt screen includes the signature frame, as well as a details frame showing the
data being signed.
Navigation in the details frame depends on the setting of Data Frame Optional in the
active profile. When that field is No, focus is immediately on the details frame so you can
scroll through the entire record. You must choose End to place focus on the signature
frame. When Data Frame Optional is Yes, immediate focus is on the signature frame.
However, you can still scroll the details by setting Scroll Details to Yes. When you finish
reviewing the list of field values, choose End to return to the signature frame.
In menu programs that create transaction records, these signature frames may display
before the transaction records are created, depending on the value of Prompt for Preview
E-Sig in the activated profile. See “Prompt for Preview E-Sig” on page 296. In this case,
the user can choose to complete the signature based on the incomplete data displayed in
the details frame by setting Show Final Data to No. The transaction records are created,
and the signature is recorded along with values for all signed fields, including the
transaction record fields.
To see the final data to be signed including the transaction records, set Show Final Data
to Yes. The system generates the transaction records and displays the signature and
details frames.
To sign the data, you must enter your user ID, password, and a valid reason code defined
for reason type ESIG. Note that the User ID field must be the same as your system sign-
in ID. Depending on the Prompt for Remarks field in the active profile, you may also be
able to enter a remark related to the signature.
If you choose not to sign or the signature is not accepted, the system rolls back the entire
database transaction, including all user modifications.
Comments? Go to [Link]/MfwKHm
302 QAD Security Administration Guide
Important Be careful to enter the same user ID you used for sign in, as well as the correct
case-sensitive password. Based on settings in Security Control (36.3.24), too many
invalid signature attempts can cause your session to terminate, disable your user ID, and
inform the system administrator of a potential unauthorized access attempt. See “Define
Security Control Settings” on page 284.
Depending on how security is set up in your system, the system may prompt you to
change your password. For example, this can happen if the password has reached its
expiration date while you were signed in, or if the system administrator has forced a
password change for your user ID.
After signature processing is completed, the system displays a message indicating that
the signature has been successfully executed, along with the event identifier.
Transaction Scoping
So that the system can apply electronic signatures to the appropriate data, transaction
scoping—the points during program execution when data is committed to the database—
has been modified in some maintenance and transaction programs that can be signature
enabled. See “Apply Profile to Menu Programs” on page 298.
For example, before electronic signature functionality was added, each frame in Inventory
Control (3.24) was included in an individual transaction block. You could update the first
frame, choose Next, then choose End from the second frame. The system updated the
database with the changes to the first frame. You did not have to choose Next through all
the frames.
However, all frames are now part of one transaction block—allowing the system to apply
the same electronic signature to all updates made in the program. If you update the first
frame, choose Next, and choose End in the second frame, the changes you made in the
first frame are not saved to the database. You must choose Next through all the frames to
save any changes you make in the program.
If the user presses End in the E-Signature frame, the system does not create an
electronic signature, and rolls back the incorporation or implementation transaction for the
PCO. It then continues to process the next PCO.
Note You cannot use batch processing with Incorporation or Implementation when
electronic signatures are enabled for the program. The Batch ID field does not display.
Email Notifications
The system generates and sends emails to the system users who are assigned the
administrator role in Security Control (36.3.24) in the following situations:
• One or more signature profiles are activated.
• A user’s consecutive number of failed electronic signature attempts exceeds the
Maximum Access Failures value in Security Control.
For more information see “Define Security Control Settings” on page 284.
The email text is defined in master comment data. You can customize this text for your
environment by modifying the text using Master Comment Maintenance (2.1.12).
The electronic signature-specific messages have a comment type of ES. The comment
reference varies depending on the specific purpose. The e-mail is constructed by starting
with a specific comment, followed by one or more messages with additional details. A
generic comment of type AT with a reference of email_postfix is appended. This
comment contains the following information that applies to all system-generated security
and enhanced controls e-mails:
This email was automatically generated from a QAD process. If you have any questions
about this email, contact the QAD system administrator. Do not reply to this email.
Comments? Go to [Link]/MfwKHm
304 QAD Security Administration Guide
Comment Type: ES
The email sent to system users who are assigned the administrator role when failed
signature attempts exceed the Security Control value is similar to this example:
The purpose of this email is to inform you a user has been disabled for exceeding the
maximum e-signature failures allowed as set up in Security Control. You have been
included in this email distribution because you belong to the Administrator role
identified in Security Control.
User ID deactivated for exceeding max e-sig failures allowed: XXX
This email was automatically generated from a QAD process. If you have any questions
about this email, contact the QAD system administrator. Do not reply to this email.
Reporting
Reports and inquiries related to electronic signatures are available in three areas:
• Setup
• Electronic signature reports
• Functional reporting for programs that are signature enabled
Setup Reports
The E-Signature Setup Menu has four reports that provide information on signature setup
records:
• Use E-Sig Category Master Report ([Link]) to view the top-table name and the
filters available for categories.
• Use E-Signature Group Report ([Link]) to view the categories assigned to each
group.
• Use E-Sig Workbench Profile Report ([Link]) to view the following kinds of
information about the current workbench structure for a specified electronic signature
category:
• Settings that control processing and display of signatures in enabled programs
• The list of programs that are signature enabled for the category
• The list of field and tables that are included in the signature record
• Optionally, information about filters associated with the category, if applicable
Note Depending on whether you have updated or refreshed a workbench profile
since last activating it, this report does not necessarily show the settings currently in
use for a category. Use Activated E-Sig Profile Report to view that information.
• Use Activated E-Sig Profile Report ([Link]) to view information about profiles that
have been activated using E-Signature Profile Activation. It displays the same types of
information as E-Sig Workbench Profile Report, but lets you specify a range of
categories over a range of effective dates.
Example To view all the profiles currently in use, leave the category code range blank
and enter today’s date in both date fields.
Note Although a date range is not required in the selection criteria, consider entering
one. This significantly reduces the time required to generate the report.
Use E-Signature Events Report (36.12.4) to view data based on ranges of signature
event IDs, user IDs, and dates when the signature was created. Optionally, you can limit
the report to signatures related to a single specified category code.
The Summary/Detail field controls whether the report includes just basic information such
as the user’s name, date, and signature meaning, or also includes details of the signed
data.
Fig. 11.7
E-Signature Events Report (36.12.4)
Comments? Go to [Link]/MfwKHm
306 QAD Security Administration Guide
Use E-Signature History Report (36.12.5) to select database records and view historical
electronic signature data associated with them. For example, you can report on the two
latest signature events associated with a specified work order.
Fig. 11.8
E-Signature History Report (36.12.5), Initial Frame
This report includes multiple frames. First, specify the category, user ID range, and
signature date range. Category is a required field. Use the following fields to control other
characteristics of the report:
Max Events. Specify the maximum number of electronic signature events to be
included in the report for each selected record. The default is 1, which displays the
latest signature event for each record that matches the data ranges in the E-Record
Selection Criteria frame. If you enter a larger number, the system displays the latest
first, then works backward through the number of events specified.
Display Only Current. Indicate whether the system should limit the selection to
records in which no data has been updated since the latest electronic signature was
recorded.
Display Where the Table Data Is Unsigned. Indicate whether the system should
include records matching the criteria data ranges even if they are not covered by an
electronic signature instance. When this is Yes, the output identifies records that do
not have associated signatures.
Auto-Select All. Indicate if you want all the fields in the top table to be included in the
report by default. You can modify the setting for individual fields as needed in the
Report Display Fields frame. The default is Yes.
Press Next to display the E-Record Selection Criteria frame where you can identify the
records for which you are interested in seeing signature histories. Specify ranges of
values for one or more fields in the top table for the category.
Note Large reports may result if you do not specify field-level selection criteria.
This frame displays the name, label, and type for each field in the top table of the selected
category. Field types are Primary (P), Indexed (I), or non-indexed (F). Any selection
criteria entered in the Data Range frame display next to the corresponding field on the E-
Record Selection Criteria frame. These selection criteria are used to narrow the search
results. See “Top Tables” on page 289.
To minimize the report output, enter criteria for as many table fields as needed. For
example, if you are reporting signature records for the Quality Results category (0002),
you can limit the report to signatures for a specific work order. Scroll to the Work Order
(wr_nbr) field and press Next. Enter the work order number in both the From Value and To
Value fields. After entering the field-specific selection criteria for your report, choose End
to continue.
Use the Report Display Fields frame to select or deselect the top-table fields to include or
exclude on the resulting output.
All fields are preselected if Auto-Select All is Yes in the first frame. Select or deselect
fields as needed. Then press Next to specify the output device for the report.
The report output includes the values for all the top-table fields selected in the Report
Display Fields frame, as well the following signature data for each event:
• Event ID
• User ID and name of the person signing
• Name of the menu program that generated the signature
• Signature meaning—the reason code entered when the record was signed
• Signature date and time
• Remark entered with the signature
• Current indicator, specifying whether signature values and database values are still
identical
• Signed data—the value when signed of each field included in the active profile in
effect when the signature was created
Note If signature events are not available that match the selection criteria, the output
includes the following message:
Data archived or never signed
The latest signature should always be available. It is not deleted during an archive/delete.
As part of an overall security program, you can generate a report showing unsuccessful
signature attempts, based on user sign-in history records.
Use E-Signature Failure Report (36.12.7) to select history records by a combination of
user ID, signature attempt date, and status code. The resulting report displays the user ID
and name, time data, and the status code, which identifies the reason for failure; for
example, ID disabled because of excessive failed signature attempts.
When failed sign-in history records are no longer needed online, you can remove them
using E-Sig Failure Archive/Delete ([Link]). This standard archive/delete program
deletes records from the system and optionally saves them to a file named
esig_fail_YYYYMMDD.hst where YYYYMMDD is the date you run E-Sig Failure
Archive/Delete. If this function runs multiple times a day, the data will be appended to the
same file for the given day.
Comments? Go to [Link]/MfwKHm
308 QAD Security Administration Guide
Based on those values, the reports and inquiries listed in Table 11.6 can include the
Display E-Signature Details field.
Table 11.6
Reports and Inquiries Displaying Electronic Signature Data
Program Menu Category
PCR/PCO Detail Inquiry [Link] 0010
Print PCR/PCO [Link] 0009
Lot Master Inquiry 1.22.2 0005
Inventory Detail by Lot Inquiry 3.1.13 0006
Inventory Detail by Item Browse 3.2 0006
Inventory Detail by Site Browse 3.3 0006
Inventory Detail Report 3.6.5 0006
Inventory Detail by Location 3.6.6 0006
Inventory Detail Report 3.6.5 0006
Transactions Detail Inquiry 3.21.1 0007
Operation Transaction Detail Inquiry [Link] 0003
Operations by Work Order Report [Link] 0003
Operations By Employee Report 18.4.14 0003
QM Quality Order Results Report 19.26.12 0008
QM Certificate of Analysis Print 19.26.20 0008
Control Tables Report 36.17.6 0001 or 00041
Important In some inquiries, if Output is set to a display device such as Terminal rather
than to a printer or a file, electronic signature data is not included regardless of this
setting. Change the output device to view that data. This limitation does not apply to
reports.
Comments? Go to [Link]/MfwKHm
310 QAD Security Administration Guide
Overview
Regulatory guidance often requires records to be signed by an author, approver, tester, or
other accountable individual, particularly in areas with critical processes that rely on tight
quality control, such as the pharmaceuticals industry.
While this signature process was historically associated with a hard-copy signature on
paper, it has been extended in many areas to electronic records. For example, the United
States Food and Drug Administration (FDA), in 21 CFR Part 11, describes how electronic
signatures can be used to support automated processing.
The electronic signature features of Adaptive UX support this requirement. You can
configure your system to require users of certain fields or approval processes to enter a
password before they can create or update records. Additionally, they must provide a
reason code that defines the meaning of the signature; for example, Approved or Tested.
Based on setup data, users may be able to enter a related remark as part of the
signature.
Note Any valid user who has access to a function that records signatures can sign
records. Use Roles, Role Menus, and User Access to assign access to signature-
controlled functions based on user roles. See “Role Menus” on page 129.
These features are intended as part of an overall approach—also incorporating
capabilities offered by system security—to meeting the user accountability requirements
of customers with regulated environments.
Important Electronic signatures can be enabled in Adaptive ERP and Adaptive UX, and
operate in both user interfaces simultaneously. However, you must set up and configure
the functionality in both UIs separately. In addition, as you enable electronic signature
configurations in Adaptive UX, you should disable the related functionality in Adaptive
ERP by removing permissions to menu options. This ensures reports and histories for
electronic signature events are confined to one interface with a consistent reporting
structure. Contact QAD Support for assistance with Adaptive UX electronic signature
configuration.
Note The E-signature functionality supports LDAP. The support of SAML will be
implemented in the nearest releases.
• Determine security requirements for signed records; for example, assign appropriate
role-based security to prevent users who should not sign records from accessing the
fields that require signatures.
Electronic signatures should be part of a detailed security plan to meet your overall
business requirements.
Regulatory agencies are often specific about the types of data that must be signed, as
well as the role of the signing individual—verifier, approver, and so on. Before you start
the implementation, be sure that your signatures meet the needs of the appropriate
regulatory agency.
In addition, you should review your company’s web browser security policy. If a policy is
not in place and enforced, your browser might offer to autofill credentials in forms that
contain password fields, including the E-Signature window in which users record their
electronic signature. Edit your browser settings and ensure the related security policies
on managed computers are enforced to disable autofill of credentials.
Comments? Go to [Link]/MfwKHm
314 QAD Security Administration Guide
Two fields directly control how the system manages unsuccessful electronic signature
attempts:
• Maximum Access Failures indicates how many consecutive unsuccessful signature
attempts cause the user’s session to terminate, disable the account, and inform the
administrator role of a potential unauthorized access attempt.
• Administrator Role is the name of the role—defined in Roles—assigned to the system
users who are notified by email when a session is terminated because of excessive
unsuccessful signature attempts.
QAD provides a number of pre-set configurations that are available on the E-Signature
Setup screen. You can enable these configurations by selecting the Active checkbox in
each record.
Table 12.1
Default Electronic Signature Configurations
Configuration Name Change Requiring a Signature
Asset Work Order Close An asset work order is closed
Inventory Control Changes are made in the Compliance panel to any of the following:
• Compliance Active
• Modify Component Issue
• Modify Co/By Product Receipts
• Lot Control Level
• Single Lot per Purchase Order Receipt
• Single Lot per Work Order Receipt
• Single Lot per Repetitive Receipt
Changes are made in the Inventory panel to any of the following:
• Default Site
• Tolerance From
• Class A (both fields)
• Class B (both fields)
• Class C (both fields)
• All Others (both fields)
• Picking Order
• Picking Sequence
• Issue Days
Inventory Detail Update Changes are made to Expire Date, Grade, Assay %, or Inventory
Status
Tracks transaction history for certain transaction types that occur
only on certain transactions
Comments? Go to [Link]/MfwKHm
316 QAD Security Administration Guide
Use the E-Signature Setup screen to define and manage electronic signature
configurations that are triggered by changes to individual fields or that are part of an
approval process flow.
Fig. 12.2
E-Signature Setup
The E-Signature Setup screen lists the existing electronic signature configurations.
Configurations that are active in the system have a green circle in the Active column.
Configurations that are not active have a gray outline of a circle in the Active column.
Click New to create a new configuration.
Fig. 12.3
New Electronic Signature Configuration
d
Comments? Go to [Link]/MfwKHm
318 QAD Security Administration Guide
Include Remarks. Select this checkbox to include a field for remarks on the E-
Signature pop-up window when users record their signatures. This content appears in
the E-Signature History screen’s Remarks column.
E-Signature Business Components
The E-Signature Business Components option is visible if you selected Fields or Fields
and Approvals in the Configuration Type drop-down menu. The grid lists the business
components that have fields that prompt for electronic signatures. The business
components require additional configuration to set the fields that require electronic
signatures. To add a business component to this configuration, click New. To edit an
existing entry, highlight the record and click Details.
Approvals
The Approvals option is visible if you selected Approvals or Fields and Approvals in the
Configuration Type drop-down menu in E-Signature Setup.
To add a new approval process flow to the electronic signature configuration, click Select
and then choose a business component from the Approval Configuration screen.
Use E-Signature Business Components to define the fields that require a user signature,
as well as the referenced fields and conditions that make up the electronic signature
configuration for one business component.
Fig. 12.4
E-Signature Business Components
Main
Business Component URI. Use the lookup to select the business component to add
to the configuration.
Business Component. The business component’s name defaults from the selected
business component URI.
E-Signature Configuration. The electronic signature configuration defaults from the
main record.
Fields
The Signed Fields and Reference Fields options are visible if you selected Fields, or
Fields and Approvals in the Configuration Type drop-down menu in E-Signature Setup.
Signed Fields
The Signed Fields grid lists the fields in the business component that require a signature
with any change. Click New to add a field to the configuration.
Note Do not enter fields you intend to make conditional. Use the Conditions panel for
fields that require signatures only when a certain condition is met.
Field. Select a field from the lookup. The lookup is filtered to the fields in the selected
business component.
Field Label. The field label associated with the selected field.
Table. The table in which the selected field is found.
Data Type. The data type of the selected field, such as decimal, date, or character.
Reference Fields
Reference fields are included as part of an electronic signature configuration to allow for
more refined searching and filtering on the E-Signature History screen. They do not
require an electronic signature when they are updated.
Reference fields are limited to five per business component.
Sequence. Set this free-form field to a value from 1 to 5. The number corresponds to
the associated Reference Field column on the E-Signature History screen. Best
practice is to have a consistent sequence assignment of reference fields across your
system. For example, any business component that includes Item as a reference field
should designate Item as Sequence setting 1 while Equipment Type should be set to
Sequence setting 4. This ensures the Reference Field columns in E-Signature History
can be used to the fullest extent of the system when searching and filtering.
Reference Field. Select a field from the lookup, which is filtered to the fields in the
selected business component.
Field Label. The field label associated with the selected field.
Table. The table in which the selected field is found.
Data Type. The data type of the selected field, such as decimal, date, or character.
Note For non-previewable business components, the system does not track the changes
in field values, and you are prompted for credentials at any field update. You cannot set up
signing certain fields only. For more information about using previewable and non-
previewable business components, see “E-Signature Modes” on page 322.
Comments? Go to [Link]/MfwKHm
320 QAD Security Administration Guide
Conditions
Use the Conditions grid to limit the scope of the electronic signature configuration.
Fig. 12.5
Electronic Signature Conditions
Depending on the specific requirements of your environment, you may not need to record
electronic signatures for all records of a given type. For example, you might want to
require electronic signatures only on inventory transactions involving a specific site or
when changes are made to pieces of equipment that are used in production.
Field. Select the field for the condition you are setting.
Operator. Select the appropriate operator.
Value 1. Enter an appropriate value for the selected field and operator.
Value 2. If required, enter a second value.
Note You can also use conditions in e-signature API Mode. For more information about
using e-signature in API Mode, see “E-Signature Modes” on page 322.
E-Signature History
You can use E-Signature History to review changes made to electronic signature-enabled
fields. Each historical record includes the field’s original content and its changed content,
along with the user ID of the user who made the change, the time and date of the change,
and the reason for the change.
Fig. 12.6
E-Signature History
The individual record displays the data tied to this electronic signature event and links to
the document that was changed. Click the Open Document link, highlighted in
Figure 12.7, to open the record where the change was made.
Comments? Go to [Link]/MfwKHm
322 QAD Security Administration Guide
The top area of a signature display includes three fields that cannot be updated: the user
ID of the user who applied the signature, and the date and time of the event. Users must
enter their password and the reason code. If Include Remarks was selected during the
electronic signature configuration setup, users also can enter information about the
change in the Remarks field.
The table in the lower area of the screen displays the data that is being changed and the
information specific to the change. The From column is blank for fields that did not have a
previous entry.
Note By design, some electronic signature configurations, such as Inventory Detail, do
not include the lower table.
If a user enters an incorrect password, the system does not update the record.
E-Signature Modes
In Adaptive UX, you can use the e-signature functionality for the following types of
business components:
• Previewable
• Non-Previewable
When signing changes in previewable business components, you can preview the field
value changes in a separate e-signature pop-up before you sign and commit the
transaction. The changed values are displayed in the From and To columns of the grid in
a separate e-signature pop-up window, as shown in Figure 12.9.
Fig. 12.9
Inventory Control, E-Signature Pop-up
With non-previewable business components, you cannot see the field value changes
during the signing operation. The grid with the From and To columns does not display in
the e-signature pop-up, as shown in Figure 12.10.
Fig. 12.10
Inventory Detail, E-Signature Pop-up
Comments? Go to [Link]/MfwKHm
324 QAD Security Administration Guide
Note When you modify a record, the From and To fields are populated with previous and
new values accordingly. However, when you create a new record, the From field remains
blank.
Fig. 12.11
E-Signature History
For both types of business components described above, you can use the following e-
signature modes:
• E-Signature UI Mode
• E-Signature API Mode
Figure 12.12 shows the principle of user interaction with e-signature modes and different
types of business components.
Fig. 12.12
User Interaction with E-Signature Modes and Business Components
E-Signature UI Mode
For e-signature UI mode, Adaptive UX provides user interface dialogs for signing
operations. This mode is used by users who directly enter data in Adaptive UX.
You must receive an e-signature token when a business component with an active e-
signature configuration takes part in an API request. In this case, you receive one of the
[Link] or
[Link] errors, as shown in Figure 12.13
and Figure 12.14.
Comments? Go to [Link]/MfwKHm
326 QAD Security Administration Guide
Fig. 12.13
Error for E-Signature with Field Value Changes Preview
Fig. 12.14
Error for E-Signature without Field Value Changes Preview
To obtain an e-signature token and bypass the errors above, you must make a POST call
to the /api/qracore/esignature/token REST API with the following payload:
Fig. 12.15
POST Call Payload
The successful response will contain the e-signature token value, which is a base64
encoded string, as shown in Figure 12.16.
Fig. 12.16
E-Signature Token
The received token must be attached to the X-QAD-Esig-Token HTTP request header.
Comments? Go to [Link]/MfwKHm
328 QAD Security Administration Guide
Auditing
This section discusses how to set up the auditing functionality in your system.
Overview 330
Defines auditing and explains how the Auditing module works.
Plan Auditing 331
Describes what to consider before performing an audit.
Set Up Auditing 333
Describes the requirements for configuring auditing for databases, importing policies,
enabling auditing for specific areas, and generating audit reports.
Archive Database 340
Describes how to set up archive databases, connections, report on them, and customize
archive/load scripts.
Generate Audit Trail Reports 344
Explains how to generate reports against application and archive databases.
Export Audit Policy 351
Explains how to export audit policies using Audit Policy Export.
Disable Auditing 352
Explains how and why to disable auditing.
330 QAD Security Administration Guide
Overview
Auditing is the process of evaluating an organization’s practices for safeguarding
electronic information from loss, damage, unintended disclosure, or denial of availability. It
is one of the essential factors in providing a secure application and in meeting mandatory
regulatory compliance.
The system’s auditing capability integrates with the Progress OpenEdge auditing
capability. Refer to the Progress documentation for additional information about the
auditing capability in Progress and about the Progress Data Administration utility.
With QAD’s Auditing module, you can configure your system to maintain audit trails.
Audit-trail records are created and stored in audit trail tables. They contain facts about
changes made in the databases. A typical audit record includes information that helps
you identify who made a change, which program made the change, when the change was
made, and what the change was. You can set up these functions for all tables or you can
limit the audit trail recording activity to specific tables.
The Auditing module adds value to the Progress OpenEdge auditing capability by
including:
• A user interface that allows you to enable and disable auditing at the table level with
reusable defaults. This function is more straightforward than the audit policy
maintenance function provided by Progress.
• A default audit policy. QAD’s default policy includes configuration of identifying fields
of tables in QAD’s main database. With the default policy, users can easily identify
changed records according to the content of the audit trail.
• Reports that perform better and are easier to use than the default Progress reports.
• The ability to trace the user who made the changes through the QAD architecture.
• Import/export policies to allow users to set up audit policy in one database and
enforce it in other databases by exporting and importing the policy. This prevents
having to repeat the setup for each database—reducing errors and ensuring that all
company databases are using the same policy.
An Enhanced Controls license is required to use Auditing. Various OpenEdge utilities
must also be run and data administration options set to enable particular databases for
auditing.
Warning QAD does not recommend importing custom policies into the system nor using
Progress tools to change QAD’s default policy. Custom policies may cause conflicts on policy
configuration.
Below is a list of menus and programs for the auditing module.
Table 13.1
Auditing Module Menus and Programs
Number Menu Label Program
36.12.1 Audit Trail Report–App DB atapprp.p
36.12.2 Audit Trail Report–Arc DB atarcrp.p
36.12.13 Audit Trail Setup Menu
[Link] Audit Policy Import atplimp.p
Plan Auditing
Thorough planning is necessary before setting up auditing and will save a considerable
amount of time. You should take into account certain system constraints when deciding
which tables to enable for auditing. These planning considerations include:
• Which databases to audit
• Which tables to audit
• Using archive databases for reporting
• Auditing custom tables
• Schema changes
Comments? Go to [Link]/MfwKHm
332 QAD Security Administration Guide
Note The qadhelp database should not be audited since it only contains static system
data.
Set Up Auditing
To set up auditing, load the license for Enhanced Controls and do the tasks described in
the following sections:
• “Create Generalized Codes to Enable CSV Output” on page 333
• “Enable Auditing for the Database” on page 333
• “Configure Database Options and Audit Permissions” on page 334
• “Import Audit Policy” on page 337
• “Enable Auditing on Selected Tables” on page 338
• “Enable Auditing on Selected Fields” on page 339
2 In Field Name, enter [Link] or search for the field in the lookup. Select
Next.
3 In the Value field, enter CSV File, then select Next.
4 The Comments and Group fields should automatically populate with:
• CSV format output file
• SYSTEM
If they do not display these settings, enter them in the appropriate fields.
5 Select Next.
Comments? Go to [Link]/MfwKHm
334 QAD Security Administration Guide
For the generic case, all databases are preconfigured with database areas to store
auditing data and indexes. To enable auditing on all databases, execute the command:
> yab database-auditing-enable
Important This step is only required for systems that have been converted from a non-
YAB-managed environment that also did not have auditing set up before the conversion.
Continue to “Grant Audit Permissions” on page 335 if your databases are already
configured.
Set up the new database options in Progress using the Data Administration menu.
Choose Tools > Data Dictionary > Admin > Database Options ....
Fig. 13.2
Database Options Settings
To access audit-related menus, a user must be granted specific audit permissions. Those
permissions are:
• Audit Administrator — An authenticated user who has been granted privileges to
create, update, and delete audit policies and read audit data.
• Application Audit Event Inserter — An authenticated user who has been granted
privileges to generate application audit events. Note that in ABL applications,
application of this privilege is optional and disabled by default; in SQL applications,
application of the privilege is enabled by default and cannot be disabled.
The application audit event inserter does not have privileges to archive audit data or
policy tables.
• Audit Data Archiver — An authenticated user who has been granted privileges only to
archive or load audit data. An audit data archiver has no access to the audit policy.
• Audit Data Reporter — An authenticated user who has been granted privileges to
read the audit data. Any user who is going to run an audit report must be set up with
this permission.
Note The Audit Administrator is not an Audit Data Archiver nor Audit Data Reporter.
Comments? Go to [Link]/MfwKHm
336 QAD Security Administration Guide
Table 13.2
Permission Required for Audit Menu Access
Program Menu Permission Required
Enhanced Controls Menu 36.12 N/A
Audit Trail Report –App DB 36.12.1 Audit Data Reporter
Audit Trail Report–Arc DB 36.12.2 Audit Data Reporter
Document Audit Trail Reports 36.12.12 Audit Data Reporter
Audit Trail Setup Menu 36.12.13 N/A
Audit Policy Import [Link] Audit Administrator
Audit Policy Export [Link] Audit Administrator
Audit Configuration [Link] Audit Administrator
Maintenance
Audit Configuration Report [Link] Audit Administrator
Audit DB Maintenance [Link] None
1
Audit DB Report [Link] None
2
Table 13.3
Audit Permissions
Setting Description
[Link] Used to assign audit permissions to users.
[Link] A comma-delimited list of users.
[Link] A comma-delimited list of audit permissions to assign to the
users.
The following values are accepted:
• audit-administrator
• application-audit-event-inserter
• audit-data-archiver
• audit-data-reporter
Replace INSTANCE with one of the databases you have updated and enabled for
auditing. Replace NAME with a unique value you specify to differentiate pairs of settings
for users and permissions, such as admin for administrative permissions, archiver for
archive permissions, and reporter for those needing to run audit reports.
For example, the following settings grant Audit Administrator permission to two users,
audit-admin1 and audit-admin2.
[Link]=audit-admin1,audit-admin2
[Link]=audit-administrator
This next example grants Audit Data Archiver permission to an archive user, named audit-
archive1.
[Link]=audit-archive1
[Link]=audit-data-archiver
As previously noted, any user who is going to run an audit report must be set up with
Audit Data Reporter permissions. For example:
[Link]=audit-report1
[Link]=audit-data-reporter
Importing audit policies only needs to be done once for each audit-enabled database. The
QAD solution will not work without the Progress default policy file loaded.
To import an audit policy file, open Audit Policy Import ([Link]) and complete the
following fields:
Application Database. Specify the logical name of the database where the policy will
be applied.
Import File. Specify the location of the XML file containing the policy definition. Two
files are normally loaded: a Progress policy file that defines general settings and the
QAD policy file that defines settings relevant to application tables. The two files are
installdir\config\auditing\[Link] (for the default settings of general
activities such as sign in and changing schema) and
installdir\config\auditing\[Link] (default policy).
Comments? Go to [Link]/MfwKHm
338 QAD Security Administration Guide
Fig. 13.5
Audit Configuration Maintenance Table Selection
Use the up and down arrow keys to scroll through the list of tables. Use the space bar to
select the tables whose Enabled settings you want to change. An asterisk symbol (*)
displays at the front of the row of each table you select. To toggle the Enabled settings,
select individual tables using the space bar and then press F1. The system asks whether
you want to enable the selected tables. Enter Yes (or No) and then press the Enter key.
3 Use Audit Policy Export ([Link]) to export all policies, including qadmainpolicy.
Note You have to page down in Audit Policy Export to access and select
qadmainpolicy.
See “Export Audit Policy” on page 351 for more information on exporting policies.
Comments? Go to [Link]/MfwKHm
340 QAD Security Administration Guide
Archive Database
The system is preconfigured with an archive database (qadarc). Audit trail data is
archived to this database. The archive database is a copy of the database with auditing
enabled. No other schema needs to be loaded. There are several reasons for having an
archive database:
• Audit trail data requirements grow over time, requiring more disk space. Having a
separate archive database prevents audit trail data from taking disk space in the
application database.
• Running audit reports against the application database will impact system
performance.
• The archive database can be deployed in a flexible way.
• The archive database can store audit trail data from different application databases
and act as a central reporting database.
Comments? Go to [Link]/MfwKHm
342 QAD Security Administration Guide
Alternatively, to move auditing records out of a specific database, execute the following
command, where INSTANCE is the name of the source database:
> yab database-[INSTANCE]-auditing-archive
Comments? Go to [Link]/MfwKHm
344 QAD Security Administration Guide
Note If the [Link] was not defined when the environment was created, the
operating system account that was used to install the environment needs to be set up as
an application user to configure auditing within the application. To configure audit users
and roles that provide a better segregation of responsibilities, see Configure Database
Options and Audit Permissions.
Comments? Go to [Link]/MfwKHm
346 QAD Security Administration Guide
Report Format
All Document Audit Trail reports follow the same format, as shown in Figure 13.10.
Fig. 13.10
Items Audit Trail Report
The Data Source column on the left-hand side and any light blue row together identify a
modified record. Events are detailed in the white and gray rows that follow a light blue
record row. Each event includes the modified field, the old and new values, the event type,
the user who made the change, and the event timestamp.
Excel Output
To export an audit report in Excel from Adaptive UX, change the File Type and Layout
options on the report screen, as shown in Figure 13.11, and then click Run.
Fig. 13.11
Excel Setup in Adaptive UX
To generate Excel output in Adaptive ERP, you also need to change the Layout and File
Type options.
Fig. 13.12
Excel Setup in Adaptive ERP
The output in Excel contains three groupings of columns, as described in the following
section. The first group displays the key fields, the second displays the data source and
modified fields, and the third group contains the event details.
Comments? Go to [Link]/MfwKHm
348 QAD Security Administration Guide
Key Fields
Fig. 13.13
Excel Output Part 1 - Key Fields
The Excel spreadsheet includes a column for each key field, highlighted in Figure 13.13 in
red. You can identify a record through its key fields and the data source. In the example,
for Data Source=Item, you can use the Item Number to identify the record, while for Data
Source=Item Site Planning data, you can use the Item Number and Site to identify the
record.
Fig. 13.14
Excel Output Part 2 - Data Source and Modified Fields
The second group of columns identifies the changed field, along with the previous value
and the new value of the field.
Event Details
Fig. 13.15
Excel Output Part 3 - Event Details
The final columns display the technical table and field names, along with the Event Type,
the user who made the change, and the event date and time.
Comments? Go to [Link]/MfwKHm
350 QAD Security Administration Guide
Program Name. Specify the name of the program that changed the records. For
example, specify sosomt.p (Sales Order Maintenance) to get audit trail data
generated for changes made by Sales Order Maintenance.
Date, To. Specify the beginning and ending dates.
Summary/Detail. Select summary mode or detail mode. In summary mode, no field
value changes are reported.
Output Format. Specify the output format as a text file (.txt), XML file (.xml), or CSV
file (.csv).
Note The CSV file option generates a comma-separated list that can be imported
into most spreadsheet applications.
Click Next. If just one table was selected, then the system displays the identifying fields
and allows the user to specify a range of values for one or more fields to narrow the
search results. This frame displays the field name and the field label for each identifying
field of the selected database table. You can specify from and to values in the data range
frame.
Fig. 13.17
Audit Trail Report–App DB Field Selection
Click Next again to have the system retrieve the records according to the criteria you have
specified and generate a report (or output file).
The report shows the Table Name, User ID, Date, Time, and Program for each audit trail
record that meets the criteria.
Fig. 13.18
Audit Trail Report–Arc DB (36.12.2)
Comments? Go to [Link]/MfwKHm
352 QAD Security Administration Guide
Export File. Specify the name of the Progress policy XML file to which you want to
export the audit policy.
Overwrite Existing File. Specify whether you want to overwrite an existing Progress
policy XML file.
Click Next and the system lists all the current audit policies. Use the up and down arrow
keys to scroll through the list of policies. Use the space bar to select the policies you want
to export. An asterisk symbol (*) displays at the front of the row of each policy you select.
Click Next (or in the Character UI, press F1) and the system prompts you to export the
selected policies to the export file you have specified.
Disable Auditing
As an audit administrator, you can disable auditing for a database, but the database must
be offline when you disable auditing for that database. Disabling auditing does not remove
any recorded audit data or the auditing tables. Access to the audit data remains restricted
to authorized users when auditing is disabled.
To disable auditing on all databases with auditing enabled, execute the command:
> yab database-auditing-disable
Overview
Exposing any application to the internet greatly increases the security risks faced by that
application. To provide secure access to external web applications, you can use a QAD-
supplied generic proxy that hides external applications behind a firewall, ensuring that the
secure Adaptive UX controls access to those applications.
Configuration
The Proxy Controller is configured with property updates to the
build/config/[Link] file. After these updates are complete, you
must run a yab update for the changes to take effect.
Proxy Configuration
Each external application has a name, as well as a local path from which to proxy, and a
remote server to which to proxy:
Table 14.1
Proxy Configuration
Property Description
[Link] Comma-separated list of proxy names. These are then used as
keys for the other properties in this table.
[Link].{name}.proxyFrom The path from which to proxy; for example, /remote must start
with a /.
The full proxy path is generated from this value as
/{context}/proxy{proxyFrom}.
[Link].{name}.proxyTo The URL to which to proxy; for example,
[Link]
Note If the external application is hosted at the root of the remote server, you must
include a forward slash, /, at the end of the proxyFrom and proxyTo parameters. For
example, to proxy to the Tomcat default application [Link]
[Link], use:
proxyFrom=/tomcat/ and proxyTo= [Link]
Without this forward slash, relative links on the page may not be resolved correctly.
URL Rewriting
With a reverse proxy, it is often necessary to rewrite URLs in the proxied content to be
consistent with the local path. For example, the local path /qad-webshell/proxy/app is
proxied to the remote server [Link] and the proxied content
contains links similar to the following
<a href="[Link] Me!</a>
<a href="/context/some/cool/api">Click Me!</a>
Without rewriting, the first link would try to bypass the proxy and go directly to the remote
server. The second link would resolve as:
[Link]
when it should instead be:
[Link]
The solution to these problems is URL rewriting. Currently, QAD supports rewriting for
HTML (html), JavaScript (js), and JSON (json) content. To enable content rewriting with
default settings, add the following property with a comma-separated list of rewriters:
[Link].{name}.rewriters
For example,
[Link].{name}.rewriters=html,json
HTML Rewriting
Enabling the HTML rewriter enables only attribute rewriting by default. To enable and
configure link, event, style, and script rules, add the following property with a comma-
separated list of rewrite options:
[Link].{name}.[Link]
Each option works by applying a set of rewrite mappings to selected content in the HTML
document. Each option has the following default behavior.
link
The link option is responsible for rewriting links in HTML attributes. By default, it looks for
links in href, src, action, data, and cite attributes. It applies a set of rewrite mappings to
those attribute values in the document. Rewrite mappings are either simple mappings that
match and replace a given prefix, or regex mappings that perform general match and
replace. The default mappings are based on the proxy configuration. For example,
suppose proxyFrom=/app, proxyTo=[Link] and the webshell
context is qad-webshell. Two simple mappings are defined:
/path -> /{context}/proxy/app
[Link] -> /qad-webshell/proxy/app
event
The event option is responsible for rewriting links in HTML event handlers. By default it
looks for links in the following attributes:
• onclick
Comments? Go to [Link]/MfwKHm
356 QAD Security Administration Guide
• ondblclick
• onmousedown
• onmouseup
• onmouseover
• onmousemove
• onmouseout
• onkeypress
• onkeydown
• onkeyup
• onfocus
• onblur
• onload
• onunload
• onsubmit
• onreset
• onselect
• onchange
Because the event handler can contain arbitrary JavaScript, this option uses regex
mappings by default to look for links in JavaScript strings. Using the same scenario as in
the link example, suppose proxyFrom=/app, proxyTo=[Link] and
the webshell context is qad-webshell. The default mappings are defined:
'(?:[Link] -> '/qad-webshell/proxy/app$1'
"(?:[Link] -> "/qad-webshell/proxy/app$1"
style
This option rewrites links in script attributes and script content. By default, it uses the
following regex mappings to match CSS URL data types:
url\(\s*'(?:[Link] -> url('/qad-
webshell/proxy/app$1')
url\(\s*"(?:[Link] -> url("/qad-
webshell/proxy/app$1")
script
This option rewrites links in script content. By default, it uses the same regular
expressions as the event option.
The default behavior for each of these options can be customized using the following
properties.
Table 14.2
Script Content Properties
Property Description
qad- Comma-separated list of attributes for link and event options.
[Link].{name}.[Link].{option}. Include ‘default’ in the list to use default attributes in addition to
attributes custom ones.
qad- Comma-separated list of mapping types to apply. Current supported
[Link].{name}.[Link].{option}. values are ‘simple,’ ‘regex,’ and ‘default’
mappings
qad- Simple rewrite mappings in pairs separated by spaces. For example,
[Link].{name}.[Link].{option}. /path /qad-webshell/proxy/app [Link] /qad-
[Link] webshell/proxy/app
qad- Regex mappings in pairs separated by spaces. For example,
[Link].{name}.[Link].{option}. '(?:[Link] '/qad-
[Link] webshell/proxy/app$1' \"(?:[Link]
/path)((?:[^"\\\\]|\\\\.)*)\" "/qad-webshell/proxy/app$1"
Example
The Tomcat proxy has URL rewriting enabled for HTML links with custom attributes and
mappings. The build/config/[Link] file would look like the
following:
[Link]=tomcat,configurator
[Link]=/configurator
[Link]=[Link]
[Link]/procon
[Link]=/tomcat/
[Link]=[Link]
[Link]=html
[Link]=link
[Link]=
href,src,action,value
[Link]=simple
[Link]=/ /qad-
webshell/proxy/tomcat/
Comments? Go to [Link]/MfwKHm
358 QAD Security Administration Guide
If you select OK in the blank message, a record with empty fields opens instead of the
record with which you were working. You can continue to work with the system, but the
timeout can happen again after you re-enter the data on the screen.
To avoid this scenario, increase the Proxy Timeout value in the [Link] file. For
example, to set the timeout to 20 minutes, enter:
ProxyTimeout 1200
Once this change is made, restart the Apache server. This is done outside of YAB, with no
need to restart Tomcat or any other component of QAD Adaptive ERP.
[Link]=\\\\host\\path\\to\\disk\\store #Windows
Comments? Go to [Link]/MfwKHm
360 QAD Security Administration Guide
Overview
The Menu Search in Adaptive UX is located in the Menu Bar and expanded by selecting
the magnifying glass icon. It helps users find all of the menu items available to them. For
detailed information on the Menu Search, see the Adaptive UX online help, located under
the question mark icon in the Menu Bar.
Fig. 15.1
Menu Search
Elasticsearch Settings
Table 15.1 explains the default Elasticsearch properties. To update any of these
parameters, you must enter the new property setting in the [Link]
file.
Table 15.1
Elasticsearch Properties Configuration
Property Description
[Link] Defines if Elasticsearch is enabled. Set to true by default.
(Required)
[Link] Defines the Elasticsearch server address in the form
${[Link]} (Required)
qad- Defines the number of documents returned from the Elasticsearch
[Link] engine. Defaults to 250.
[Link] A number of seconds, representing the time between document
reindexing. Defaults to 84600 (one day).
Note The Ehcache implementation uses only the local Tomcat server to return results
and does not handle large numbers of documents as well as Elasticsearch.
Troubleshooting
Use the following information to troubleshoot an Elasticsearch implementation.
Ensure that Elasticsearch initialized correctly. In the logs directory, check [Link]
by entering:
grep -i 'indexService\|indexBuilder\|engineClient\|retriever' [Link]
This example shows a system in which only English is configured. If multiple languages
are configured in your system, you will see similar results for all languages.
You can determine if the Elasticsearch server is not started but the Tomcat server is
running. In the logs directory, check [Link] by entering:
grep -i 'indexService\|indexBuilder\|engineClient\|retriever' [Link]
You will see output similar to the following example. Look for these types of errors.
[19/05/10@06:58:59.932-0700] ERROR [Link]: Cannot
connect to Elasticsearch node with URL='[Link] method='HEAD'
[19/05/10@06:58:59.946-0700] ERROR [Link]: Cannot
connect to Elasticsearch node with URL='[Link] method='PUT'
[19/05/10@06:58:59.946-0700] ERROR [Link]: Index with
name='menu_item-en' NOT created
[19/05/10@06:59:02.892-0700] INFO [Link]: '1555' menu
items were retrieved from DB
[19/05/10@06:59:02.960-0700] INFO [Link]: Query for
bulk indexing created for index with name='menu_item-en'
[19/05/10@06:59:02.962-0700] ERROR [Link]: Cannot
connect to Elasticsearch node with URL='[Link] method='POST'
[19/05/10@06:59:02.963-0700] ERROR [Link]: NO
documents added to index with name='menu_item-en'
[19/05/10@06:59:02.963-0700] INFO [Link]: Finish bulk adding
of documents to index with name='menu_item-en'
If the default status is STOPPED, start Elasticsearch with the command yab elastic-
default-start. Then restart Tomcat with the command yab tomcat-webui-stop
tomcat-webui-start.
Comments? Go to [Link]/MfwKHm
364 QAD Security Administration Guide
No Results Returned
If users are trying to perform menu searches and no results are found for any search
query, the Elasticsearch server is not running. You can see errors in the [Link]
log file similar to the following:
[19/05/10@07:10:17.099-0700] ERROR mfg [Link]: Cannot
connect to Elasticsearch node with URL='[Link]
method='GET'
If the default status is STOPPED, start Elasticsearch with the command yab elastic-
default-start. Then restart Tomcat with the command yab tomcat-webui-stop
tomcat-webui-start. Menu Search now should return results.
Overview
The KMS can become corrupt or unavailable for a number of reasons, such as hardware
failure, user error, or DOS attack. Because the KMS plays a vital role in normal
operations, it is important you can restore service to the existing KMS or configure a new
instance. You should periodically validate your backup and restore process in any
production environment.
KMS Backup
Two files are necessary for a successful backup and recovery scenario:
• kms-backup-[date and time].zip
• Data file defined by the YAB property [Link]
Important It is your responsibility to save copies of the KMS backup files and store the
copies in a secure location on a separate host from your environment. Failure to save a
copy of the latest KMS backup zip file could lead to catastrophic consequences for your
system. If your system fails and you do not have these files, any information that was
encrypted would not be recoverable.
The key management service saves a backup of critical information to a zip file, kms-
backup-[date and time].zip, in the backup directory. The KMS saves an initial backup
when the service is created and then only generates a new zip file if the backup file is
missing from the backup directory or if there have been changes to any of the files in its
storage directory. The KMS checks for changes or a missing file based on the
[Link] property, which is set to 24 hours by default.
Data File
You also need to save a copy of the data file defined by the property [Link],
which contains client credentials and an encryption keyring. The [Link] is
located by default in servers/kms/[Link]. This file is created by YAB
and contains settings that are important to communicate with the KMS because they
cannot be regenerated.
KMS Recovery
Before beginning the restore process, it is recommended you create a copy of the existing
KMS storage area before restoring the backup over it.
1 Ensure the KMS is no longer running.
yab kms-stop
2 Find the most recent backup file, defined through [Link]. If you are testing
in a functional environment, you can find the backup file by entering:
ls -tr servers/kms/backup
4 Unzip the backup file to the KMS storage directory you located in step 3.
5 Start the KMS.
yab kms-start
6 Verify encryption and decryption are working as expected. You can do this by
encrypting a text string and ensuring the KMS returns encrypted content. For
example, enter:
yab kms-encrypt foo
The command should return {cipher} followed by a string of letters and numbers that
is the encryption of foo.
Comments? Go to [Link]/MfwKHm
368 QAD Security Administration Guide
HTTPS Certificates
LogiPS is installed by default in Adaptive UX to be accessed using HTTPS, and must be
configured to avoid network security errors raised at run time when Adaptive UX is also
set up to be accessed through HTTPS.
Comments? Go to [Link]/MfwKHm
372 QAD Security Administration Guide
In Adaptive ERP installations, the Apache configuration files contain a Location element
that references the URL path of the reverse proxy. The following example environment
references the reverse proxy clouderp.
<Location /clouderp>
ProxyPass [Link]
ProxyPassReverse [Link]
Header edit Set-Cookie "^(.*)/qad-central(.*)$" $1/clouderp$2
Header edit Location "/qad-central/"
"[Link]
AddOutputFilterByType SUBSTITUTE text/html image/svg+xml
Substitute "s|/qad-central|/clouderp|iq"
Substitute "s|[Link]
[Link]
</Location>
Once this change is made, restart the Apache server. This is done outside of YAB, with no
need to restart Tomcat or any other component of QAD Adaptive ERP.
The PDB connection credentials are automatically set by LogiPS at installation time and
should never need to be changed. However, LogiPS provides a command line utility
[Link] that can be used to change them if needed. Following is the help text for
using this utility:
dbPassword: Change platform MQ or DB password
Usage
The -d option is used to change the PDB password. Logi Platform Services should be
stopped before using the utility. After the utility is run, Logi Platform Services must be
restarted.
Comments? Go to [Link]/MfwKHm
374 QAD Security Administration Guide
auditing 293 N
electronic signature 293 .NET UI security 26
Nifi 55
H node states 103
Header Display Mode field 29
O
I operating system
Import SOD data from Excel 232 security 22–??
Import SOD Data from XML 235 using ID for application sign in 20
inactive records 110 Operational Transaction Post 116
interface preferences 111
International Organization for Standardization (ISO) P
codes 108 parameter file 342
Inventory Detail Restriction Maintenance 191 passwords
Inventory Movement Code Security 198 creation method 33
Inventory Movement Code Security Browse 198 forcing change 112
Inventory Transfer Restriction Maintenance 190 managing 17
inventory update 185–197 Security Control settings 32
Invoice Post updating 113
site security 186 permissions
assigning 146
K granting access to screens 146
Kafka 51 missing 146
key management service 42 role 14
keystore 39 permissions grid 142
permissions tree search 141
L PO Receipts Restriction Maintenance 193
Language field PO Restriction Maintenance 193
User Maintenance 108 Primary location for user access 110
languages Product Change Control (PCC)
identifying for users 108 using electronic signatures with 302
LDAP programs
attribute listing 63 standard 3
configure instance 65 Progress
set up multiple services 60 blank user ID 23
LDAP authentication 58 compiles, protecting 23
length database schema controls 23
password minimum 32 DBAUTHKEY function 24
License Registration 115 Editor security 22
licensing RCODEKEY function 24
interaction with User Maintenance 114 schema controls 23
tracking violations 29 security 22
warnings versus errors 29 Progress Editor
[Link] file 108 access 22
log files
segregation of duties 239, 275 Q
Logon Attempt Report 19, 35 QAD Adaptive UX
user access 118
M QAD type
material requirements planning (MRP) User Maintenance 109
site security 186 QAD Web UI
Maximum Access Failures field 30 assign roles 120
membership favorites menu 133
role 15, 119 menus 129
menu permissions grid 142
favorites 133 resource dependencies 143
menu substitution role menus 129
User Maintenance 111 role permissions 136
menu-eligible resource 129
menus 129 R
role 129 RCODEKEY function in Progress 24
Mobile App 118 reason codes
active reason 31
electronic signatures 283, 314
Comments? Go to [Link]/MfwKHm
378 QAD Security Administration Guide
U V
Unplanned Issue/Receipt Restriction Variant field
Maintenance 192 User Maintenance 108
update restrictions 187
wildcards 188 W
Update Search Filter 68 warning messages
Update Search Root 68 license violations 29
user access 118 wildcards
User Access by Application Inquiry 115 update restrictions 188
user authentication 58 use with security 182
User Domain/Entity Access Maintain 115 Windows security options 25
user ID workflow
assigning 106 electronic signatures setup 281, 312
blank, in Progress 23 security setup 6
displaying at user interface 30 segregation of duties setup 203, 245
setting up 106 workspace security 18
User Maintenance 106
country code 108 X
interface preferences 111 X.509 certificate 39
Comments? Go to [Link]/MfwKHm
380 QAD Security Administration Guide