Identity Management Design Guide
Identity Management Design Guide
Identity Management
Design Guide
with IBM Tivoli Identity Manager
Enterprise integration for identity
management
Complete architecture and
component discussion
Tivoli Access Manager
integration
Axel Bcker
Andrew Camp
Rick Cohen
David Edwards
Collin Penman
Thomas Santana
ibm.com/redbooks
SG24-6996-00
Note: Before using this information and the product it supports, read the information in
Notices on page xi.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
The team that wrote this redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Part 1. Architecture and design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 1. Business context for Identity and Credential Management . . . 3
1.1 Security policies, risk, due care, and due diligence. . . . . . . . . . . . . . . . . . . 4
1.2 Centralized user management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Single interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Security policy enforcement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 Central password management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.4 Delegation of administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.5 Multiple repository support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.7 Centralized auditing and reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Simplify user management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Automation of business processes . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Automated default and validation policies . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 Single access control models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.4 Ubiquitous management interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.5 Integration of other management architectures . . . . . . . . . . . . . . . . 11
1.4 Access control models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 The Role Based Access Control model . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2 Other access control models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.3 Which model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.4 Selection process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.5 Roles vs. groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.6 Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5 Identity management vs. Meta Directory . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.6 Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Chapter 2. Architecting an Identity and Credential Management solution37
2.1 Solution architectures, design, and methodologies . . . . . . . . . . . . . . . . . . 38
2.1.1 Overview and terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
iii
iv
Contents
vi
Contents
vii
viii
.......
.......
.......
.......
.......
.......
.......
.......
.......
......
......
......
......
......
......
......
......
......
.......
.......
.......
.......
.......
.......
.......
.......
.......
......
......
......
......
......
......
......
......
......
.
.
.
.
.
.
.
.
.
385
386
386
389
391
393
394
397
399
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Contents
ix
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such provisions
are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES
THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy,
modify, and distribute these sample programs in any form without payment to IBM for the purposes of
developing, using, marketing, or distributing application programs conforming to IBM's application
programming interfaces.
xi
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
Access360
AIX
DB2 Connect
DB2 Universal Database
DB2
^
IBM
ibm.com
Lotus Notes
Lotus
MQSeries
Notes
Passport Advantage
Perform
RACF
Redbooks (logo)
Redbooks
SANergy
SP2
Tivoli Enterprise Console
Tivoli Enterprise
Tivoli
WebSphere
z/OS
xii
Preface
Identity Management has always been an important factor in the systems
management discipline. Managing individual users with all their different
accounts on multiple platforms and applications in a timely manner is a crucial IT
task. In the emerging world of e-business and worldwide internet connectivity,
this discipline is becoming a major part of an enterprise security architecture.
Identity Management is the concept of providing a unifying interface to manage
all aspects related to individuals and their interactions with the business. It is the
process that enables business initiatives by efficiently managing the user life
cycle (including identity/resource provisioning for people (users)), and by
integrating it into the required business processes. Identity Management
encompasses all the data and processes related to the representation of an
individual involved in electronic transactions.
This IBM Redbook provides an approach for designing an Identity Management
solution with the IBM Tivoli Identity Manager Version 4.4. Starting from the
high-level, organizational viewpoint, we show how to define user registration and
maintenance processes using the Self Registration and Self Care Interfaces as
well as the Delegated Administration capabilities. Using the Integrated Workflow,
we automate the submission/approval processes for Identity Management
requests, and with the Automated User Provisioning, we will take workflow
output and automatically implement the administrative requests on the
environment with no administrative intervention.
This redbook is a valuable resource for security administrators and architects
who wish to understand and implement a centralized identity management and
security infrastructure.
xiii
xiv
Preface
xv
Your efforts will help increase product acceptance and customer satisfaction. As
a bonus, you'll develop a network of contacts in IBM development labs, and
increase your productivity and marketability.
Find out more about the residency program, browse the residency index, and
apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our Redbooks to be as helpful as possible. Send us your comments
about this or other Redbooks in one of the following ways:
Use the online Contact us review redbook form found at:
ibm.com/redbooks
xvi
Part 1
Part
Architecture
and design
In this part, we introduce the general components of the IBM Tivoli Identity
Manager 4.4 and what it has to offer in the identity and credential management
area of the overall security architecture. Identity Manager handles a multitude of
integration aspects with all sorts of IT infrastructures and application
environments, which are detailed throughout this part of the book. After talking
about architectures and design, Part 2, Customer environment on page 177
provides a more solution oriented, scenario based approach.
Chapter 1.
Transfer risk
Mitigate risk
Accept risk
Ignore risk
key factor for a successful Identity and Credential Management system. Central
control makes it possible to accommodate the business and security policies,
enabling security administrators to implement them in an efficient and
enforceable way.
Without centralized identity management, it is almost impossible to enforce the
corporate policy in a complex environment dealing with a variety of target
platforms, different system specifications, and administrators.
User repositories
User repositories contain data about people, and most companies have many
user repositories and will continue to add new ones due to new and custom
applications. These can be:
Human resources systems
Applications
LDAP and other directories
Meta directories
Endpoint repositories
Endpoint repositories contain data about privileges and accounts, and most
companies have a great variety of these repositories implemented throughout
their environment. Some of these are:
Operating systems, such as Windows NT, AIX, or Linux
SecureID
Tivoli Access Manager
Network devices
RACF
It is important, therefore, when considering centralized identity management
systems to be sure that the coverage of the system takes both types of
repositories into full account.
1.2.6 Workflow
Managing identity and account related data involves a great deal of approvals
and dependencies. It takes a lot of time and effort in order to collect the
necessary approvals and check for all sorts of dependencies between related
components. To reduce these often manually conducted chores, the identity
management system should have an automated workflow capability that allows
the system to:
Gather approvals
Reduce administrative workload
Reduce turn-on time for new managed identities (account generation,
provisioning, and so on)
Enforce completeness (do not do this task before everything else is
gathered.)
The workflow component is one of core value points within the identity
management solution.
Centralized management
feature
Security impact
Single interface
Security policy
enforcement
Centralized management
feature
Security impact
Central password
management
Password strength is
uniformly applied across
the enterprise.
Delegated administration
Changes made to
accounts by delegated
administrators still have to
conform to the security
policies in force.
Workflow
Approval enforcement.
Centralized auditing
makes the tracing of
events more realistic and
therefore much more
secure
10
makes sense that any identity management solution interface should be Web
based.
In order for administrators to perform their work tasks anytime from anywhere
with a network connection, the identity management solution needs to be Web
enabled and capable of being integrated with Internet facing access control
systems.
11
roles according to the work they are doing. Each role enables access to specific
resources.
RBAC examples
A new customer
A new employee
A senior employee
Charles would already have the basic user role from the
time when he joined the organization. His work now
requires that access be granted to applications that are
not included within the basic user role. If he now needs
access to the accounts and invoicing systems, Charles
could be awarded the accounting role in addition to the
basic user role.
A manager
Dolly would already have the basic user role from the
time when she joined the organization and may also have
other roles. As she has been promoted to a management
post, so her needs to access other systems have
increased. It may also be, however, that her needs to
access some systems, as a result of her previous post,
are no longer appropriate in her management role. Thus if
Dolly had basic user and accounting as her roles
before promotion, it may be that she is granted the
manager, but has her accounting role rescinded. This
would leave her with the basic user and manager roles
suitable for her post.
12
DAC
The DAC model is when the owner of a resource decides on whether to allow a
specific person access to their resource. This system is common in distributed
environments that have evolved from smaller operations into larger ones. When
it is well managed, it can provide adequate access control, but it is very
dependant upon the resource owner understanding how to implement the
security policies of the organization, and of all the models, it is most like to be
subject to management by mood. Ensuring that authorized people have access
to the correct resource requires a good system for the tracking of leavers,
joiners, and job changes. Tracking requests for change is often paper driven,
error prone, and can be costly to maintain and audit.
MAC
The MAC model is where the resources are grouped and/or marked according to
a sensitivity model. This model is most commonly found in military or government
environments. One example would be the markings of Unclassified, Restricted,
Confidential, Secret, and Top Secret. Users privileges to view certain resources
will be dependant upon that individuals clearance level.
MAC
The key to this kind of system is the ability to use background security checking
of personnel to a greater level than that which would normally be carried out in a
business or non-governmental environment. It is also key for data of different
sensitivity to be kept segregated. For example, a user must not be able to cut
and paste information between documents of differing sensitivities. This has
traditionally been achieved by keeping data physically separate. In this
environment, therefore, a user may have a number of different workstations; one
for restricted, one for secret, and so on, each running on completely different and
separate architectures.
Conducting identity management across multiple sensitivity silos with one central
identity management system raises a number of issues. The central system itself
must be classified at the highest level, as it holds user rights to all sensitivity
silos. Normally in this environment, this would mandate that various security
13
certifications and accreditation processes have been completed and also that
any cryptographic keys are in hardware storage.
As the Web portal approach matures, this kind of multiple silo approach may
change, but in the short term, this would mean that a software only solution
would not be possible.
One further approach would be to treat each sensitivity silo as a discrete identity
management problem. This would mean that there is a distinct solution for each
silo and that the best access control model could be chosen from the other two.
For example, at the lowest sensitivity silo, there are likely to be many more users
that best fit an RBAC solution, while at the top level, there are fewer users and
other (physical, procedural, personnel, and technical) more rigorous controls, so
a DAC might be more appropriate.
Despite its limitations, this type of access control model will continue to be used
in military and government environments, because it provides the solid
foundation for segregation of information based upon sensitivity. Identity
management solutions for this space are probably best focused on the lower
sensitivity silo, unless approvals can be gained to connect all silos with a highly
secure management layer that includes identity management.
DAC
Discretionary Access Control is the model that is most likely to be used as a
default or evolved decentralized access control solution. Organizations are
familiar with the concept of each application administrator or owner being
responsible for granting access to the application or system owned or
administered by them. Key features of a centralized identity management system
that allows this to continue are the ability to specify over-arching corporate
security policies, combined with the ability to delegate responsibility for account
management to individual systems. A centralized identity management system
with these features allows for a reduction in the amount of management by
mood, but ensures that corporate security policies can be applied, while
allowing a degree of actual and real political ownership of the target resource.
The different access control models are compared in Table 1-2 on page 15.
14
Table 1-2 Access control model comparison and notes on desirable features
Access control model
Pros
Cons
MAC
1. Ideally suited to
military and
government security
requirements.
1. Costly to implement
because of personnel
vetting and data
segregation
requirements.
2. Highly secure.
2. Difficult to centrally
manage all identities
because of sensitivity
silos.
DAC
1. Likely to already be in
use.
1. Subject to
management by mood.
2. Easy to implement
centralized identity
management solution.
2. Policy enforcement
and audit costly.
3. Suited to most
commercial
organizations, prior to
centralized identity
management or during
conversion to RBAC.
RBAC
3. Centralized identity
management possible
but less return on
investment (ROI) than
single RBAC model.
3. Recommended for
large user populations,
particularly where
users include
customers and partner
organizations.
Delegated administration
Changes made to
accounts by delegated
administrators still have to
conform to the security
policies in force.
15
Pros
Cons
Centralized auditing
makes the tracing of
events more realistic and
therefore much more
secure.
16
Start
Yes
Yes
11
25
Yes
12
26
No
3
21
No
No
14
No
No
9
15
No
Yes
24
Yes
No
17
23
Yes
5
No
22
27
16
4
No
Yes
No
Yes
Yes
Yes
10
28
6
30
No
Yes
7
No
18
19
20
29
17
2. Your organization mandates the use of the sensitivity silos; does it approve
the use of one centralized identity management solution bridging all of the
sensitivity silos?
3. If you cannot bridge the sensitivity silos with one solution, the only option is to
treat each silo as a separate organization. Will your organization change its
policy on the single centralized identity management system to allow bridging
in the future?
4. Does your organization have a high staff turnover, or have a large number of
contractors or outsourced staff?
5. Is your organization large or does it have multiple geographies that are self
managing?
6. Does your organization already have a centralized or metadirectory in place
or is it planning one?
7. If your organization is already using the DAC model with resource
owners/administrators managing the identities of users, you could use a
centralized solution to imitate this or you could move to an RBAC solution. Do
you want to see further ROI and increased security?
8. If you chose a fully implement an RBAC model, will the political and business
structures within your organization fully support the design work involved?
9. DAC Design selected.
10.RBAC Design selected.
11.Implement a single centralized identity management system with users
assigned access rights based upon their approval to access one or many
sensitivity silos. This is a simple form of RBAC with one role per sensitivity
silo. It would be possible to make the silo model more granular, but this may
detract from the essentially simple nature of the implementation. It should be
noted that a user with access to one silo will gain access to all information
within that silo, and therefore, in its purest form, this architecture does not
address the issues of Privacy or Need to Know management.
12.You can implement an identity management solution in each sensitivity silo,
but should your organizations policy change, you will be able to place a
master Identity Manager over the existing silo Identity Managers to gain
maximum ROI. You should therefore select a centralized management
solution that is capable of supporting a hierarchy of identity management
systems.
13.If you have reached this point on the flowchart, then it is probably time for a
cup of coffee or a break. There is no step 13 on the flowchart.
14.Treat each sensitivity silo as a discrete problem and analyze the RBAC/DAC
requirements for each silo.
18
15.This selection is DAC. You will need to make sure that the centralized identity
management tool you selected has the capability to securely delegate the
administration of users to the resource owner through an interface that does
not require onerous training nor does it need a thick client to be distributed.
Administration of the users should be delegated to the owners of the
resources. Delegated resource control should be in line with corporate
policies. Centralized audit for non compliance reports should be submitted to
the resources owner regularly for their action.
16.Once deployed, assistance should be given to those business units that wish
to develop an RBAC model within their Owned space. In addition,
maintaining up to date business cases and continuing to win greater political
influence for the RBAC model should be attempted.
17.Has sufficient political ground been gained to implement an RBAC model?
18.Your organization has chosen to use DAC, which will not allow for some of
the ROI traditionally associated with RBAC. Other product features also show
savings, however, and you should favour products with good feature/function
coverage in these areas.
19.Workflow processing. The automation of the business processes for new
hires and so on should be seen as a priority. Reducing the waiting time for
provisioning new users will reduce productivity losses.
20.Even though DAC is the organizational model, it may still be possible to make
savings by using limited or default roles. For example, every new user would
automatically get LAN and e-mail accounts set up, while other systems
remain within the purview of the resource owners.
21.Has a period of more than 12 months passed since you last checked the
identity management system design?
22.Have any major infrastucture changes within your organizations operational
systems taken place?
23.Has the nature of the external threat you face as an organization changed
significantly?
24.A change has occurred within your operating environment or a long period of
time has passed since you last validated your identity management system
decisions. Run through the algorithm again to check on your design and
amend it, if appropriate.
25.You have selected a very simple type of RBAC to map onto the MAC model in
place within your organization. This means that you will also be placing
increased reliance upon the nature of your personnel and the vetting
processes applied to them. It is possible to improve the silo granularity, but it
will take time to design this granularity. Other software and hardware involved
with privacy management and networking, for example, may already be in
19
use within your organization. These should be factored into any design and
planning for the solution.
26.The selection flowchart seems to suggest that you will be treating each of the
sensitivity silos as a discrete identity management problem, but that you may
in the future get approval to bridge the silos. The suggested method is to use
a hierarchy, but if budgets and operational requirements allow, you could also
scrap the existing system and replace it with a single central identity
management model.
27.Reaching this point in the flowchart has meant that owing to political
limitations within your organization, you have been forced to use the DAC
model rather then the RBAC model, which you might naturally have selected.
Using DAC, however, should be seen as a stepping stone towards RBAC. In
simple terms, allowing the business owners to use the system may enable
them to create roles for their own systems. It may be possible to consolidate
these local roles into larger ones as time passes.
28.As you move into the real design and planning work involved in an RBAC
scenario, many of the customer business units will be asked for their input
into the role design problem. It may only be at this point, that customer
business units realize exactly the impact of what you are proposing upon their
rights to manage their own systems in their own way, regardless of the
organizations security policies or of the costs involved. If this happens, you
should return to question 8 and answer that question no.
29.The DAC has been selected and the focus has been on methods (other then
RBAC) of saving costs. You should not lose sight of the fact that having a
central tool also brings centralized audit capabilities that will improve the
security of an organization. This risk mitigation, while difficult to quantify, still
improves the viability of a business.
30.Wait one month before continuing. This ensures a revalidation of your identity
management strategy every month. The length of time chosen should be less
than one year, but is at the discretion of your organization, taking into account
all of the threat/risk/resource issues you face.
20
Roles
Groups
Figure 1-2 shows the relationship between users, roles, services, and groups.
A user is assigned to a
role (or more than one
role).
Groups
Groups
Groups
Groups
Groups
Groups
Many identity management systems allow the users to be assigned to roles and
hence provisioned to services. In addition, they can also provision users directly
to services complete with group membership.
You can therefore use these systems to merely provision users directly to
services, which is done in the absence of a valid RBAC design or in the case of
the use of pure DAC.
You can also design the RBAC system such that one service is represented by
one role. If each role represents only a single application, OS, database, and so
on, then it is technically still an RBAC system, but it is functionally closer to a
DAC system. This model is sometimes found within organizations that have not
been able to successfully overcome the underlying politics. They can therefore
claim to have upset no one and to have implemented a full RBAC system. The
21
down side to this is that you have spent the time and resources on implementing
an RBAC system that will not deliver the expected ROI. This model is therefore
pointless and not recommended unless political considerations are more
important than cost concerns.
1.4.6 Designs
The process of designing an RBAC system is fairly simple.
If we had only two services to access (Service A and Service B), then users
could be placed into one of three roles: Role 1 (Service A only), Role 2 (service B
only), and Role 3 (Service A & B).
In summary:
To access two services, the number of possible roles are three:
One role containing two services
Two roles containing one service
Similarly, to access three services, the number of possible roles are seven:
One role containing three services
Three roles containing two services
Three roles containing one service.
To access four services, the number of possible roles are 15:
One role containing four services
Four roles containing three services
Six roles containing two services
Four roles containing one service
As the number of services increases, so do the potential number of roles. By the
time twenty services are required (a lot less than the average number of services
in a standard organization), there are 1,048,575 possible roles. It is clearly not
practical to create all the possible roles and populate them. We must reduce the
number of roles to those required rather than to all those possible.
It seems that a common sense approach would be to list all the user repositories
and then to list all the users along with their account requirements. An example
of this kind of approach is shown in Table 1-3 on page 23.
22
Repositories
NT
Internet
Customer
Application
SAP
UNIX
Alwena
Yes
No
Yes
Yes
No
Brian
Yes
No
No
Yes
Yes
Claudette
No
Yes
No
No
No
Daphne
No
Yes
No
No
No
Elizabeth
Yes
No
No
Yes
No
Francesca
Yes
No
No
Yes
No
Geoff
No
Yes
No
No
No
Helen
Yes
No
No
Yes
No
Ian
Yes
No
No
Yes
No
Jolina
Yes
No
Yes
Yes
No
Katya
Yes
No
No
Yes
Yes
Lupe
No
Yes
No
No
No
Mike
Yes
Yes
Yes
Yes
Yes
Neil
Yes
No
Yes
Yes
No
Ondine
No
Yes
No
No
No
Peter
No
Yes
No
No
No
Queenie
Yes
Yes
Yes
Yes
Yes
Ray
Yes
No
Yes
Yes
No
Sarah
No
Yes
No
No
No
Thomas
Yes
No
No
Yes
Yes
Uist
Yes
No
No
Yes
No
Vera
No
Yes
No
No
No
William
Yes
No
No
Yes
Yes
Xerxces
Yes
Yes
No
Yes
No
23
User
Repositories
NT
Internet
Customer
Application
SAP
UNIX
Yvette
Yes
No
No
Yes
No
Zach
Yes
No
No
Yes
Yes
Grouping these roles into similar access requirements reveals that there would
be six logical roles. So in this example, five services give rise to six roles instead
of all 31 possible roles, as shown in Table 1-4.
Table 1-4 User to repository mapping with roles
User
Role
Repositories
NT
Internet
Customer
Application.
SAP
UNIX
Elizabeth
Basic
Yes
No
No
Yes
No
Francesca
Basic
Yes
No
No
Yes
No
Helen
Basic
Yes
No
No
Yes
No
Ian
Basic
Yes
No
No
Yes
No
Uist
Basic
Yes
No
No
Yes
No
Yvette
Basic
Yes
No
No
Yes
No
Mike
CEO
Yes
Yes
Yes
Yes
Yes
Queenie
CEO
Yes
Yes
Yes
Yes
Yes
Claudette
Customer
No
Yes
No
No
No
Daphne
Customer
No
Yes
No
No
No
Geoff
Customer
No
Yes
No
No
No
Lupe
Customer
No
Yes
No
No
No
Ondine
Customer
No
Yes
No
No
No
Peter
Customer
No
Yes
No
No
No
Sarah
Customer
No
Yes
No
No
No
Vera
Customer
No
Yes
No
No
No
24
User
Role
Repositories
NT
Internet
Customer
Application.
SAP
UNIX
Xerxces
EMP &
CUST
Yes
Yes
No
Yes
No
Alwena
HR
Yes
No
Yes
Yes
No
Jolina
HR
Yes
No
Yes
Yes
No
Neil
HR
Yes
No
Yes
Yes
No
Ray
HR
Yes
No
Yes
Yes
No
Brian
System
Admin
Yes
No
No
Yes
Yes
Katya
System
Admin
Yes
No
No
Yes
Yes
Thomas
System
Admin
Yes
No
No
Yes
Yes
William
System
Admin
Yes
No
No
Yes
Yes
Zach
System
Admin
Yes
No
No
Yes
Yes
This is fine for 26 users and five services, but the next problem that emerges is
one of scale. The mere collection task involved for 1000 users and/or a larger
range of services becomes costly and, in larger cases, unrealistic. What is
needed is a single data source that is collected automatically and contains all
user/service information, which can be used for reporting and analysis. Many
centralized identity management solutions provide this kind of collection and
reporting facility. As we have seen in an earlier section, one way of countering
the political objections to RBAC is to implement centralized identity management
and progress towards RBAC as political support is developed. Once again,
deployment of a centralized identity management solution can be used as a tool
to develop a design for an RBAC model prior to the deployment of the RBAC
model itself.
There are a few other things to be careful of:
No matter how you collect the information, it has to be correct at the point of
collection. Examination of the user information in Table 1-4 on page 24 would
suggest that Queenie and Mike both have identical roles, in this case, CEO. In
25
practice, however, Queenie has the full access because she is the CEO, while
Mike has been with the organization since leaving school and acquired a
number of access permission, as he has moved jobs within the organization
and his access rights have not been rescinded. He is not the CEO.
Similarly, Uist and Yvette both have the basic role, but neither has worked for
the company for over a year. Both these cases highlight the need to carry out
a reality check audit as part of the process of designing an identity
management system (whether or not it is RBAC).
Some services may have no IT dependencies. If a service is provisioned and
the provisioning results in the involvement of a physical process (smart card
generation and issue, uniform manufacture, and so on), then care must be
taken not to include these potentially time delayed tasks into a workflow,
which could delay other provisioning requirements. An RBAC design should
take this type of service into account.
Up to now, we have talked about a service as if it were one repository. We
know, however, that repositories can have subsidiary groups. Most resource
targets can define at least two groups (administrators and users), so in
practical terms, the five services used in the 26 user example would be 10
services and have a potential 1023 possible roles.
Xerxces seems to be in a role of one person. He has picked up this unique
role because he is both a basic employee of the organization and he is also a
customer. We must therefore check with the security policy to see if he is
allowed this double role under one name. It makes sense in some
organizations to specifically separate Basic and Customer roles and disallow
the Emp & Cust role.
Even if an immediate RBAC design cannot be achieved, some roles should
be self-evident. A basic corporate employee user (with network and e-mail
access) and an eCustomer role (with e-business application access) are
examples. Implementation of these roles will serve to stimulate the RBAC
design process and reduce the scale of the problem.
In practice, given the likely scale of most RBAC designs, it is necessary to
include costing associated with the collection, clean up, and analysis of the
existing user/repository data. It is a strong recommendation that any centralized
identity management solution chosen should be capable of being deployed as a
tool to help with the design of the full RBAC model. While this RBAC design is in
preparation, some ROI can be gained from the automation of user provisioning
and workflow processes.
26
27
Table 1-5 Pros and cons of tools used in identity management and directory areas
Product/Solution
type
Notes
Pros
Cons
Single directory
A single repository
is mandated, for
example x.500,
RACF, and MS
Active Directory.
A single directory
may require the
purchase of
administration and
management
toolkits.
Security policies
can be applied in
one place.
Many applications
may have to be
re-written or
customized to allow
authentication
and/or
authorization
against the
directory.
High degree of
flexibility.
Costly to manage.
Many directories
Little or no design
effort required.
Subject to
management by
mood.
Difficult to audit
and apply a
security policy.
More subject to
human error.
Longer
provisioning time
scales resulting in
decreased user
productivity.
Less secure
because of
orphaned
accounts.
28
Product/Solution
type
Notes
Pros
Cons
Meta Directory
A true Meta
Directory is
effectively a
complete copy of
all the user
repositories within
an organization
held in one place.
The copy is created
using a set of rules
contained within a
join engine.
It allows
applications written
to use a different
repository to
continue to do so.
It allows business
units to manage
users with the
existing tools, allow
the Meta Directory
to cope with the
creation of a
central directory.
Virtual Meta
Directory
The central
directory schema
definition and
creation of rule sets
can be complex
and therefore
costly.
Implementation
time scales and
future flexibility can
be unacceptable.
Can result in a
large,
non-performing
centralized
directory.
Still requires the
definition of a rule
set.
User management
tools maybe
limited.
May not have real
integration points
with identity
management tools.
May still require a
specialist to
maintain and
manage.
29
Product/Solution
type
Notes
Pros
Cons
User administration
User provisioning
tools can be
thought of as a tool
to perform a
one-way
automated push of
users held in a
central repository
(often LDAP) out to
target systems.
Some
implementations
have the ability to
manually retrieve
users, but this is
usually limited.
Usually based
upon a proprietary
framework that
may need to be
deployed.
30
Product/Solution
type
Notes
Pros
Cons
Identity
Management
Can be thought of
as user
provisioning plus.
The use of generic
protocols (http,
https, and so on), in
addition to better
integration with
other products,
makes this solution
the most fully
functional.
Widest range of
features based
upon modern
non-proprietary
standards.
Many solutions
(particularly those
in user provisioning
space) use this title
for their products.
Coverage of target
platforms must be
checked,
particularly where
no integration point
with Virtual Meta
Directories exists.
31
User Provisioning
Security Policy
Enforcement
Identity Management
Virtual Directories
User Administration
Join Engine
Meta Directory
Mulitple Directories
Many directories
Centralized Directory
x.500
Process Workflows
Figure 1-3 Identity management features (blocks) mapped against solution types (arrows)
32
WEM Shipyards
WEM Shipyards are a small but growing ship builder. In recent years, new
management has bought more technology to the organization, which has
resulted in increased efficiency and more orders. They are currently working on
three vessels with orders for seven more. Those vessels are:
Naval Craft - HMS Nonesuch: A new Mine Counter Measures vessel that will
also have a patrol boat role. WEM Shipyards is the lead contractor for this
vessel, but much of the technology, sensors, and weapons systems are
designed and fitted by sub-contractors who need access to the WEM
Shipyards IT systems.
Americas Cup Yachts - Project Doris: A pair of 12 meter racing yachts
designed for competition in the next Louis Vuitton Cup and the Americas cup.
The customer requirements include a high level of secrecy surrounding the
design, particularly the hull below the waterline.
Traditional Gaff Cutter - Elizabeth Anne: A new yacht built, along the
traditional lines of a Bristol Pilot Cutter, but with modern electronic navigation,
communications, and control systems. Designed for safe long distance
cruising for two/three people. If successful, WEM Shipyards hopes to market
the design.
WEM Shipyards has noted that they need to continue to modernize their
technology and keep the cost of ownership to a minimum if they are to continue
to win orders. One part of this approach is to address the cost associated with IT
provisioning; in particular, user management is becoming a cost burden.
They tried using a directory strategy approach and then a user provisioning
approach. Both approaches revealed weaknesses and some of those are shown
below.
Directory strategy
33
34
Reaching this conclusion was only possible because they took the holistic
approach and examined critically all the options. The selection of products will
have to be done on the basis that full integration, while not an immediate
requirement, is definitely mandated. Section 4.9, IBM Directory Integrator on
page 138 gives an example of the integration of an Identity Management product
with a Virtual Meta Directory product.
1.6 Conclusion
Let us finally take a look at some general goals of using a centralized Identity and
Credential Management infrastructure:
Easing compliance with security audits
Consolidating control of the user management processes
Eliminating inconsistencies from human error and "management by mood"
Reducing training costs and education requirements
Reducing help desk and overall administration costs
35
36
Features
Advantages
Benefits
Provides ubiquitous
management interfaces,
and centralizes the
definition of users and
provisioning of user
services
Role-based delegated
administration
Enables delegation of
administrative privileges
along organizational and
geographical boundaries
Accommodates political or
distributed management
needs
Self-service interfaces
Embedded workflow
engine
Embedded provisioning
engine and application
management toolkit
Automates the
implementation of
administrative requests on
the environment, and
provides a mechanism for
extending the
management model to
support new and custom
environments
Chapter 2.
37
Describing how the bits of the product fit together, and any
integration with external components, at an abstract level and at
a physical level
Design
How each of the bits, and any integration, are configured and/or
customized to meet the existing system environment and
solution requirements.
38
structure and the physical structure. Bass, et al., give the following definitions for
these:
Conceptual, or logical, structure The units are abstractions of the systems
functional requirements. These abstractions
are related by the shares-data-with relation.
This view is useful for understanding the
interactions between entities in the problem
space and their variation.
Physical structure
There are a number of other structures described by Bass, et al., which may be
relevant to a product-centric architecture, but we are only concerned with the
logical and physical structure.
The following terms will be used throughout this book. We attempt to be
consistent throughout this book (although this is not guaranteed to be consistent
with other IBM/Tivoli books).
Solution
Architecture
Logical architecture
Physical architecture
39
40
Security
Architecture
Project
Security
Architecture
document
Enterprise
Architecture
Project
IT
Architecture
document
Need for an
Identity
Management
Product
RFP or other
requirement
specification
document
Product
selection and
purchase
Product-centric
Implementation
Project
Product-centric
Architecture and
Design document
Most projects will involve business tasks (such as cost-benefit analysis and
budgeting), project management tasks (such as scheduling, resource allocation,
and risk management) and technical tasks (such as design and build). We
restrict our discussion to the technical tasks associated with the production of the
architecture and design document. Figure 2-2 on page 42 shows a set of generic
steps or phases that relate to the Architecture and Design document.
41
Initiation
Definition
Design
SoW or
Charter
Definition
Report
Architecture/
Design
Build
Definition
Design
Build
The focus of this redbook is on the design phase and production of the
Architecture and Design document (as highlighted in Figure 2-2). However, much
42
of the information required for the design will have been gathered and
documented in the Definition phase. The next section will look at this.
43
on) any application development teams and business managers involved in the
project. The combination of these interviews and workshops will develop a
picture of how the system currently works and how it could be improved. It is
important to vet the wish-list from the genuine requirements. The project
owners should drive the requirements for the proposed system, although others
may contribute to an understanding of the need for the requirements.
A key component of delineating the definition and design phases is that the
existing system and solution requirements are agreed between the project owner
and the project team prior to the commencement of the design phase.
44
45
Security
Architecture
Project
Security
Architecture
document
MASS
Need for an
Identity
Management
Product
Enterprise
Architecture
Project
IT
Architecture
document
RFP or other
requirement
specification
document
Product
selection and
purchase
Product-centric
Implementation
Project
Experience
& ICAP
Product-centric
Architecture and
Design document
46
MASS subsystems
For this project, Common Criteria were considered to be the description of the
complete function of the security system model. The classes and families within
the Common Criteria represent an aggregation of requirements; however, after
careful review, it was determined that the class and family structures defined
within Common Criteria do not lend themselves to be used as part of a taxonomy
for pervasive security. The aggregation is more reflective of abstract security
themes, such as cryptographic operations and data protection, rather than
security in the context of IT operational function. To suit the objective of this
project, the Common Criteria functional criteria were re-examined and
reaggregated, removing the class and family structures. An analysis of the 130
component-level requirements in relation to their function within an NIS solution
suggests a partitioning into five operational categories:
Audit
Access control
Flow control
Identity and credentials
Solution integrity
A summary mapping of CC classes to functional categories is provided in
Table 2-1.
Table 2-1 Placing Common Criteria classes in functional categories
Functional category
Audit
Access control
Flow control
47
Functional category
Identity/credentials
Solution integrity
While redundancy is apparent at the class level, there is only a small overlap at
the family level of the hierarchy defined within Common Criteria and below. Much
of the overlap represents the intersection of function and interdependency
among the categories.
The component-level guidance of Common Criteria documents rules, decision
criteria, functions, actions, and mechanisms. This structure supports the
assertion that the five categories described in Table 2-1 on page 47 represent a
set of interrelated processes, or subsystems, for security. The notion of a security
subsystem has been proposed previously; the authors of Trust in Cyberspace
described functions within operating system access control components as
belonging to a decision subsystem or an enforcement subsystem. The five
interrelated security subsystems proposed here and depicted in Figure 2-4 on
page 49 expand the operating system-based concept and suggest that function
and interdependency of security-related functions, beyond centralized access
control, can be modeled as well.
48
In this redbook, we are primarily concerned with the Manage Identities and
Credentials section of MASS. This is detailed in the following section.
49
50
As you will see as you go through the Tivoli Identity Manager architecture and
design sections of this book, not all of the components of the MASS Identity and
Credential Management subsystem are covered by Identity Manager. When
using MASS, you have to be aware of what the method proscribes and what the
products provide. In some cases, you can ignore the discrepancy as it may not
apply. When the method proscribes a function that the implementation requires,
you may have to add additional products or develop custom functionality.
51
52
There may need to be multiple instances of each subsystem within a design. For
example, there may need to be independent Identity Management subsystems
for external (Internet) customers and employees. Or there may need to be
separate Identity Management subsystems for separately managed businesses.
Actual subsystem enumeration requires documented rationale.
Summary
The design flow and work/items or deliverables for these steps are shown in
Figure 2-6 on page 54.
53
Design
Flow
Model
Business
Processes
Establish
Security
Design
Objectives
Select and
Enumerate
Subsystems
Document
Conceptual
Security
Architecture
Work Items/
Deliverables
Business
Process
Definitions
SDO SDOSDO
Mapping
Conceptual
Security
Architecture
MASS
Subsystems
Subsystem
Subsystem
Subsystem
Subsystem
Subsystem
Once the conceptual model has been developed, it must be integrated into the
overall solution architecture.
Solution models
Creating an initial solution model is a critical step in the design process. With skill
and experience, one-of-a-kind solution models can be developed to fit a given set
of requirements. For complex solutions, the practice of using templates derived
from prior solutions is becoming commonplace.
54
Use cases
Architectural decisions will also drive the evaluation of prototypes and models of
functions within the solution. One form of prototype is called a use case. Both
security threats and normal interactions and flows can be validated with use
cases.
There are many architectural decisions to be evaluated within each iteration of
the design. The effect on performance due to processing delays, plus the effect
of data collection and analysis on the overall operation of the solution, are
significant factors.
P. T. L. Lloyd and G. M. Galambos, Technical Reference Architectures, IBM Systems Journal 38, No. 1, 5175 (1999).
55
56
Design
Flow
Model
Business
Processes
Establish
Security
Design
Objectives
Select and
Enumerate
Subsystems
Document
Conceptual
Security
Architecture
Work Items/
Deliverables
Business
Process
Definitions
SDO SDOSDO
Mapping
Conceptual
Security
Architecture
MASS
Subsystems
Develop Security
Subsystem Architecture
Design Flow
Work Items/Deliverables
Develop
Solution
Model
Document
Architecture
Decisions
Define
Use
Cases
Initial
Solution
Model
Architecture
Decisions
Use
Cases
Refine
Functional
Design
Integrate
requirements
into component
architectures
Working
Functional
Models
Component
Architectures
(Architecture and
Design document)
Other Rqmts/
Design
Considerations
57
The security architecture design and the overall architecture design sections
both discussed business processes and how they are integrated into the design.
The next section discusses business processes in an Identity Management
solution.
This list is not exhaustive, but indicates the business process review exercise
that should be performed as part of the Project Definition phase.
58
2.4 Conclusions
This chapter has examined the issues and circumstances that affect the design
of an Identity Management solution. It has outlined a system model and a
systematic process for security design with the Common Criteria international
standard at its foundation.
59
60
Chapter 3.
61
End User
B ro w s e r
A d m in is t r a t o r
B ro w s e r
S u p e r v is o r
B ro w s e r
U s e r /A d m in is t r a t o r r e q u e s t s /re s p o n s e s
E n tit y p u ts /
g e ts
W e b U s e r In t e r f a c e
LDAP
T r a n s a c tio n a l
in fo , s c h e d u le
r e a d s /w r it e s
A p p lic a t io n
D a ta b a s e
S e rv ic e
A c c o u n t p r o v is io n in g /r e c o n c ilia tio n
Agent
Agent
Agent
O p e r a tin g
S ys te m
RDBMS
A p p lic a t io n
62
Search
Form Design
Organization
Tree
Desktop
Workflow
Design
Application
Interface
Interface
Menu System
63
Desktop module
The Desktop module provides a framework for providing a consistent layout in
the pages displayed in the user interface. It is within this framework that products
of the other Web User Interface modules are displayed, such as the Menu
System and Organization Tree.
Search module
The Search module provides a framework for general and more specific search
interfaces to be used throughout the user interface.
64
Workflow
Management
Policy
Management
Identity
Management
System
Configuration
Entity
Management
Worklist
Management
Account
Management
Password
Management
Reporting
Data Join
Management
Platform
Applications
65
Reporting module
The Reporting module provides the canned report capabilities of the system.
This module provides the query and formatting of the reports driven from the
user interface.
66
Core Services
Authentication
Messaging
Policy
Remote
Services
Authorization
Scheduling
Workflow
Data Services
Workflow Database
Data Join
Customer
Datastore
Access Manager
Managed Services
Authentication module
The Authentication module provides a set of authentication implementations that
can be used by clients of the service. Examples of these implementations are
simple password authentication and X.509 certificate authentication. The module
is designed as a framework that can be extended by customers to provide their
own implementations.
Authorization module
The Authorization module provides an interface to enforce authorization rules as
clients attempt operations in the system. These rules apply to accessing data
within the system, as well as to operations that can be applied to the system
data.
Mail module
The Mail module provides an interface for notifying users via a messaging
system, such as e-mail. The module is configurable to accommodate different
messaging systems.
Messaging module
The Messaging module provides guaranteed asynchronous messaging to and
between internal modules in the architecture. The module relies heavily on the
Java Message Service (JMS) specification to provide support for multiple
messaging middleware vendor implementations.
67
Scheduling module
The Scheduling module provides a timer that notifies clients of timed events that
they have subscribed for. The Scheduling module uses the Messaging module to
notify those clients.
Policy module
The Policy module enforces the policies that associate users with services. The
module ensures that provisioning requests conform to the policies that are
defined. The module resolves the appropriate policies that apply to a user and
determines the services for which that user is authorized. The module validates
and generates passwords. The module generates identities for users and
accounts.
Workflow module
The Workflow module executes and tracks transactions within the system. This
would include the provisioning/de-provisioning of a service, a user's status
change, the custom process associated with a provisioning request in the
system, or any other transaction that affects a user's, or group of users', access
to services. Each of these transactions is persistent for fault-tolerant execution
and historical auditing purposes. Clients can query the Workflow module for the
status of the transactions being executed.
68
3.1.5 Database
A relational database is used to store all transactional and schedule information.
Typically, this information is temporary for the currently executing transactions,
but there is also historical information that is stored indefinitely to provide an
audit trail of all transactions that the system has executed.
69
HTTP/S
Web Interface
DATA
Applications
DSML
Agent
DSML
File
IP
Network
DSML
File
Service
Core Services
Identity Manager
Server
Transactions from the IBM Tivoli Identity Manager server are sent securely via
HTTPS to the service agent and then processed by the agent.
For example, if a service has just been connected to the IBM Tivoli Identity
Manager server, the accounts that already exist on the server may be reconciled
or pulled back in order to import the users details into the IBM Tivoli Identity
Manager LDAP directory. If a password change or a provisioning of a new user
occurs, the information is transferred to and then processed by the agent. The
agent deposits the new information within the application or operating system
that is managed.
70
Identity Manager
Server
Service
Web Interface
DATA
JNDI
IDI
Connector
- CSV
- Parser
- Operating System
- LDAP
- Application
IP Network
Applications
Core Services
Data BUS
By using IDI and IBM Tivoli Identity Manager, communications to resources such
as a CSV file or a Microsoft Excel spreadsheet containing contractor
employment details may be possible through a parser connector. Tivoli Identity
Manager would see this as a service that it manages and that can be
incorporated into its workflow.
71
Note: The latest information about IBM Tivoli Access Manager can be
obtained by reading the redbook Enterprise Business Portals with IBM Tivoli
Access Manager, SG24-6556 and Enterprise Business Portals II with IBM
Tivoli Access Manager, SG24-6885.
72
Other networks
Keep in mind that the network examples we are using do not necessarily include
all possible situations. There are organizations that extensively segment
functions into various networks. Some do not consider the intranet a trusted zone
and treat it much like the Internet, placing a DMZ buffer between it and critical
systems infrastructure contained in other zones. However, in general, the
principles discussed here may be easily translated into appropriate architectures
for such environments.
Placement of various Tivoli Identity Manager components within network zones
is, on the one hand, a reflection of the security requirements in play, and on the
other, a choice based upon an existing/planned network infrastructure and levels
of trust among the computing components within the organization. While
requirement issues may often be complex, especially with regard to the specific
behavior of certain applications, determination of a Tivoli Identity Manager
architecture that appropriately places key components is generally not difficult.
With a bit of knowledge about the organizations network environment and its
security policies, reasonable component placements are usually easily
identifiable.
Figure 3-7 on page 74 summarizes the general Identity Manager component
type relationships to the network zones discussed above.
73
No Identity Manager
components should be
deployed in an uncontrolled
network. It is also generally
unsafe for Identity Manager
components to
communicate with one
another across an
uncontrolled network
without using secure
communication
mechanisms (such as SSL).
Possible location
for GUI servers
that service
external
customers.
Some organizations
set up special
networks to separate
various management
components from
production systems.
Some Identity
Manager componets,
such as the RMA
server, might be
installed in such a
network.
Uncontrolled
Zone
Controlled
Zone
Trusted
Zone
Restricted
Zone
Restricted
Zone
Internet
Internet DMZ
Intranet
Production
Network
Management
Network
LESS SECURE
MORE SECURE
As all the components of Tivoli Identity Manager have either information that
access should be restricted to, or support such resources, we recommend that
they all be placed in a restricted zone. An exception to this may be to place one
or more GUI servers in the DMZ to manage external requests from business
partners or customers if no general access control solution, such as Access
Manager WebSEAL, is in place.
74
DMZ acts as a proxy to the GUIs Web server, which should be placed in a
restricted zone. The Access Manager Policy Server may be placed in the trusted
zone if there is sufficient trust in those who can access that zone, and
communication is secure using SSL. However, in most cases, the most suitable
place for the Access Manager Policy Server would be in the restricted zone. The
Access Manager User registry should also be placed in the restricted zone.
No Access Manager
component should be
deployed in an uncontrolled
network. It is also generally
unsafe for Access Manager
components to
communicate with one
another across an
uncontrolled network
without using secure
communication
mechanisms (such as SSL).
Usually, only
WebSEAL or other
Access Manager
blades should be
placed in a
controlled network
zone.
Some organizations
set up special
networks to separate
various management
components from
production systems.
The Access Manager
Policy Server might be
installed in such a
network.
Uncontrolled
Zone
Controlled
Zone
Trusted
Zone
Restricted
Zone
Restricted
Zone
Internet
Internet DMZ
Intranet
Production
Network
Management
Network
LESS SECURE
MORE SECURE
75
80/443
80/443
81/1443
81/1443
Port Access
Configuration
Port Open
Port Closed
Applications
Portal
Application
server
Mainframe
Firewall
Firewall
Firewall
IBM HTTP
server
Web server
Data
Web server
ITIM server
Browser
LDAP
Replica
Access
Manager
WebSEAL
LDAP
Replica
LDAP
Master
Production Network
Management Network
Web
server
Internet
ITIM server
Access
Manager
Policy
server
Internet DMZ
Figure 3-9 Integrated architecture for Access Manager and Identity Manager
Note: Port 80 is the default port for HTTP, and port 443 for HTTPS, through
which the browser connects to the Identity Manager GUI server.
If LDAP is being used for the user repository, the firewall could be configured to
allow access to the registry only via the WebSEAL server.
76
Chapter 4.
77
78
4.1.2 Passwords
All accounts have passwords. Account passwords can be centrally managed by
their owners or administrators using the Identity Manager Web interface.
Passwords can be synchronized. The synchronization can be applied to all
accounts associated with a user or selected accounts. For most passwords, this
is a one-way synchronization. Identity Manager sets the password and pushes it
to the managed targets. Identity Manager cannot accept a password change
request from a target and push this to all associated accounts. The exception to
this is the Windows NT/2000 password synchronization function, which
intercepts a password change and passes it through Identity Manager. It is
Tivolis stated intention to extend this functionality to other platforms in the future.
Identity Manager can generate a random password. This can be displayed to an
administrator or mailed to a user.
Identity Manager uses a challenge/response function to verify a users identity if
they have forgotten their Identity Manager password. The challenge questions
can be from a standard list or enterable by the user. When a user logs into
Identity Manager for the first time, they enter the challenge questions (if
configured) and responses. On subsequent logins to Identity Manager, they can
select a "forgot password" option and a subset of the challenge responses are
used to verify the user.
79
80
81
82
4.2.3 Policy
Identity Manager supports four types of policy: provisioning policy, password
policy, identity policy, and service selection policy.
Provisioning policy
A provisioning policy confers access to many types of managed services
(Identity Manager, NT, Solaris, and so on) by granting a person access based on
an organization (for example, a person's location in the org tree, an
organizational role, or all people not in any organizational role). In other words,
access to a target managed service is either:
Granted to all persons in an organization
Granted only to persons assigned to a specified organizational role
Granted to persons not covered by any other provisioning policies on any of
the entitlement targets associated with the current policy
It is used to define what accounts can be created for a user and can, optionally
and automatically, create the accounts on those systems. It can also be used to
define a specific approval workflow process that has to be applied to the
accounts.
Identity policy
An identity policy defines how a user's ID is created. Identity Manager
automatically generates user IDs from the identity policy. Identity policies can be
set as a global policy or as a service specific policy. If the identity policy is not a
global policy, the policy can be assigned on a per service basis (for example, it
only applies to specific service types) or it can be assigned to a combination of
service types and/or instances. For example, if all user IDs must be composed of
the user's first initial and last name, a global identity policy must be created for
the organization. If all user IDs for a specific service must contain a certain
number, a service specific identity policy must be created for the service.
83
Password policy
A password policy sets parameters that all passwords must meet, such as
length, type of characters allowed and disallowed, and so on. You can set up
password policies to apply to any of the following:
Only one service instance or more than one service instances
All service instances of only one service type or multiple service types
All services, regardless of service type
4.2.4 Workflow
A workflow is the process by which a request is approved, rejected, or sent for
completion. The workflow process is defined by a workflow design. When a user
places a request for a new account, new access rights, or changes to an existing
account, the request must be approved by signature authorities defined by a
workflow design.
A workflow design can be added to an entitlement in a provisioning policy when
the entitlement is defined or at a later time.
Workflow designs are built using the Identity Manager GUI. The design created
by the visual programming Java applet in the GUI actually produces an XML
implementation under the covers.
84
4.2.6 Reports
An authorized user can use the Identity Manager report system to create reports
based on the criteria you select. Identity Manager allows authorized users to
generate six different types of reports:
Operation: Lists Identity Manager operation requests by type of operation,
date, who requested the operation, and who the operation is requested for.
Service: Lists existing service instances by date, who requested the
operation, and who the operation is requested for.
User: Lists all Identity Manager operations by date, who requested the
operation, and who the operation is requested for.
Rejected: Lists requests denied by date, who requested the operation, and
who the operation is requested for.
Reconciliation: Lists the orphan accounts found since the last reconciliation
was performed.
Dormant: Lists services with no activity within the number of days selected.
Account: Lists people and their associated accounts and whether or not the
account is in compliance with current policies.
Identity Manager system administrators can also link other reports to the reports
menu. Access to any of the reports is defined by the report ACIs.
85
Organization
People w ho are governed by
ITIM policies
O perating
System s
Service
Databases
Application s
IT IM System
Administrators
Domain
Administrators
Access Control Information
ITIM
G roups
Figure 4-2 IBM Tivoli Identity Manager entities and their relationships
On the left of the figure is the organization (and subsidiary entities) with the
different types of people using Identity Manager, such as those that are governed
by policies, ordinary users, domain administrators, and system administrators.
Within the Identity Manager system are the entities described in the earlier
sections, such as the policies, organizational roles, and ACIs. Services map to
managed resources, such as operating systems, databases, and applications.
86
Login functions
The login page is shown in Figure 4-3 below. It allows a user to log in with their
Identity Manager user ID and password.
There is also a "Forgot your password?" option that will use the
challenge/response function to verify the user before prompting for a password
reset.
87
Self-service functions
The self service section of Identity Manager, focused around the users home
page, allows a user to view and edit information that directly applies to him. Any
person who is granted access to view his own information can use the self
service section to manage his personal information and his action items. The
self-service functions are shown in Figure 4-4.
88
89
It is possible for the user to select the challenge/response questions and enter
the response to each challenge question, as depicted in Figure 4-6.
90
If they subsequently forget their password, they can select the "Forgot your
password?" link on the login page and they will be prompted to supply their
responses before being asked to change their password.
Manage People
Figure 4-7 on page 92 shows the Manage People dialog.
91
Figure 4-7 Manage People page for Tivoli Austin Airlines CorpHQ container
The Manage People page displays the names of the people in the selected
branch of the organization tree, their current status, and an additional attribute.
Account Management
The Account Management page is used to manage accounts for the person. An
account is a person's access to Identity Manager or to a Service (managed
resource), such as NT, Solaris, and so on. There are multiple ways to manage
accounts:
Select a specific person for whom to manage accounts
Select a service instance for which to manage accounts
Use the search function to search for specific accounts to manage
Figure 4-8 on page 93 shows the account management page for the user Scott
Tiger, who is defined in the Corp HQ organizational unit.
92
The account management pages are customizable, but should only be changed
by an Identity Manager system administrator and are detailed in 4.7, Common
customization on page 131.
Search function
Identity Manager has a search function that can be used to locate any entity,
including users and accounts. The search page is shown in Figure 4-9 on
page 94.
93
You can select any object type, such as Person, Business Partner Person, and
Account. Once an object type is selected, any of the object attributes can be
searched on (such as Full Name) with a search condition (such as Contains or Is
Less Than) and an argument. The search argument can include wild cards.
Delegate function
System administrators can select a delegate for a person. More than one
delegate can be selected for a person, but more than one delegate cannot be
selected for the same time period. To change the delegate for a specific time
period, the originally selected delegate must be deleted and a new delegate must
be added for that time period.
94
The use of the first three policies for identity management is discussed in the
next section.
95
determines the values for the account attributes and pre-fills the information. This
reduces the reliance on manual data entry.
The following figures (Figure 4-10, Figure 4-11, and Figure 4-12 on page 97)
show the provisioning policy definition for the default Identity Manager service.
This policy entitles all users in Identity Manager to an Identity Manager account.
96
The last tab shows the entitlements for the Identity Manager Service (for Identity
Manager accounts). Identity Manager accounts must be manually created (type
= manual) and there is no workflow associated with this policy.
There can be multiple services associated with each provisioning policy. For
example, a policy for provisioning all UNIX servers (for UNIX systems
administrators) could contain a service for every UNIX system. A user may be
subject to multiple provisioning policies, depending on the scope of the policies
and where the user is placed in the org tree.
97
Password policy can be set at the highest level in the org tree and apply to all
services. You can also have specific policies that apply to certain parts of the
organization or services.
98
Aliases are only used to determine if an account on the managed resource can
be matched with a real person in the system. If there is a match of user login IDs
to an alias, the Identity Manager Server is updated with data from the service.
And, if set, the Identity Manager Server verifies that the accounts fit within the
constraints of a defined policy. If there is not a match, the Identity Manager
Server lists the unmatched accounts as orphaned accounts.
You run reconciliation for the following reasons:
Load access information into the Identity Manager directory
Monitor accesses granted outside of Identity Manager administration
99
Start element
The Start element is used to start the workflow process and is automatically
placed into the work space upon the creation of the workflow. As the Start
element initiates the workflow, there can be only one that is allowed for each
workflow sequence.
100
End element
The End element is use to locally finish and terminate the sequence of events
within the designed workflow. Like the Start element, it is automatically placed
onto the work space upon creation of the workflow and can only have one End
element within the workflow.
Approval element
The Approval element is a node within the workflow that, upon initiation, will have
the underlying workflow send the appropriate participants or persons within a
role an e-mail to notify that their action is required within the workflow. The
Approval element may be designed for individual use or a combination of both
serial or parallel approval participants. The differences in parallel and serial
approvals is briefly described below.
Upon notification of the approval request, the participant may ether reject or
approve the provisioning action, which will continue the workflow sequence.
It is possible, with the Approval element, to isolate the approval request. For
example, there can be business or required service level requirements that state
that if the request hasnt been handled by the approval participants after a
determined time (which is possible if someone is on leave or sick and the
approval process is only serial), then the approval request may be sent to an
administrator or another person with a similar role of responsibility within the
organization.
101
OR
Parallel
Approval
Serial
Approval
AND
Figure 4-15 Parallel and Serial approvals
Workflow example
The workflow example in Figure 4-14 on page 100 shows an approval process
for LAN access. Here we step through the workflow for this example:
1. Prompt the requestee's supervisor (manager or team lead) to supply
additional information for the account, in this case, some Windows 2000
account information, such as their group and home directory.
2. Pass the request to the LAN admin team for approval.
The workflow process is triggered when a Windows 2000 account is created in a
branch of the org tree and a provisioning policy with this workflow attached
applies to that branch. The RFI node ("Supervisor RFI") sends an e-mail to the
supervisor of that branch indicating they have work to do. The supervisor logs
into Identity Manager and their "Access To Do List" page shows the pending
request. They enter in the required information and submit. The supervisor can
also reject the request.
The workflow proceeds to the Approval node ("LAN Admin Approval"). The
requestee's supervisor has specified additional information for the user; the LAN
admins need to sign-off on the request. An e-mail is sent to the service owner for
the Windows 2000 service. They log into Identity Manager, go to their to-do list,
and approve or reject the change. If approved, the new account is provisioned
and an e-mail sent to the requester. If rejected, the new account is backed out
and an e-mail sent to the requester.
102
103
The reports that can be run by a particular administrator depend on the access
control defined for each report. Most reports have screens to specify the report
details. The final report is published in Adobe PDF format and displayed in a new
browser window. The diagram in Figure 4-17 shows a dialog for creating an
Account Password Change for any person.
104
Additional reports can be developed and added to the Identity Manager Web
user interface. Once a report is developed, it can be added to the Identity
Manager Web user interface by modifying an XML file. Details can be found in
the IBM Tivoli Identity Manager Policy and Organization Administration Guide
V4.4, SC32-1149.
105
106
DEPARTMENT
JOB ROLE
ACCESS RIGHTS
Full control
Senior
Administrator
Person
TIM
Acct
W2K
Acct
IT Support
Group
Limited Access
Junior
Administrator
Person
TIM
Acct
W2K
Acct
Limited Access
Help Desk
Operators
Help Desk
Person
TIM
Acct
W2K
Acct
Once the business functionality has been mapped to the role of the user, access
control information can be built up and placed on the objects been protected.
Extremely granular access control can be set, even down to specific managed
attributes within a page. The following access control information screen shots
show a basic level of access control; however, Figure 4-21 on page 109 depicts
specific attributes with access control placed on them.
The access control information placed onto a resource, as shown in Figure 4-20
on page 108, only allows the Help Desk Operator to perform a search on users
within the container and modify attributes.
107
If you require a tighter control of what the Help Desk Operators are allowed to
modify, Identity Manager can provide access control down to the attribute. This is
demonstrated in Figure 4-21 on page 109.
108
With the above ACIs in place, a Help Desk Operator can find a user and view the
users information, except the users Drivers Licence, Home Phone, and Home
Address. Note NONE has been selected next to the attributes that the Help Desk
Operator is not supposed to see.
The Help Desk Operator also is only allowed to modify the users Department
Number and Users Description. Note GRANT allows the modification of the
attributes.
109
110
111
As shown in the figure, a request that has been scheduled can be aborted, but
the scheduled date/time cannot be changed.
112
Administrators should also periodically check the orphaned account list for the
service and process the orphaned accounts.
113
The resulting report shows the timeframe, for example, Start Date and End Date.
This is shown in Figure 4-28 on page 115.
114
115
BROWSER
BROWSER
HTTP(S)
ITIM Server
ITIM
Directory
HTTP(S)
BROWSER
HTTP(S)
Web server
LDAP
v3
ITIM Server
JDBC
(JMS)
Application
Server
Directory Server
ITIM
RDBMS
RDBMS Server
AGENT
Proxy System
AGENT
AGENT
AGENT
AGENT
AGENT
RDBMS
App
Protocol
Applications
AGENT
Operating Systems
Directories
Application
The Web user interface is used for accessing Identity Manager via browsers
running on user's workstations. The browsers communicate with the Identity
Manager server via HTTP(S).
The Identity Manager server can contain the Web server, Identity Manager J2EE
application, and application server. The Web and application servers can be split
into two servers, one with the Web server (perhaps running in a DMZ) and the
other with the application server. The Identity Manager server communicates
with the Identity Manager Directory via LDAP protocols (over SSL) and with the
Identity Manager RDBMS via JDBC. The directory and RDBMS can also be local
to the Identity Manager server.
116
Most agents are deployed to the managed targets. Some can be deployed to a
"proxy" system and use the application communication protocols/APIs to
communicate. Most agents communicate with the Identity Manager server via
XML over HTTPS. Some of the older agents, such as the RACF agent, use FTP
with the data encrypted at the application level.
Database
An IBM DB2 database must be available to IBM Tivoli Identity Manager Server
and the following details have to be observed:
Application Heap Size: 256
A user called enrole must be created or assigned to manage the IBM Tivoli
Identity Manager DB2 database
Configured to use JBDC2 Drivers
DB2 Version 7 FixPack 7 (upgrading DB2 to level WR21331)
Important: If you are installing IBM DB2 on a computer separate from IBM
Tivoli Identity Manager Server, you must install the IBM Admin Server option
of IBM DB2 (or the IBM DB2 Connect Client) on the IBM Tivoli Identity
Manager Server computer.
For an all-in-one installation, use:
IBM DB2 Personal Edition Version 7.2 with FixPack 7
Note: If IBM DB2 Personal Edition is installed on a different computer than the
IBM Tivoli Identity Manager Server, then the IBM DB2 Connect Personal
Edition client program must be installed on the IBM Tivoli Identity Manager
Server.
For a clustered installation, use:
IBM DB2 Enterprise Edition Version 7.2 with FixPack 7
117
Directory server
A directory server must be available to IBM Tivoli Identity Manager for Server.
You can use one of the following:
IBM Directory Server 4.1.0
IBM Directory Server 4.1.0 eFix 00A (also known as Fix Pack 1)
Borne or Bash shell 1.3.1 for UNIX Installations
Workflow engine
IBM MQSeries V5.2 is automatically installed as part of the IBM Tivoli Identity
Manager Server installation in both the single-server and cluster
configurations. You must upgrade this version to CSD5.
IBM MQSeries Support Pack MA88 is automatically installed as part of the
IBM Tivoli Identity Manager Server installation in both the single-server and
cluster configurations.
Application server
Use IBM WebSphere Application Server 4.0.4.
Single-Server configuration
WebSphere Advanced Edition Single Server 4.0.4 is automatically installed
as part of the IBM Tivoli Identity Manager Server installation.
PTF 4 for WebSphere Advanced Edition Server 4.0.4 is required.
Cluster configuration
WebSphere Advanced Edition Server 4.0.4 (must be installed separately
before installing IBM Tivoli Identity Manager Server).
PTF 4 for WebSphere Advanced Edition Server 4.0.4 is required.
AIX installations
The following sections identifies hardware and software requirements specific to
installing the IBM Tivoli Identity Manager Server on an AIX system.
118
Hardware
1 GB of memory
1 GB of free disk space
IBM 604e processor with clock speed of at least 375 MHz
Operating system
AIX Version 4.3.3
Maintenance Level 9 + APAR IY19277 or Maintenance Level 10
Refer to
http://techsupport.services.ibm.com/server/mlfixes/43/10/01to10.html
for more information about updating your version of AIX.
Additional notes
The temp directory (/tmp) must have at least 512 MB of space.
The following environment variable must be defined before installing the IBM
Tivoli Identity Manager Server:
DB2INSTHOME=/home/db2inst1
Solaris installations
The following sections identifies hardware and software requirements specific to
installing the IBM Tivoli Identity Manager Server on a Solaris system.
Hardware
1 GB of memory
2 GB of free disk space
Solaris Sun4u Sparc processor with a clock speed of at least 375 MHz
Operating system
Solaris Version 2.8
Patches 108773-13, 108921-13, 108940-37, and 112003-02
Recommended Sun Solaris kernel configuration parameters:
set msgsys:msginfo_msgmap = 1026
set shmsys:shminfo_shmmax = <set to 90% of your physical memory>
set shmsys:shminfo_shmseg = 1024
set shmsys:shminfo_shmmin = 1
set semsys:seminfo_semaem = 16384
set semsys:seminfo_semvmx = 32767
119
Additional notes
The temp directory (/tmp) must have at least 512 MB of space.
Windows installations
The following sections identifies hardware and software requirements specific to
installing the IBM Tivoli Identity Manager Server on a Windows system.
Hardware
The minimum hardware configuration for running the IBM Tivoli Identity Manager
Server is:
256 MB of memory1
Processor: Pentium III
825 MB of free disk space:
IBM Tivoli Identity Manager Server (500 MB)
IBM WebSphere Application Server (220 MB)
IBM HTTP Server (20 MB)
IBM MQSeries (85 MB)
Operating system
Windows 2000 Advanced Server with Service Pack 2 (or greater)
Additional notes
The C: drive must have at least 1.1 GB of space.
Directory names can use the characters a-z, A-Z, 0-9, : (colon), . (period), _
(underscore), / (forward slash), and \ (backward slash).
Directory names cannot contain spaces.
120
IBM DB2 database and directory server will require an additional 256 MB of memory.
Extensions
This is an index to the extensions features for IBM Identity Manager Versions
4.x. The extensions file structure is broken into three sections:
General Documentation: This includes general descriptions of extensions
features, such as authentication and single sign-on.
API Javadoc: This consists of detailed descriptions of published IBM Identity
Manager Java application program interfaces.
Examples: A series of examples of demonstrating IBM Identity Manager
extensions.
General documentation
Within the file structure of IBM Tivoli Identity Manager, there is useful information
that may provide assistance with application integration and general deployment.
The documentation basically cover the APIs for the sub-processes within the
Identity Manager application.
121
122
set of Web based resources using an authentication data store that is managed
separately from Identity Manager. The first time a client attempts to access any
protected resource, the single sign-on provider will authenticate and, if
successful, will pass a token indicating the identity of the authenticated user to all
subsequently accessed resources.
When using a single sign-on provider with Identity Manager, it will be necessary
to add a customized logon user interface specific to the single sign-on provider.
Typically, single sign-on providers intercept HTTP requests to a protected
resource, authenticate the user, and place authentication data into the HTTP
header before allowing access to the resource. In this case, the protected
resource is the Identity Manager user interface.
The standard logon user interface provided with Identity Manager will not be
appropriate, since it will prompt the user for a user ID and password. An Identity
Manager logon interface customized for a single sign-on logon provider will
typically collect user credentials from the sign-on provider, verify that the user
has a Identity Manager account, establish an Identity Manager session, and
forward the user into the Identity Manager system.
Logout and session timeouts are related problems that can also be addressed to
fit in with custom approaches.
123
Constructor Summary
Method Summary
Field Detail
Constructor Detail
Method Detail
Extension examples
(..\Identity Manager\extensions\examples\)
Authentication: An example of customizing the authentication process.
Model: An example of using the Model API to read information about identities
and their accounts.
ServiceProvider: An example of a custom connector that plugs directly into
the IBM Identity Manager provisioning platform.
Single sign-on: An example of integrating a single sign-on solution with the
IBM Identity Manager provisioning platform.
124
ou=itim
(Application Inform ation)
ou=excludeAccounts
ou= CompanyNam e
o=organizationNam e
(Organization information)
ou=itim
(Service Inform ation)
ou=constraints
ou=orgChart
ou=policies
ou=formTemplates
erdictionaryname=
password
ou=w orkflow
ou=sysRoles
ou=objectProfile
ou=services
ou=orphans
ou=recycleBin
ou=accounts
ou=roles
ou=serviceProfile
ou=people
ou=system User
ou=0
ou=n
ou=0
ou=joinDirectives
ou=n
ou=challenges
Container
Description
Root Node
ou=Identity Manager
ou=constraints
erdictionaryname=password
125
Container
Description
ou=CompanyName
o=OrganizationName
ou=orgChart
ou=workflow
ou=services
ou=accounts
ou=policies
ou=sysRoles
ou=orphans
ou=roles
ou=people
ou=enRole
ou=challenges
ou=objectProfile
ou=serviceProfile
126
Container
Description
ou=systemUser
ou=formTemplate
ou=joinDirectives
ou=recycleBin
Figure 4-31 Binding to LDAP server using a LDAP Client and cn=root as user
127
Select dc=com and click on the ACL button, as shown in Figure 4-32.
Change the access control list to deny any unauthorized user access to LDAP
and click OK to accept the changes, as depicted in Figure 4-33 on page 129. The
LDAP server has to be restarted for the changes to be committed.
128
129
Workflow tables
Tivoli Identity Manager stores workflow specific information in the following
database tables:
The process table stores all the pending, running, and historical requests
submitted to the IBM Tivoli Identity Manager workflow. Each request is
represented as a process. The table includes descriptions of each column
name.
The processlog table maintains a record of audit events associated with a
process.
The processdata table stores the run-time process data of a process. After the
process is completed the table is removed.
The activity table contains records of each workflow process execution
status.
The workitem table maintains a record of work items associated with manual
workflow activities for running processes. The records associated with the
process are removed after the process is completed.
The password_transaction table is used during secure password delivery to
store information. After the password is retrieved, the record is deleted from
the table.
The pending table stores all provisioning requests that have not been
processed. This is a temporary table that is only created when another
request is being processed.
Services tables
Tivoli Identity Manager creates and uses the following database tables to store
information related to managed resources:
The resource_providers table stores cross references between resource
provider IDs and stores reconciliation data for each resource provider. The
resource provider IDs are used as the primary keys for resource provider
entity beans. The table includes descriptions of each column name.
The remote_services_requests table stores asynchronous requests or
requests that are made while a reconciliation is in progress.
The remote_resources_recons table stores the reconciliation units associated
with a given resource provider. The table includes descriptions of each
column name.
The remote_resources_recon_queries table stores reconciliation queries
associated with a given reconciliation unit. The table includes descriptions of
each column name.
130
Scheduler table
The scheduler is a component of Tivoli Identity Manager that stores one-time or
regularly scheduled events. These events are typically user requests (via the
workflow engine) or recurring reconciliation events. The scheduler stores the
information associated with the scheduled event in the scheduled_message table.
131
4.7.2 Forms
Each object in Identity Manager has forms associated with it. The standard form
for the Person object (user) is shown in Figure 4-34.
There are three tabs for this form; Personal Information, Corporate Information,
and Communications Information. Each tab allows for the data entry of the
Person attributes.
The forms for the other Identity Manager objects are similar.
The layout of all forms can be modified using the User Interface Customization
Java applet under the Configuration menu item. Figure 4-35 on page 133 shows
this applet with the Person object form open and the Corporate Information tab
showing.
132
Figure 4-35 User Interface Customization applet for Person Corporate Information tab
133
134
All of the Identity Manager object forms can be modified in this way.
Any modifications apply to the entire installation. You cannot have different forms
for different parts of the business.
Tip: The Tivoli Identity Manager online help functions provide more
information about how to design forms. After you have started the online help,
search for custom constraints.
135
ml
l
e. x
xm
S
nt. .xml
L
u
o
s
AM
cc
rm
IXD rAIXA
xfo
erA
e
c
eri
Tivoli Identity
LDAP
Manager
AIX Server
/etc/passwd
CA Public Cert
HTTP(S)
Workflow
CA Cert
erglobalid=8586800984477496319
cn = Doris Penman
sn = Penman
erAIX=a016432
UID number=3001
Unix Shell = /bin/ksh
$cn=doris penman
$sn=penman
$eruid=a016432
$UID number=3001
$erunixshell=/bin/ksh
136
over HTTP(S), where the end service reads the information and creates the user
on the operating system.
In our example in Figure 4-39, you can see that user Doris has been created as
user a016432 and mapped into the AIX operating system with the various
attributes.
Within LDAP, you can see the user Doris has a unique Object Identifier and the
various AIX attributes are stored within the accounts object, as shown in
Figure 4-40.
137
Assembly
Line
Event Handler
ITIM
Operating
System
Database
LDAP
Parser
CSV File
Figure 4-41 IBM Directory Integrator components
138
Connectors
139
the Windows systems if the LDAP server does not accept the new password
(password enforcement).
140
and its attributes and attribute values are copied to a new entry object. This entry
object is then returned by the connector. When there are no more Active
Directory objects to retrieve, the connector cycles, trying to retrieve the next
changed Active Directory object. The sleep interval connector parameter
specifies the number of seconds between two successive cycles. The connector
loops until a new Active Directory object is retrieved or the timeout (specified by
the time-out connector parameter) expires. If the timeout expires, the connector
returns an empty (null) entry, indicating there are no more entries to return. If a
new Active Directory object is retrieved, it is processed as previously described,
and the new entry is returned by the connector.
Note: Currently, only the IBM MQSeries server is supported for this type of
connector.
JMS messages
Everything sent and received by the JMS connector is a JMS message. The JMS
connector converts the IBM Directory Integrator entry object into a JMS message
and vice versa. Each JMS message contains pre-defined JMS headers, user
defined properties, and some kind of body that is either text, a byte array, or a
serialized Java object.
141
Text message
A text message carries a body of text. The format of the text itself is undefined so
it can be virtually anything. When you send or receive messages of this type, the
connector does one of the following things, depending on whether you have
specified a parser or not:
When you specify a parser, the connector calls the parser to interpret the text
message and returns the attributes along with any headers and properties.
When sending a message, the provided conn object is passed to the parser in
order to generate the text body part. This makes it easy to send data in
various formats onto a JMS bus (for example, use the LDIF parser, XML
parser, and so on). You can even use the SOAP parser to send SOAP
requests over the JMS bus.
If you do not have a parser defined, the text body is returned in an attribute called
message. When sending a message, the connector uses the provided message
attribute to set the JMS text body part:
var str =work.getString ("message");
task.logmsg ("Received the following text:"+str );
If you expect to receive text messages in various formats (XML, LDIF, CSV, and
so on), you should leave the parser parameter blank and make the guess
yourself as to what format the text message is. When you know the format, you
can use the system.parseObject(parserName, data) to do the parsing for you.
142
4.9.6 JNDI
The JNDI connector provides access to a variety of JNDI services. In order to
reach a specific system, you may have to install the JNDI driver for that system.
The driver is typically distributed as one or more *.jar or *.zip files. Place these
files in a place where the Java run time can find them, for example, in the
.lib/ext....directory.
4.9.7 LDAP
The LDAP connector provides access to a variety of LDAP based systems. The
connector supports both LDAP Version 2 and 3.
Note that, unlike most connectors, while inserting an object into an LDAP
directory, you have to specify the object class attribute, the $dn attribute
(distinguished name), as well as the other attributes.
143
144
Chapter 5.
145
146
147
148
Identity policy
An identity policy defines how a user's ID is created. Identity Manager
automatically generates user IDs from the identity policy, which can be assigned
per service or service type. Identity Manager allows JavaScript code to be written
to specify the string to use for the user ID.
For Access Manager, one method of creating a user ID would be to base it on a
user's common name (CN) and their surname or last name (SN). Example 5-1
shows a sample JavaScript that could be used as part of an Access Manager
service identity policy.
Example 5-1 Access Manager service identity policy JavaScript
function createIdentity()
{
var cn = subject.getProperty('cn')[0];
var sn = subject.getProperty('sn')[0];
var userid = "";
userid = cn.toLowerCase().substring(0,1) + sn.toLowerCase();
return userid;
}
return createIdentity();
149
A JavaScript object representing the person entity within the Identity Manager
data model is referred to as the subject. In this example, the cn and sn are used
from the person entity to generate the user ID. The first character of the cn is
appended to the last name to create the user ID. The user ID is returned in lower
case.
Password policy
Considerations should also be made in regards to the password policy. There are
three areas of password policy that should be addressed:
Password synchronization
Password strength policy
Password login policy
Identity Manager provides the capability to keep passwords synchronized. There
is a property that can be set from the Configuration panel in the Identity Manager
GUI, which enables password synchronization, as shown in Figure 5-2.
150
To enable this feature, go to the Properties tab in the Configuration panel, and
check Enable password synchronization. If this feature is enabled, Identity
Manager keeps all of a user's passwords the same. Users will not be able to
change account passwords separate from their Identity Manager password using
the Identity Manager interface.
Identity Manager also provides the capability to set a password strength policy,
which Identity Manager calls the password policy, at a variety of levels.
Password policy can be set at a service level, a service type level, or for all
services.
In order to keep passwords synchronized between Identity Manager and Access
Manager, all password change operations should go through Identity Manager,
and Identity Manager can both enforce a common password policy, and can keep
the passwords synchronized. Users should not be allowed to change their
passwords through the pdadmin command or the Web Portal Manager Web
interface.
If WebSEAL has been deployed in the environment, it also has the capability of
changing a user's Access Manager password. In this environment, the WebSEAL
reverse password synchronization module should be installed into WebSEAL so
that all password checking goes through Identity Manager, and the Access
Manager password is synchronized with Identity Manager managed passwords.
In an Access Manager for Operating Systems environment, the best method of
keeping passwords synchronized is to have user's change their passwords
through the Identity Manager Web Interface. This allows Identity Manager to
manage the passwords in Access Manager as well as on the different UNIX
endpoints. Measures can be taken to disable the change password operation on
the different UNIX machines; however, when a password has expired, some
users have no way to get to the Web interface, because they cannot log into their
systems. Access Manager for Operating Systems login policy can be set to
include a number of grace logins, which would allow a user to log onto a system
after the expiration date. Then the user would have the opportunity to perform a
change password operation using a browser without being locked out of the
system.
151
This sets the Access Manager cn or common name attribute to the same
value as the Identity Manager 4.4 person cn attribute. The Enforcement type
should be DEFAULT, and the Expression type should be
JavaScript/Constant.
10.Press the Add button, select sn, and add the following JavaScript to the text
box:
{subject.getProperty("sn")[0]}
This sets the Access Manager sn, or surname attribute to the same value as
the Identity Manager 4.4 person sn attribute. The Enforcement type should be
DEFAULT, and the Expression type should be JavaScript/Constant.
11.Press the Add button, select ertamdn. The JavaScript code should be added
to create a desired dn for the Access Manager account as shown below:
{"cn="subject.getProperty("cn")[0]+",o=tivoli,c=us"}
For a user named "Joe User", this would set the Access Manager dn to:
cn=Joe User,o=tivoli,c=us
12.Press the Add button and select eruid. The JavaScript code should be added
to create a desired uid for the Access Manager account, as shown below:
{subject.getProperty("cn")[0].toLowerCase().substring(0,1) +
subject.getProperty("sn")[0].toLowerCase()}
13.Press the Add button and select ertamsinglesign. Set the attribute to TRUE
or FALSE to enable or disable GSO credentials for users.
152
14.Press the Add button and select ertampasswordpolicy. Set the attribute to
TRUE to enable password policy checking. If all password changes come
through Identity Manager, this can be left disabled, or set to FALSE.
15.The complete Entitlement Default Attributes you entered are depicted in
Figure 5-3.
153
5. The User Information Tab should have the User ID filled in via the identity
policy, and the Full Name and the Last Name should be filled in via the
JavaScript in the advanced provisioning parameters of the Access Manager
entitlement. Fill in the Description and the LDAP dn, as shown in Figure 5-4.
Note: JavaScript should also be used to fill in the LDAP dn. Currently there
is no way to share the Identity Manager Person object and the Access
Manager Person object with the Access Manager Agent.
6. In the Administration tab, group membership can be defined. A reconciliation
must be performed to get all the group names into Identity Manager. Group
membership will be discussed below.
7. Press Submit, specify the password, and then press Submit again.
154
created or deleted using the Identity Manager interface today; either Web Portal
Manager or pdadmin must be used.
5.2.4 Reconciliation
As with other Identity Manager Version 4.4 services, Access Manager accounts
can be imported into the Identity Manager database using reconciliation. When
setting up reconciliation for Access Manager, certain system accounts must be
excluded, and should not be adopted into the Identity Manager database.
Accounts can be excluded from automatic adoption based on the profile of the
service. To exclude accounts, the account names must be entered into the LDAP
directory that is used for the Identity Manager database. The accounts can be
entered manually, or an LDIF file can be used. Here is a sample LDIF file that
can be used to specify the accounts to exclude from Access Manager:
dn: ou=excludeAccounts, ou=itim, ou=tivoli, dc=com
ou: excludeAccounts
objectClass: top
objectClass: organizationalunit
dn: cn=TAMProfile, ou=excludeAccounts, ou=itim, ou=tivoli, dc=com
erObjectProfileName: TAMProfile
objectClass: top
objectClass: eridentityexclusion
erAccountID: sec_masterer
AccountID: ivmgrd/master
erAccountID: amwpm/tamserver
erAccountID: ivacld/tamserver.tivoli.com
This LDIF file creates the excludeAccounts container object in LDAP, and then
adds an entry for TAMProfile, which applies to all services of type TAMProfile.
The excluded list contains several accounts. Access Manager creates the
sec_master account for administrative purposes, and that account should not be
reconciled into Identity Manager. The other accounts are used as server
principals, and are not assigned to people. To get an exact list of accounts, and
their exact names, the pdadmin command should be used to list all the users:
pdadmin> user list * 100
sec_master
ivmgrd/master
awwpm/tamserver
ivacld/tamserver.tivoli.com
155
156
Domain
administrator
Senior
administrator
Administrator
Create Sub
domain
Add new
Administrators
Create Users
Modify Users
View Users
Assign users
to
authorization
roles
Change User
Passwords
Support
administrator
In order to enable the same type of administration roles in Identity Manager, ACIs
can be created to specify each of the capabilities listed in Table 5-1. Then Identity
Manager groups can be created for each of the administrator roles, and the
appropriate ACIs can be associated with those groups.
157
3. Create the ACIs specified in Table 5-2 and attach them to the specified
groups.
Table 5-2 ACI configuration for AcmeWidgetsDomain
ACI - Name
AWDomain
administrator
AWSenior
administrator
AW
administrator
AW Support
administrator
AWSubDomain
AWManageAdministrators
AWCreatePerson
AWCreateTIMUser
AWModifyPerson
AWModifyTIMUser
AWViewPerson
AWViewTIMUser
AWManageRoles
AWChangePassword
158
5. For each ACI, the permissions in Table 5-3 on page 160 to Table 5-12 on
page 167 were set.
159
ACI
AWSubDomain
Context
Admin Domain
Permissions
Operation
Grant
Remove
Search
Add
Modify
Deny
None
Attribute permissions
Name
Read
Write
All
None
None
ACI
AWManageAdministrators
Context
ITIM Group
Permissions
Operation
Grant
Remove
Search
Add
Modify
Deny
Attribute permissions
160
Name
Read
Write
All
None
None
None
ACI
AWCreatePerson
Context
Person
Permissions
Operation
Grant
Remove
Transfer
Deny
None
Search
Restore
Suspend
Add
Modify
Attribute permissions
Name
Read
Write
All
None
None
161
ACI
AWCreateTIMUser
Context
Permissions
Operation
Grant
Remove
Deny
Search
Restore
Suspend
Add
Modify
Attribute Permissions
162
None
Name
Read
Write
All
None
None
ACI
AWModifyPerson
Context
Person
Permissions
Operation
Grant
Deny
None
Remove
Transfer
Search
Restore
Suspend
Add
Modify
X
X
Attribute permissions
Name
Read
Right
All
Grant
Grant
163
ACI
AWModifyTIMUser
Context
Permissions
Operation
Grant
Deny
Remove
Search
Restore
Suspend
Add
Modify
X
X
Attribute permissions
164
None
Name
Read
Write
All
Grant
Grant
ACI
AWViewPerson
Context
Person
Permissions
Operation
Grant
Deny
None
Remove
Transfer
Search
Restore
Suspend
Add
Modify
Attribute permissions
Name
Read
Write
All
Grant
None
165
ACI
AWViewTIMUser
Context
Permissions
Operation
Grant
Deny
Remove
Search
None
X
Restore
Suspend
Add
Modify
Attribute permissions
Name
Read
Write
All
Grant
None
ACI
AWManageRoles
Context
Organizational Role
Permissions
Operation
Grant
Deny
Remove
Search
X
X
Add
Modify
X
X
Attribute permissions
166
None
Name
Read
Write
All
None
None
ACI
AWChangePassword
Context
Permissions
Operation
Grant
Deny
Remove
Search
None
X
Restore
Suspend
Add
Modify
Attribute permissions
Name
Read
Write
Password
Grant
Grant
167
168
169
Identity
Manager
WebSEAL
IDI
dc=com
o=tivoli,c=us
TIM Person
TAM Person
An IDI assembly line can be set up to first synchronize the entries in the Access
Manager person object from the Identity Manager person object. Any
synchronization should only occur from the Identity Manager object to the
Identity Manager object. Identity Manager can use attributes to trigger
provisioning operations, so Identity Manager person attributes should only be
managed by Identity Manager. Once all of the Identity Manager and Access
Manager user objects are synchronized, a second IDI assembly line can be set
up to dynamically watch for changes in the Identity Manager person objects, and
synchronize that data with Access Manager. See the IDI product documentation
on how to set up assembly lines.
170
intranet, with WebSEAL controlling access to the Identity Manager GUI. When
users access WebSEAL for the first time, an Access Manager authentication is
required (for example, the Access Manager account user ID and password is
entered).
With this type of setup, it would be nice to have single sign-on (SSO) enabled, so
that an administrator only enters a user ID and password once.
In setting up an SSO environment between Access Manager WebSEAL and
Identity Manager, steps are required to customize Identity Manager and to set up
WebSEAL.
171
The script variables should be set to reflect where different code is installed.
Here is an example of possible values:
set JAVA_HOME=C:/WebSphere/AppServer/java
set WAS_HOME=C:/WebSphere/AppServer
set ITIM_HOME=C:/itim
to
if (userid != null) {
return userid;
}
Once these values are set, execute the build.bat command from the examples
directory. The output class files are put into <ITIM install
directory>/extensions/examples/lib.
From there, the appropriate classes can be put into a jar file to copy into the
Identity Manager directories. To create the itamauth.jar file, execute the following
from the lib directory:
jar cvf itamauth.jar examples/authentication/* examples/singleSignOn/*
Copy the jar file itamauth.jar into the Identity Manager application directory under
WebSphere. It will be in $WAS_HOME/installedApps/enrole.ear/enrole.war.
Edit the
$WAS_HOME/installedApps/enrole.ear/enrole.war/META-INF/MANIFEST.MF
file.
Add the jar file itamauth.jar to the Class-Path.
172
Copy this file into the Identity Manager application directory under WebSphere. It
will be in $WAS_HOME/installedApps/enrole.ear/enrole.war.
173
which sets the simple authentication to use the example authentication provider.
This effectively turns off the Identity Manager native authentication so that
WebSEAL authentication can be used.
The second configuration file from the same directory is ui.properties. This file
needs to be modified to use the new redirectlogoff.jsp file for logoff and timeout.
Here are the appropriate lines that should be changed:
# URL for logoff
enrole.ui.logoffURL=redirectlogout.jsp
enrole.ui.timeoutURL=redireclogout.jsp
174
That should go to the change password page, with user ID null. Next, try:
http://machine:port/enrole
This should go to the logon screen, where a user ID can be entered, for example,
itim manager, and no password. The logon should be allowed.
This creates a junction in WebSEAL that forwards the name of the logged in user
as iv_user in the HTTP header. The ExternalLogonServlet will read the iv_user
name from the header, and set up a user context for an Identity Manager user
with the same user ID. This means that the user IDs must be kept in synch.
Assuming that WebSEAL is running on server1.acme.com, the Identity Manager
GUI should be accessed through the URL:
https://server1.acme.com/tim/custom_login
175
176
Part 2
Part
Customer
environment
In this part, we discuss an identity and credential management business solution
for the Tivoli Austin Airlines corporation, which operates on a worldwide basis.
177
178
Chapter 6.
Note: All names and references for company and other business institutions
used in this chapter are fictional. Any match with a real company or institution
is coincidental.
179
RW
RA
RE
These regional data centers service the IT needs of the region, such as LAN/help
desk support and user administration. The corporate IT staff, such as systems
programmers and developers, are located at the central IT data center.
TAA also runs multiple Customer Service Centers (CSC) in the major airports,
servicing front-office functions, such as ticketing, member lounges, baggage
management, and staff HR systems. The CSC have no local staff, so they
contact the regional centers for technical support.
The TAA sites are:
180
Austin, TX
San Francisco, CA
New York, NY
Seattle, WA
Los Angeles, CA
Denver, CO
St. Louis, MO
Detroit, MI
Raleigh, NC
The geographic distribution of TAA is shown in Figure 6-1 on page 182. The
figure shows the three regions, West, Central, and East.
181
New York
(Regional Center
East)
Seattle
CSC
Detroit
CSC
San Francisco
(Regional
Center West)
Denver
CSC
St Louis
CSC
Raleigh
CSC
Los Angeles
CSC
Austin, TX
IT Center
Executive
Region
West
Region
Austin
Region
East
182
Core
Services
Each of the regions is responsible for the operation of the local services in that
region, including customer service, baggage handling, ground services, airport
liaison, and staffing. The three regions have the same structure. The
organization chart for the central region is shown in Figure 6-3.
Region
Austin
Ground
Services
Baggage
Catering
IT
Center
Customer
Cleaning
Airport
Liaison
HelpDesk
CSC01
(Denver)
HR
Tech
Support
CSC02
(StLouis)
The core services division acts on a company wide scale. It is split into three
departments, Sales, Support, and Flights. Each of these departments has a
number of teams, as shown in Figure 6-4.
Core
Services
Sales
TAAMiles
Support
Marketing
Central IT
DataCenter
HR
Systems
HelpDesk
IT Dev
Flights
Accts
Crews
Maint.
Each team within a department has a unique business code identifying the team
and its location.
183
184
185
New York
(Regional Center
East)
Seattle
CSC
T1 (1.54Mbps)
T1 (1.54Mbps)
San Francisco
(Regional
Center West)
Detroit
CSC
Denver
CSC
T1 (1.54Mbps)
St Louis
CSC
T3 (45Mbps)
T1 (1.54Mbps)
T3 (45Mbps)
T1 (1.54Mbps)
Raleigh
CSC
T1 (1.54Mbps)
Los Angeles
CSC
Austin, TX
IT Center
Internet
T3 (45Mbps)
The location of firewalls is shown in Figure 6-8 on page 191. All external access
to the TAA network is channeled through the firewalls and routers in Austin.
There are also firewalls between the regional centers and the IT data center, as
well as between the regional centers and the CSCs.
All T1 and T3 links are leased services. TAA relies on the service provider to
ensure the necessary uptime, as agreed in the service level agreement. The
diagram in Figure 6-5 is therefore logical and does not show redundant/standby
links or triangulation of the network. TAA relies on the service provider for this.
TAA uses Lotus Notes as their e-mail system. This application is not available in
the CSC and at the Gate terminals.
186
located in every regional center. All these systems communicate with the
back-end database through the high-speed network.
The only application that has not been implemented using the WebSphere model
is the Gate Terminal Application. This application runs on a Windows NT based
network on Windows NT terminals in each CSC (that is, the CSC employees
cannot use a browser to access this application). The Gate Terminal Application
uses MQ Series calls to check the appropriate passenger data. Although a risk
assessment has highlighted this MQ area as being in need of some work,
particularly as messages can sit on queues in an unencrypted form, TAA decided
that other risks were of a higher priority.
The implementation of IBM Tivoli Access Manager for eBusiness was important
for phase one of improving security, but it also provides a platform for the future
authorization services, specifically for MQ series, using IBM Tivoli Access
Manager for Business Integration.
The Identity Management Solution will therefore have to be able to provision to
operating systems, for native MQ, and to LDAP, for the IBM Tivoli Access
Manager family, as well as the e-mail system based on Lotus Notes.
Note: In this redbook, we omit any detailed description about the IBM Tivoli
Access Manager and WebSEAL solution, because our focus is on the identity
management system. For further details, you might want to consolidate the
following Redbooks: Enterprise Security Architecture using IBM Tivoli Security
Solutions, SG24-6014, Enterprise Business Portals with IBM Tivoli Access
Manager, SG24-6556, and Enterprise Business Portals II with IBM Tivoli
Access Manager, SG24-6885.
A typical user access with WebSEAL controls looks like this:
1. A user in a CSC logs on to the Windows domain specifying his Windows user
ID and password.
187
2. He starts his Web browser and accesses a login page for a specific
application. He logs in with his application user ID and password. A credential
is used for access control by WebSEAL in the regional centers the CSC
belongs to.
3. WebSEAL accepts or denies the login. WebSEAL works as a reverse proxy
between the users Web browser and the application hosting Web server,
controlling whether a user can access the requested resource or not.
4. WebSEALs access control decisions are based on the information held
within the Access Manager Policy Server and an LDAP repository. The Policy
Server stores the access control information used by WebSEAL and
distributes access control information database replicas to all defined
WebSEAL servers, and the LDAP server has the user credential information
assessed on the users login. The Policy Server is located in the Austin site,
but WebSEAL and LDAP replica servers are made available in each regional
center. The LDAP server in Austin is the master server, which can be
modified; the LDAP replica servers are read-only.
Only the Web applications can be secured by WebSEAL using Web user
accounts, but there are other types of accounts necessary to run standard
operations, such as Windows NT/W2K, AIX, and z/OS. These accounts can only
rely on the native operating system security. That is why TAA puts the employees
under an obligation to follow additional security policies to strengthen the levels
of security, such as a periodical password change and other password policies
for all types of accounts.
At the time of implementing this security solution, TAA has started to provide new
Web based customer services (reference of a customers mileage, special
campaign information, and so on) via the Internet. A customers access to their
data is controlled by WebSEAL also.
188
Central IT Center
Central IT Center
Region Center Austin
Web
Web
Application
Application
Server
Server
WebSEAL
CSC sites
IBM
z/OS (DB2,
MQSeries)
Customer
F
I
R
E
W
A
L
L
F
I
R
E
W
A
L
L
Access
Manager
Policy
Server
AIX
WebSEAL
F
I
R
E
W
A
L
L
LDAP
Server
Internet
Internet DMZ
Production DMZ
Intranet
189
Central IT Center
Central IT Center
CSC site
WebSEAL
z/OS
(DB2,MQSeries)
Access
Manager
Policy
Server
Customer
F
I
R
E
W
A
L
L
IBM
LDAP
Master
F
I
R
E
W
A
L
L
AIX
WebSEAL
F
I
R
E
W
A
L
L
Production DMZ
F IREW AL L
Web
Web
Application
Application
Server
Server
WebSEAL
LDAP
Replica
Windows
NT/2000
Domain
AIX
Production DMZ
F IREW AL L
Internet
Internet DMZ
CSC site
Windows NT/2000
Domain
Intranet
Intranet
Ultimately, TAA will aim at segregating the data (DB2 on zOS) and systems
management zones (LDAP, Security management, and so on) from the Austin
Corporate Network. The Austin Regional Network could then further be
separated by a firewall, and be treated exactly as if it were a remote regional
center, even though it is not remote from Austin. Evolving towards this security
best practice also creates further operating gains on the system management
side of the organization and therefore user experience. One possible future for
TAA is shown in Figure 6-8 on page 191.
190
Central IT Center
Central IT Center
Web
Application
Server
IBM
F
I
R
E
W
A
L
L
Customer
AIX
F
I
R
E
W
A
L
L
z/OS
(DB2,MQSeries)
Access
Manager
Policy
Server
LDAP
Replica
WebSEAL
F
I
R
E
W
A
L
L
LDAP
Master
FIREW AL L
Web
Application
Server
AIX
WebSEAL
LDAP
Replica
FIREW AL L
Internet
Internet DMZ
CSC site
Windows NT/2000
Domain
Intranet
Undoubtedly, the security solution shown in Figure 6-7 on page 190 contributes
to strengthening the corporate security level and customer confidence using the
Internet over previous architectures. The secure implementation helps build and
maintain a positive company image, but there are other emerging problems,
particularly in the area of identity management.
191
Emerging problems
As mentioned above, all employees have several types of accounts and they
have to maintain multiple sets of user IDs and password. If an employee forgets
his password, he has to call a regional administrator in order to reset the
password. Especially after the new periodical password change policy has been
applied, more and more password reset requests come to the regional
administrators. The current password reset flow is as follows:
1. A user who wants to reset his password has to use a hardcopy request form
specifying the type of account, account name, and the reason for the reset
request.
2. His manager accepts the request form and signs for approval. In the case of
denial, the request form is returned to the requester.
3. The user faxes the form to his regional center after he gets his managers
approval.
4. An administrator resets the specific account(s) and sends an e-mail to the
user and his manager to inform him about the password reset and his new
temporary password(s).
Too many requests cause regional administrators not to reply immediately and
some employees cannot continue their work because their accounts remain
inaccessible. When a users manager is not available temporarily, the password
reset procedure gets even more delayed.
192
Besides password reset requests, there are other reasons that increase the
administrators workload. Employee fluctuation is a much more common
scenario these days, which brings newly-hired people, laid off employees, staff
changes, and so on. This increases the administrators workload even after
security solutions have been deployed and account types have been added.
Furthermore, the management interfaces for the various types of accounts on the
different platforms are not the same. Administrators have to use specific
interfaces along with account types (smitty for AIX accounts, pdadmin for LDAP
accounts, and so on). There are many complex operations and much more time
is needed for an administrator to learn how to properly use them. In complex
operations, human error is a common problem.
A similar situation prevails in the administration of customer information: requests
for creating their accounts, password reset requests, and so on. Some customers
have already contacted IT management because it takes too much time and
effort managing their account information.
As we have seen, complicated operations prevent regional administrators from
working functionally. This decreases employees and customer satisfaction and it
will lead to an inability to provide sufficient services to the users in a proper way.
TAA has now decided to implement an additional security management solution
focusing on user and identity management. The main objective in this case study
scenario is to use the Tivoli Identity Manager solution.
193
194
The decision to move ahead into the implementation phase was taken not only
as a result of the current ROI benefits, but also because of the benefits to future
business-led projects that would no longer need to code complex security
models. This would mean a more rapid deployment of the application (product or
service) and therefore the ability to set a higher margin price, because as the first
entrant to the market, there would, for a period, be no competition.
The results of the ROI study conducted for TAA amounted to a detailed 80 page
report. The executive summary and some other parts of the report are shown in
the following sections.
Executive summary
Tivoli proposes the implementation of a business impact management solution to
help the organization achieve its strategic goals. The implementation of this
solution requires an investment of $1,863,830 total three year investment.
As a result of this investment, the organization is expected to realize savings and
business benefits of $870,330 over the next twelve months, and $4,460,962 total
over the three year analysis period. Comparing these benefits to the investment,
the recommended solution has a return on investment of 139%, and net present
value (NPV) savings of $1,986,406. The initial investment is recouped with a
payback period of 15 months.
Goal 1: Reduce the waiting time for password resets for users, thus
improving user satisfaction.
Goal 2: Integrate the non-IT provisioning system (uniform, desks, phones,
and so on) with the IT user account provisioning system to ensure better
responsiveness.
IT Best Practices
195
Goal 1: TAA must become customer Web enabled. This includes the use
of automated identity management that enables new business initiatives
to be integrated without new identity solutions being required.
Goal 2: Costs of customer identity management must be driven down in
order to reduce overhead and improve margins.
To address these Strategic Business Initiatives, the following Tivoli Solutions
were selected:
IBM Tivoli Identity Manager
IBM Tivoli Access Manager for e-business (already in use)
ROI analysis
Table 6-1 compares the investment costs for the Tivoli solution with the savings
and business benefits. Financial analysis examines the projected cash flow over
three years to calculate ROI, NPV savings, and payback period.
Table 6-1 ROI analysis
ROI analysis
Initial
Year 1
Year 2
Year 3
Total
Total Adjusted
Costs
$528,000
$606,038
$359,280
$370,512
$1,863,830
Total Adjusted
Benefits
$0
$870,330
$1,659,405
$1,931,227
$4,460,962
Cumulative
Adjusted
Costs
$528,000
$1,134,038
$1,493,318
$1,863,830
Cumulative
Adjusted
Benefits
$0
$870,330
$2,529,735
$4,460,962
Net Benefit
($528,000)
$264,292
$1,300,125
$1,560,715
Cumulative
Net Benefit
($528,000)
($263,708)
$1,036,417
$2,597,132
196
$2,597,132
ROI analysis
Initial
Three Year
Net Savings
$2,597,132
Net Present
Value (NPV)
$1,986,406
Internal Rate
of Return (IRR)
121%
Return on
Investment
(ROI)
139%
Payback
Period
(Breakeven)
15 months
Year 1
Year 2
Year 3
Total
197
Important: Other factors taken into consideration for this ROI study were a
simplified risk analysis and financial measures, such as internal rate of return.
The cost of the software selected was calculated using the current IBM
Passport Advantage rules for the US. As with any Passport Advantage
Pricing figures, they are dependant upon a number of factors, including an
organizations current discount band. The software pricing for TAA should not
therefore be viewed as applicable to your organization. For a full ROI study,
including a current pricing assessment using up to date figures and metrics,
you should contact your local IBM Tivoli Account Manager.
198
Chapter 7.
199
7.1.1 Phase I
From the vision and objectives presented in 6.3, Corporate business vision and
objectives on page 193, the CEO emphasizes the following four business
requirements for phase I of the project.
All administrative operations related to user management, including user
creation, modification, deletion, and password reset, need to be executed
momentarily in order to minimize any latency times for internal users as well
as customers.
The corporate security policy should be enforced for all user accounts and
their attributes, access rights, and password rules. No user account
inconsistent with the policy should be allowed.
The user management historical data has to be available from a
corporate-wide perspective in order to verify whether the system works
according to the guidelines and policies. These logs can help understand
shortcomings and implement future improvements.
The existing system resources should be utilized as much as possible and the
new identity management system should be implemented with reasonable
new investments.
There are several hidden details behind each of the four phase I business
requirements. The functional requirements in 7.2, Functional requirements on
page 201 take a closer look at those details.
7.1.2 Phase II
Tivoli Austin Airlines has secured their e-business applications by implementing
Tivoli Access Manager to secure the Web interfaces and by implementing Phase
I of the Identity Management project to consistently manage users and their
accounts. TAA now wants to enhance this infrastructure, to gain more benefit
from it.
The business requirements for phase II are:
Further reduce the costs of administering users and their passwords. The first
Identity Manager project has made significant administration cost savings by
200
Many employees have access to systems that they should not because
they:
Changed job roles and retained access from their old job role.
They are friends with the system administrators and were granted
special access without any form of independent check or review of the
request.
They have left the company, but their accounts have not been deleted.
The main problems in this area are the increasing password reset requests
that have to be handled by the administrators (I.1-a1 in Figure 7-1 on
201
page 203) and that the management operation itself is very time consuming
(I.1-a2).
After implementing a central security solution for access control and applying
a new security policy for passwords, a user has to maintain multiple accounts
with different passwords (I.1-a11), which he has to change more frequently
than before (I.1-a12). This, as a result, causes too many password reset
requests. If a user has a single password for his multiple accounts (A),
password maintenance becomes easier.
Not all administrative tasks need to be executed by the same level of
administrator. Many tasks can be delegated according their security level
(I.1-a13). For instance, password resets do not require a high security
clearance as long as we can see its operation flow within the logs. A
password reset can be delegated to people other than administrators, even to
a user itself. Delegation is a contribution to alleviate the administrative
workload (B).
User management operations themselves are time consuming and skill
intensive (I.1-a2) because different management interfaces necessary for
each type of account are hard to handle and need much time for
administrators to master (I.1-a21). Administrative productivity could be
enhanced by utilizing a common interface to manage different types of
accounts centrally (D). A user friendly interface (C) would be an additional
relief.
Another major problem lies in the manual administrative operations (I.1-a22);
often, recovery work is needed for operational mistakes (I.1-a23). When
accounts are created or modified, it is convenient for attribute values common
to all or some of the accounts to be entered automatically (E), and it is also
convenient if there is an automatic function to verify values that are entered
by manual or automatic operations (F). Adding to it, it is preferable that some
business processes are automated, such as sending an e-mail to a user or to
a manager for approval (G).
The final problem of objective 1 is founded in the hardcopy request forms. It
would be desirable for a series of operations (from creation of request form,
through operation of approval, to notification of requests completed) to be
handled digitally and integrated into the user management system (H).
202
OBJECTIVE I.1:
Identity management should be
executed momentarily and
correctly.
REASON I.1-a:
Administrators can not fulfil tasks
in proper time.
I.1-a1:
Too many password reset
requests to administrators.
I.1-a11:
A user has many different
passwords for his acounts.
I.1-a12:
Passwords should be changed
periodically for the company's
security policy.
I.1-a13:
Almost all administrative tasks
are executed by administrators
with any security level.
I.1-a2:
It is time consuming to manually
manage user data or to execute
requests.
Functional
requirements
A : A single password for
user's accounts.
B : Delegate low-security
administration tasks to
others including end
users.
C : User-frendly interface.
I.1-a21:
Different interfaces for every
type of accounts.
D : Central common
interface.
I.1-a22:
Values are entered manually
by administrators.
I.1-a23
Often, operations need to be
redone because of mistakes.
F : Value checking
function is required.
G : Automate business
processes.
REASON I.1-b:
It may take more time to get a
manager's approval.
I.1-b1:
When manager is not in the
office, he can not approve it.
I.1-b11:
Hard copy request form.
H : Integrate business
processes into user
administration system.
203
OBJECTIVE I.2: The corporate security policy should be enforced for all
accounts.
In the current system, account information is scattered all over the corporate
systems (I.3-a). It is not easy to understand how many user accounts are
being used in the enterprise, at what rate they are growing, and when the
system should be expanded due to increasing account numbers, and so on.
The information is indispensable for verifying the current system and for
making future plans to expand it. A central logging system can provide this
information (L).
OBJECTIVE I.4: The existing system resources should be utilized and new
implementation should be reasonable.
204
OBJECTIVE I.2:
The corporate security policy
should be enforced for all
accounts.
Functional
requirements
I.2-a1:
Every type of account has a
different way of definition.
I : Centrally cross-wide
user management.
I.2-a2:
Manual operations may cause
invalid values.
V2-a3:
No value-checking function.
K : Value checking
functions are needed.
OBJECTIVE I.3:
Corporate-wide user management
data has to be available for
verification and future
improvements.
REASON I.3-a:
User information is scattered over
the enterprise, such as on every
LDAP server, every AIX machine,
and so on.
I.3-a1:
There is no integrated logging
system.
OBJECTIVE I.4:
The existing system resources should
be utilized and new implementations
should be reasonable.
REASON I.4-a:
Existing investments in Tivoli
Framework system, WebSphere
solution, and Access Manager for
e-business system.
M : Integration with
existing systems.
Figure 7-2 TAA functional requirements part I.2, I.3, and I.4
205
7.2.2 Phase II
For phase II of the project, we extracted the functional requirements by using an
objective --- reason tree, as we did in phase I. We have not included the
detailed tree, but the results are shown below
OBJECTIVE II.1: Reduce administrative costs:
Further reduce the costs of administering users and their passwords. Phase I
of the Identity Manager project has made significant administration cost
savings with the tools used to manage employees personal information and
passwords. The CEO is keen to gain further cost savings by reducing the
amount of work the administrators still have to do. The areas identified where
savings could be made include:
The effort required to manually create accounts when a person joins the
company.
The effort required to add new accounts (and remove old accounts) when
an employee changes job roles.
The functional requirements derived from this business requirement are listed
in Table 7-1 on page 207.
206
Requirement
Title
Comment
II.1A
II.1B
II.1C
II.1D
II.1E
Improve audit compliance. TAA recently had an external audit performed and
a number of areas were seen to be lacking:
Many employees have access to systems that they should not because
they:
Moved job roles and retained access from their old job role.
They are friends with the system administrators and were granted
special access without an form of independent check or review of the
request.
They have left the company, but their accounts have not been deleted.
This is addressed with the first implementation of Identity Manager.
207
Requirement
Title
Comment
II.2A
II.2B
II.2C
II.2D
II.2E
Requirement
Title
Comment
208
Requirement
Title
Comment
209
with Identity Manager software in this book, we do not look in detail at all of these
constraints.
As all the systems have different ways of constructing IDs, tracking a user
within a heterogeneous IT centric system is difficult.
A central repository able to match IDs to users quickly allows investigations
and control in an efficient way.
When combining this with a central auditing and reporting system, it can
consolidate information easily per employee.
Provide system independent capabilities
210
Strictly speaking, the next few design objectives are not solely within the scope
of identity management alone, but are examples of Security Design Objectives
that have an impact on identity management.
Access Control
211
Phase I
In this section, we define the Security Design Objectives that are specific to
phase I of the TAA project.
Identity management
All accounts related to a user are managed in the central repository.
When users change location in an organization, all of their accounts are
moved to proper machines and their access rights are changed. In order to
simplify this operation, users are made into groups with the same
organization or common attributes, and moving group membership gives
them the necessary accounts and access rights.
User management tasks are delegated to other administrators, managers, or
users in response to the security level of a management task. For example,
administrators of one regional center can manage only users in the region,
not users in other regions. A manager of one division can do some
administrative task on users in that division. Some operations, such as
password reset, are dedicated to a user.
If the created user accounts have common attribute values, those values are
entered automatically upon creation by an attached default policy in order to
save time and prevent human error. All values of the account attributes can
be checked by validation policies if necessary (this can also be done in phase
II).
Identity management can be done by using a common ubiquitous interface,
which can be accessed through a Web browser (hereafter known as the Web
interface). Administrators, managers, and all users can use it for user
management.
Password management
Users can have a single password for all of their accounts, or they can have
different passwords for multiple accounts.
When a user changes the single password for all the accounts, the user uses
the Web interface to do it. User who are not administrators are only allowed to
access their own information.
Users have to log on to the Windows domain before accessing the Web
interface. If their Windows password expires, they change the password
locally, which cause inconsistency between the accounts. To avoid this
situation, a password change operated locally on a Windows machine
synchronizes all the other accounts passwords (this can also be done in
Phase II).
Administrators can reset the passwords of the users they manage.
212
When users forget their passwords, they can reset them through the Web
interface. The user is authenticated by answering some confidential
questions. The users define the answers in advance.
Policy management
When a user sets the password for his accounts using the Web interface, the
password strength is checked against the corporate security policy and OS
and application specific rules, such as length of passwords, the number of
numeric letters included, and so on.
When a new user or a new account is created, a certain number of common
values between users are entered automatically by the default policy.
When a new user or account is created, or an existing user or account is
modified, the entered values are checked against the validation policy.
Audit management
All operations for user management are logged centrally. Gathered log entries
are extracted along with what we want to see.
Phase II
In this section, we define the Security Design Objectives specific to phase II of
the TAA project. They build on phase I objectives above, and in addition, there
are also a number of non-functional objectives that relate to the project.
Identity Management
The additional Identity Management objectives for phase II are:
When a person is employed, they are added to the Identity Manager system.
New users should be created with minimal input from the administrators. The
design must allow for automation, in the form of a default policy that is used to
reduce the number of attributes that need to be specified when creating a new
user. All other required attributes are derived automatically based on the
entered data. This derivation of attributes is based on common standard
attributes, which may include department, team, location, and job code.
When defining a new user to Identity Manager, the accounts and access that
the user needs to do their work should be automatically created. The design
must allow for the automation of account creation and OS and application
213
group membership. This is done by associating the accounts for a new user
with the appropriate OS and application groups and profiles. The accounts
and access rights each user should receive may be based on their job code,
department, and team.
When a user changes their job role and/or team, their access requirements
change. The design must allow for the automatic removal of accounts
associated with the old job role and creation of accounts associated with the
new job role. Where an account is common to both old and new job roles, the
design must ensure that the account is carried over.
Password management
The first Identity Management project had a number of password management
related design objectives. The additional objectives for this project are:
The design should impose corporate security policy password standards to all
identities (users and accounts) managed by the Identity Manager solution.
The design should incorporate integration with the Windows NT password
integration mechanism available with Identity Manager 4.4.
Policy management
The first Identity Management project had a number of policy management
related design objectives, the additional objectives for this project are:
The design should allow for the application of security policy and the
subsequent modification of policy if the company decides to amend their
policy.
The application of this policy should be transparent to the user and only
impact the maintenance of the solution.
214
Audit management
There were no audit management related objectives for the first project. In this
project:
The design must address the generation of audit reports, including how the
report is defined, when and how it is run, and where the output is sent.
It should also address the maintenance of the auditing subsystem.
Standards to be used
Where possible, the design must comply with standards in order to make
subsequent implementation easier, more secure, and audit compliant. Further
details on policies and standards can be found in Appendix B, Corporate policy
and standards on page 377.
215
Identify the systems and applications that an account is required on. This
defines the auto-account generation mapping for each job role.
For each of these accounts, identify the account attributes and any logic
that can be applied to automatically generate the attributes. This defines
the default policy to be applied to the accounts in a job role.
For each of these accounts, identify the OS and application groups and
profiles that the account should be a member of. This defines the group
allocation policy for the job role.
Identify the approval requirements for people in that job role. Who should
approve changes? This defines the approval model for the job role.
Review the existing organization structure and map the job roles to teams and
departments. This identifies any patterns that can be applied to auto account
generation and policy that may simplify the design.
Review the departments and teams and define each as customer facing or
non-customer facing. This is used for the provisioning workflow design.
Review the existing audit compliance procedures and map to Identity
Manager. Identify the reporting required of the product.
Once these tasks have been performed and the information gathered, the
solution can be designed.
216
The remaining sections of this chapter present the design solution for this
project.
217
Exisiting Environment
General IT Systems
New Environment
End Users
Reverse Proxy
Supervisors
Administrators
Centralized Authentication
Browsers
W ebSEAL
Web User Interface
LDAP (Replica)
LDAP (Master)
LDAP
Database
W orkflow
Database
O/S
Applications
RDBMS
User Repositories
Service
Legend
LDAP (Master)
Authentication
flows
Applications
Data
Flows
Provisioning Agents
O/S
RDBMS
LDAP
Replication
Menu Bar
218
This area contains the tabs that allow a view of IBM Tivoli
Identity manager to be displayed. These are HOME, MY
ORGANIZATION, PROVISIONING, SEARCH, REPORT,
CONFIGURATION, and HELP.
Action buttons
Main Area
As you can see, this is a Web browser interface that can be customized. End
users therefore do not need training. A familiarization period or process is all that
is required.
Menu Bar
Action
Buttons
Application
The IBM Tivoli Identity Manager application is, in simple terms, responsible for
tying together the other components (Web user interface, Workflow database,
219
LDAP directory, and its service layers). Based upon WebSphere Application
Server, the application provides all the functionality required for an identity
management solution and presents this to the user through the graphical user
interface (Web server and Web browser). Changes to user information are
pushed/pulled to and from the LDAP directory by the application layer, and other
operational information, such as workflow to do lists, are exchanged with the
database. Communication with the target platforms is handled through the
service layer under control of the application.
LDAP
There are three types of LDAP directory shown in the logical component diagram
(Figure 7-3 on page 218). In that diagram, they are labelled LDAP Database,
LDAP (Master), and LDAP (Replica). Both the LDAP (Master) and the LDAP
(Replica) are part of the logical components within the IBM Tivoli Access
Manager architecture deployed at TAA. For the purposes of this design, the
LDAP (Master) can be regarded as a user repository, and the LDAP (Replica) as
out of scope for Identity Manager, as it is controlled entirely by IBM Tivoli Access
Manager. The component labelled LDAP Database is the LDAP directory used
by the application layer of IBM Tivoli Identity Manager to store all user repository
data. This is not the only possible architecture, particularly if IBM Directory
Integrator were also in the solution, but for a medium sized organization without
metadirectory functionality, it is the most elegant and therefore the most cost
effective.
Note: This discussion of LDAP directories holds true for IBM Tivoli Identity
Manager Version 4.4.x. It is Tivolis stated intention to increase the existing
level of integration between IBM Tivoli Identity Manager and IBM Tivoli Access
Manager and also between IBM Tivoli Identity Manager and IBM Directory
Integrator in the future. This and some other elements of design and planning
should therefore be scrutinized if IBM Tivoli Identity Manager Version 4.5 or
later is being considered.
Database
Although it would be possible to hold all information and data needed for the
operation of the application layer within an LDAP structure, LDAP directories are
designed to be read-intensive data structures. Other information, particularly that
which is write-intensive, is therefore placed directly into this database so that it is
available in a timely fashion, and also so that it does not adversely affect the
performance of the LDAP directory.
Service
The service layer is the layer that the application layer uses to interface with the
agents and therefore the user repositories within the identity management
220
domain. While this area is vital for the planned IBM Tivoli Identity Manager
implementation, it is also a key integration point with IBM Directory Integrator.
TAA could already use this layer to integrate with IBM Directory Integrator using
unpublished APIs, but has decided to create a future meta-directory project to
allow for identity management to be implemented first. This is sensible, as it
allows for the deployment of IBM Directory Integrator, through the service layer,
to create a true Meta-directory onto a well managed environment, thus speeding
up deployment and reducing time to value.
Note: It is Tivolis stated intention to review and change (if necessary) the
un-published set of APIs. These will be published to allow the integration
between IBM Tivoli Identity Manager and IBM Directory Integrator to be fully
supported.
Agents
Agents receive their instructions from the service layer and are responsible for
translating add, change, delete, and other requests into actions on the target
repository.
TAA has decided to deploy agents for the most important user repositories rather
than 100% coverage in the first instance. This allows them to gain as much
advantage as possible (both in terms of ROI and improved security) early in the
project. It is possible to deploy to any repository, even those not out of the box,
through the use of a number of techniques. TAA has decided to review the
progress after six months in production have passed, to decide on whether and
how to implement the remaining user repositories (for example, those in bespoke
applications). Because of the existing involvement of IBM Tivoli Access Manager,
the use of IBM Tivoli Identity Manager, and the possible future use of IBM
Directory Integrator, the choice of various agents and methods is wider than in
an Identity Manager-only environment.
Authentication
Once again, because of the involvement of IBM Tivoli Access Manager for
e-business, the authentication process is slightly different from the one normally
used in a stand-alone deployment of IBM Tivoli Identity Manager. Instead of a
direct connection to the Web user interface and authentication against the LDAP
database component, the request to the Web user interface is intercepted by the
centralized authentication component. This is, in practice, a combination of
firewall and local Web server. The reverse proxy component then authenticates
the user against the security policy server and its underlying LDAP (replica). If
the authentication is successful, a certificate is generated, and the reverse proxy
uses this to encrypt communications and handle sessions between itself and the
user and between itself and the requested resource (in this case, the Web user
221
interface to IBM Tivoli Identity Manager). The use of IBM Tivoli Access Manager
strengthens the underlying security model, and it is also important in a
deployment where delegated identity management is opened to administrators
outside of the control of TAA, such as partner organizations.
Single server
Despite being called single server, this model consists of two servers. The first
contains the LDAP database on DB2 while the remainder of the components are
installed on the second server. It is called single server because the version of
WebSphere that is loaded onto the second server is the single server edition.
Cluster
In contrast to the single server layout, this model contains a number of servers,
and is based upon WebSphere servers in a cluster with one or more underlying
directory/database servers.
TAA has selected the single server model and their selection is based on a
number of considerations:
Lower cost: hardware and deployment.
High availability requirements are less than those for other components of the
security architecture (for example, WebSEAL).
Future inclusion of IBM Directory Integrator may warrant a review of the
model.
The customer registration load is small enough when compared with internal
identity management requirements.
Directory server
The following logical components are placed on this server:
LDAP database
222
Agents
Most agents are usually placed on the same platform as the user repository. This
does not necessarily have to be the case, and within the TAA environment, the
Windows NT PDC agent is a good example. Within TAA, the Windows NT agent
can be placed so as to be tolerant of promotion of the BDC to replace a failed
PDC.
223
Intranet (CSC)
Internet
Internet DMZ
Central IT Center
Production
DMZ (Region)
Uncontrolled
Zone
Controlled
Zone
Trusted
Zone
Restricted
Zone
Restricted
Zone
Internet
Internet DMZ
Intranet
Production
Network
Management
Network
LESS SECURE
MORE SECURE
Figure 7-5 Current TAA network zones mapped to network security model
Communication protocols
The following ways of communication between components is used:
End user (Web browser) to WebSEAL reverse proxy: HTTP, HTTPS, and
HTML
WebSEAL reverse proxy to Identity Manager application: HTTP, HTTPS, and
HTML
Application to LDAP Directory: TCP/IP and LDAP (SSL)
Application to agents: HTTP, HTTPS, and DAML (DARPA Agent Markup
Language)
The IBM Tivoli Identity Manager Tivoli Access Manager Agent for Windows
Installation Guide V4.4, SC32-1165 also mentions the use of ftp. In the interests
of security, TAA has decided to follow the recommendations in the guide and not
use ftp. IBM Directory Integrator also allows the use of ftp. TAA has determined
that if it makes sense to use ftp at a later stage, then they will consider securing
this protocol using the IBM Tivoli Access Manager for Operating Systems. For
the time being, ftp is not being used for the project.
Firewall settings
Within the current TAA environment, application communication traversing
firewalls is largely under the control of IBM Tivoli Access Manager, because it is
based on HTTP and HTTPS. Access Manager WebSEAL acts as a single point
of authentication and authorization for the IBM Tivoli Identity Manager Web user
interface. As the placement of both the Identity Manager server and the Directory
224
server is within the central IT Center, all other communication crossing firewall
boundaries use the HTTP/HTTPS ports already open for use by WebSEAL.
The final physical architecture is depicted in Figure 7-6.
Central IT Center
Central IT Center
WebSEAL
Access
Manager
Policy
Server
Customer
F
I
R
E
W
A
L
L
Identity
Manager
Server
CSC site
Directory
Server
z/OS
(DB2,MQSeries)
WebSEAL
IBM
LDAP
Master
F
I
R
E
W
A
L
L
F
I
R
E
W
A
L
L
Production DMZ
FIREWALL
Web
Web
Application
Application
Server
Server
WebSEAL
LDAP
Replica
Windows
NT/2000
Domain
AIX
Production DMZ
FIREWALL
Internet
Internet DMZ
CSC site
Windows NT/2000
Domain
Intranet
Intranet
Figure 7-6 Final physical positioning of the two identity management servers
225
226
Chapter 8.
Technical implementation:
phase I
This chapter describes several aspects of the first phase implementation of IBM
Tivoli Identity Manager at Tivoli Austin Airlines. It discusses the basic
implementation of the following IBM Tivoli Identity Manager components or
aspects:
Organization tree
Services
Policies
Provisioning policies
Identity feed and HR synchronization
Administrator and user access
227
These are the basic issues that are addressed throughout this chapter, and in
some cases, new constraints and requirements are presented in each section.
Note: The LDAP used by IBM Tivoli Identity Manager has to be secured using
proper access control implementation to avoid unwanted access to some of
the sensitive information it contains.
228
Once the software components are installed, the following basic configuration
has to be done:
Test connectivity to all agents
Configure IBM Tivoli Identity Manager for challenge response
Ensure that all components are working
Name case is not relevant, since all the objects are stored in the LDAP directory,
which is case insensitive. However the same schema ideally should be used
throughout the entire solution.
In TAAs case, the name is composed in the following form:
[type(subtype)]+orgtree+name
The type(subtype) is a prefix that identifies the object type and in some cases the
subtype (used mostly for services). Some examples of prefixes are shown in
Table 8-1 on page 230. The next part (orgtree) should allow readers to determine
roughly where the objects are placed in the organization tree.
229
Object
serv[type]_
pp_
Provisioning policy
role_
Role
pwp_
Password policy
idp_
Identity policy
ssp_
aci_
wf_
Workflow
ad_
Administrative domain
ig_
pwp_basic
role_center_CSCUser
Not all objects have a description that can be used alongside the name, so in
some cases it may be necessary to add a more descriptive name after the object
prefix. Also, identities should be named according to the way administrators
expect to see the information; normally, the identities names will be adequate.
230
8.3.1 Requirements
An organization tree normally exists in any organization. It should be considered
the first candidate; however, it is not necessarily the best design. Management
and resource access is frequently handled geographically. So an organization
tree based on the locations may be more useful.
The choice between these two tree designs depend on some other important
information:
Which user should have access to each system?
Local administration?
Central administration?
Business unit specific management?
This information should allow designers to determine which tree should be used
to manage the system. Management is normally more relevant for the tree
design.
Access control information defines how users and administrators can view and
manage information. Understanding the design alternatives for each of the
objects above is critical for a good organization tree design. The policies have a
231
resolution scope: they can either affect one container in the tree or that container
and all its children.
In some cases, it is interesting to create services in an Admin Domain. The
Admin Domain are special containers: they can hold anything, just like other
regular containers. The main difference is that the domain may have several
administrators while a regular container can only have one supervisor.
There are two basic ways to design the organization tree: one is based on
business units or division, and the other is based on location. In TAAs case, the
resources utilization and administration is based on locations, so the most
natural approach is to have a location based tree. Figure 8-1 shows the proposed
organization tree.
Corp
HQ
W est
RC
LA
CSC
Center
RC
Seattle
CSC
Denver
CSC
East
RC
St Louis
CSC
Detroit
CSC
Raleigh
CSC
Corporate headquarters is placed in the same level as the regional offices. The
reason for this is that, from a provisioning perspective, they are different, and
policies should be applied to them in specific ways.
232
Identities are placed in each location according to the persons function and
location. That means CSC containers hold all people of that CSC. Region
containers have the regional staff. Flight crew are in the Corp structure.
Figure 8-2 shows the initial organization tree based on the tree shown in
Figure 8-1 on page 232. Notice that the order is alphabetical. This could be
solved by placing a prefix to order the field, but there is little benefit from this
action. There is also an Administrative Domain (AD_CorpHQ) that was not part
of the original organization tree; this domain was added because of the services
and service selection policies (see 8.4, Services on page 233 for more detail).
8.4 Services
Services define what agents are being managed by IBM Tivoli Identity Manager.
Each service profile (or agent type) has its own characteristics, and can require
specific parameters.
233
8.4.1 Requirements
In order to create a good service design, one must know the answers to the
following questions:
What are the target systems?
While most services are unique in an organization, some systems have users
defined according to location. For example, each site may have its own
Windows domain, and users should be provisioned to the site they work in.
How are the services administrated?
234
Figure 8-3 shows an organization tree with users and services on it. Using the
ServiceSearch.searchForClosestToPerson function, each user would be
provisioned as follows:
Joe
Doris
Robert
Vicky
Company
Organization
HQ
Organization Unit
Service_A
DataCenter
Admin Domain
Sales
Organization Unit
Service_B
Manufacturing
Organization Unit
Service_C
Joe
Doris
Assembly
Organization Unit
Components
Organization Unit
Service_D
Robert
Vicky
Notice that there is an Admin Domain in the organization tree. This domain is a
container for services, but is not in the path for any user, so Service_B can only
be provisioned if the service selection script uses other criteria to select it. This
allows the isolation of services from the service selection policy.
Service placement
A service can be placed anywhere in the organization tree; this section describes
some of the alternatives. There is no reason to limit your design to those shown
here.
235
236
Each of the region centers and headquarters have there own local Windows NT
Domain and AIX system. For these systems, users should be provisioned to the
closest system.
Administration is done by local administrators on the local services. This requires
proper controls be placed on the local resources.
These requirements resulted in a resource placement, as shown in Figure 8-4.
Corp
HQ
West
RC
Center
RC
East
RC
Data Center
Admin Domain
4
1
RACF
LA
CSC
Denver
CSC
Detroit
CSC
Seatle
CSC
StLouis
CSC
Raleigh
CSC
Notes
Windows
NT
AIX
IBM Tivoli
Access
Manager
IBM Tivoli
Identity
Manager
Each of the regional centers and the corporate headquarters have their AIX and
Windows NT services. An administration domain is being used to contain all the
global services used. This allows for simple service selection policies to be used.
It also allows the local administrator to handle resources at their location.
8.5 Policies
The various policies in IBM Tivoli Identity Manager define how identities are
mapped to user accounts and their passwords. Policies control default and
required values for account attributes. There are three types of policies:
Identity policy
237
Password policy
8.5.1 Requirements
Policies normally derive from the customers security policy and procedures.
Password policies are probably contained in the security policy or are known by
the systems administrators.
Identity policies are a more complex issue. If the customer has some procedures
in place for creating user accounts, they may hint to what is the way user ID are
created. However, the environments current state is frequently a result of years
of evolution, where user IDs have been changing and there are several
standards within the same platform.
IBM Tivoli Identity Manager can handle either manual free form identities or
automated generation. However, automation becomes more difficult if there is no
standard way of generating a user ID. Thus, defining acceptable identity policies
is critical for better results.
Single
Sub-tree
Affect the current node and all the child nodes, until a new sub-tree
policy is found.
Figure 8-5 on page 239 shows an organization tree with some policies and
services on it. For simplicity these policies affect all services. Policy_A affects the
entire tree since it is a sub-tree scope policy at the top level. At ou=West there is
238
another policy that has a single scope. This means that Service_A is ruled by
Policy_B (the one on its node) and Service_B is ruled by Policy_A. If Policy_B
had a sub-tree scope, both services would be affected by it.
TAA
Organization
CorpHQ
OU
West
OU
Service_A
Seattle
OU
Mike
LA
OU
Service_B
Figure 8-5 Policies scope example
The simplest way to define the policies is to have the organization wide policies
on top and, if necessary, use other policies on the appropriate levels. Notice also
that the policies apply to services and not to identities. Thus, a policy on the
ou=CorpHQ node would have no effect on the services.
Password policies
One immediate benefit of using IBM Tivoli Identity Management is that the
customer can define global password policies for all systems. This requires little
effort and can be a great improvement to the overall security of the organization.
The key issue for designing these policies is its placement. Set up a organization
wide policy on top (even if it is not very restrictive), and then apply specialized
policies where needed.
Identity policies
Identity policies are very important when automation is used frequently, since
they define the user ID in the targets. When all operations are done manually,
239
they are not needed. However, even in these cases, identity policies provide a
default value for the user, which avoids manual inputting.
When creating these policies, the first issue at hand is to discover all the policies
in the environment. As a next step, normalization is important; it may not be
necessary or possible to achieve one single policy. Once all of them are mapped,
it is a question of defining them on the organization tree and writing the
JavaScript.
While having custom policies is not necessary, not having them makes automatic
provisioning much more difficult (since it is not possible to be fully automatic).
To achieve these goals, they are defining two basic policies at the top level,
which allow them to automate their processes.
Identity policy
Since TAA wants to automate everything possible eventually, they would like to
have policies in place to select the identities on the systems right from the
beginning.
All employees have unique serial numbers used in several applications. On UNIX
and Windows NT systems, there is a large number of users that have chosen
their own names. Newer accounts are always created using a unique name
based on the serial number as part of their build.
TAA has been using this identity pattern in the zOS accounts, and they want to
make it standard in all systems (that allow it). All user IDs have a prefix of the
letter a followed by the employees serial number, for example, a056491.
Customer accounts are part of the account system. For the customers, the user
ID, on the only system they get access to, is their e-mail address.
240
The identity policy used has to be able to distinguish the user and build the name
based on the proper criteria. Example 8-1 shows the JavaScript used in the
identity policy.
Example 8-1 TAAs identity policy
function createIdentity()
{
var jobcode = subject.getProperty("title");
var identity;
var f;
if(jobcode != null && jobcode.length!= 0)
jobcode=jobcode[0];
else
jobcode=null;
if(jobcode == null || jobcode =="JC_CUSTOMER") {
/* This is a customer */
f=subject.getProperty("mail");
if(f != null && f.length != 0)
identity=f[0];
else
return "ERROR no email found";
} else {
/* This is an employee */
f=subject.getProperty("employeeNumber");
if(f != null && f.length != 0)
identity= "a"+f[0];
else
return "ERROR should have emplotyye number";
}
return identity;
}
return createIdentity();
Password policy
TAA decided for a basic and simple password policy that is acceptable on all
systems and yields a reasonable level of security without causing too much
trouble with the end users. The basic requirements are the following:
Have both letters and numbers (minimum of two of each)
Minimum size of six characters
Maximum size of eight characters (to avoid problems with platforms that limit
the size)
Minimum of five unique characters
241
These are the initial values for all platforms. TAA may revise these policies for
specific platforms in the future. This policy alone ensures that better passwords
are used throughout the IT resources.
The membership defines which organizational roles are allowed to use this
provisioning policy.
Entitlements
Defines what the identities being provisioned by this policy will have on the
system. This includes information on what are the default and allowed values
for attributes on the system.
Figure 8-6 on page 243 shows the typical components of a provisioning policy.
The roles referenced by this policy are depicted on the right side of the picture
and the target systems on the left side. In the middle are the provisioning policy
and a service selection policy.
242
Provisioning Policy
Service
AIX
Roles
Tester
values
Default and allowed
De
fau
lt a
nd
all
ow
ed
va
lue
Service
s
Selection
RACF
Provisioning Policy
Priority 1000
taff
NT
co
Ge
Developer
s
ps :
ro u
,G
e
alu
sV
NT
Policy
When defining a policy, there are two special roles that can be used:
All
This role applies to every identity in the IBM Tivoli Identity Manager.
Other
This role applies to any identity that has not been used previously in
any provisioning policy for that same service (see Provisioning
policy joins on page 243).
Another element shown on Figure 8-6 is a service selection policy. These are
policies that determine which service will be used for a given identity. They allow
an identitys account to be placed in different services, depending on some
business or administrative purpose. As an example, if each location has an AIX
server, user accounts can be created on the server nearest to the user. This is
achieved using a service selection policy.
243
Figure 8-7 shows three provisioning policies that apply to the same service. Each
policy has a different priority. Two attributes are determined by each policy
(shown on the lines from the policies to the service: Login script and Groups. On
the configuration for these attributes, it is stated that Groups are determined by
Union and that Login script is determined by Priority.
Users
Roles
Provisioning Policy
Developer
Developer
Provisioning Policy
Priority 1000
Manager
Manager
Provisioning Policy
Priority 2000
Other
Other
Provisioning Policy
Priority 50
Service
Mike
Ana
Chris
Three users are being provisioned by these policies to the target system. Chris is
a member of the Other group because, in regards to this service, he is not a
member of any other role. The attributes that each user gets on the systems are
shown in Table 8-2.
Table 8-2 Result of the provisioning policy join
Identity
Login script
Join directive: Priority
Groups
Join directive: Union
Mike
user.cmd
Developer provisioning policy
Developer
Developer provisioning policy
Ana
manager.cmd
Both Developer and Manager
polices apply, but Manager has a
higher priority
Developer
Developer provisioning policy
Manager
Manager provisioning policy
Chris
guest.cmd
Other provisioning policy
Guest
Other provisioning policy.
If the membership in the Other provisioning policy changed to All, all of the
accounts would be members of the Guest group.
244
8.6.1 Requirements
The simplest concept of a provisioning policy is mapping roles to services (target
systems). So to create the provisioning policies, one must know:
What are the services?
What are the roles?
These are simple questions; however, they are normally difficult to answer.
Unless the organization is highly process oriented and well documented, this
information is not readily available. Trying to determine all this information may
be time consuming, so it may be simpler to determine the high level roles,
services, and access information and progressively refine this information.
Organization tree
The position of the service and the policy will influence the options of the
provisioning policy. A provisioning policy can only provision to services that are
within its resolution scope. This means that a policy that affects only a single
level of the tree can only provision to services on that level, while a policy with a
sub-tree scope can provision to all services from that level and below.
Figure 8-8 on page 246 shows an organization tree with services and policies
attached to it. The service resolution scope implies that each policy can affect the
following services:
Policy_A
245
Policy_B
Policy_C
TAA
Organization
CorpHQ
OU
Service_A
Policy_A
(Scope Sub-tree)
Policy_B
(Scope sub-tree)
Policy_C
(Scope single)
West
OU
Service_B
Seattle
OU
Service_C
LA
OU
Service_D
The position of the identities in the organization tree do not restrict which
provisioning policies affect that user. So an identity defined in CorpHQ can be
provisioned to Service_C, via either Policy_A or Policy_B, if the policies have
that identity in their membership definitions.
For this reason, the policies could be placed anywhere on the tree and a simple
approach would be to place them all at the top level. However, it may be
interesting to have different administrators controlling the policies, so having the
services and policies in different levels may be required in order to define the
proper access rights (see 8.8, Administrator and user access on page 260).
Organizational roles
While provisioning policies can be designed without organizational roles, these
policies will be extremely broad in reach and can potentially cause security
problems in the environment. Broad scope provisioning policies should be
progressively reduced in scope using roles to defined what rights identities get
on the resources.
246
Role Based Access Control is not a primary goal of this phase of the
implementation, so there is no need to create many roles. Table 8-3 shows all the
roles defined in this phase, including the definition rule. The manager role was
created to insure that managers have the proper access to IBM Tivoli Identity
Manager.
Table 8-3 TAAs basic roles
Role
Definition rule
role_employee
(&(!(title=JC_CUSTOMER))
(title=JC_*))
role_customer
(|(!(title=*)) (title=JC_CUSTOMER))
role_manager
(title=JC_*MNG*)
Tip: The definition rules are nothing but LDAP search filters, as defined by
RFC 2254 The String Representation of LDAP Search Filters.
247
Provisioning policy
Membership
Entitlements
pp_employee_access
role_employee
RACF
Notes
IBM Tivoli Access Manager
(member of employee group)
pp_customer
role_customer
pp_itim_manager
role_manager
pp_basic
All
pp_local_systems
role_employee
In this phase, most of the provisioning parameters are not set in the provisioning
policies. For some of the roles, the groups on the target systems have been set.
The roles on this implementation are used to keep customers from being
deployed to the wrong systems.
The last provisioning policy, pp_local_systems provisions users to the system
nearest to them. This is mostly used to provision CSC users to the Windows NT
domains and AIX machine in their Region. Identities in the corporate
headquarters must be provisioned to the local domain. Example 8-2 on page 249
shows the service selection policy that assign the appropriate service for that
user. This policy works effectively because of the way services where created
248
(see 8.4, Services on page 233), since each organization unit has its own
services defined for the local user.
Example 8-2 TAAs basic service selection policy
function selectService() {
var serviceInstance = null;
serviceInstance = ServiceSearch.searchForClosestToPerson(subject)[0];
return serviceInstance;
}
return selectService();
JNDI
DSML
Tip: Although DSML feeds cannot delete any identities, you can suspend
identities with them.
Identity feeds are needed in two different phases. The first one is the initial load
of identities. This is required to load all the users into IBM Tivoli Identity Manager.
The second part is an operational feed, which keeps the provisioning system in
synchronization with the authoritative source of identities.
249
8.7.1 Requirements
The first requirement for any design is finding the authoritative source for the
identities. Probably this will lead to the Human Resources (HR) system, but there
may be more sources, such as systems that manage:
Business partners
Contractors
Customers (including self-provisioning tools)
In some situations, many sources may be needed to handle a single identity. For
example, HR gives basic identity information, but contact data comes from
another system. In these cases, a solution such as IBM Directory Integrator can
help the solution. It can help get the bits of information from the various sources
and output them in the proper format for the identity feed.
Basic format
A basic entry DSML identity feed is provided in Example 8-3 on page 251. It
contains all the elements necessary for a feed.
250
Some of the lines in the example have some comments that are addressed here:
1. This is a requirement for the XML parser; always use this prefix to ensure
proper parsing of the entire file.
2. This tag defines the document as a DSML document. It is the top level of the
document.
3. This tag defines the document as a set of directory entries; DSML standard
allows the classes of a directory to be defined in the file. This is not needed or
recommended in an identity feed.
4. This tag represents the start of an entry (identity). Each entry must have a
DN; this is used when searching for an existing identity in the directory. If the
identity already exists in the directory, the data in the entry will update those
in the directory. Otherwise, a new entry is created.
5. This part of the entry defines what object class a new entry will have in the
directory. This is needed when adding a user to the directory, but is optional
when updating its information.
6. This line shows a regular attribute; however, in this case, it is also the
attribute defined in the dn of the entry tag. In order to avoid problems, the field
in the dn entry must be defined in the attributes of the entry.
Comments 4 and 6 above refer to an important aspect of the identity feed
procedure. Every object in IBM Tivoli Identity Manager has a unique ID
generated when it is created, including persons. This ID is used as the objects
LDAP distinguished name, and allows all attributes of an identity to be changed.
251
However, this ID is unknown to external users, so the identity feed must have
another way to determine the distinguished name for an entry.
The identity feed distinguished name can be defined to any value and will be
used to check if the entry already exists in the LDAP and to link identities to their
supervisors. However, in order for this to work, whatever is used in the entry as a
dn must also be defined as an attribute when the identity is created.
Tip: When working with identity feed, reconciliation may keep running
indefinitely. Particularly in small test feeds, this may be a signal of some
serious XML syntax errors in the file. Syntactical correct files will not cause
this problem.
Multi-valued fields
Many of the values in the LDAP can have multiple values. This is achieved on the
DSML identity feed using the construction in Example 8-4.
Example 8-4 Multi-valued fields in the DSML
<attr name="ou">
<value>LACSC</value>
<value>WestRegion</value>
</attr>
<attr name="erAliases">
<value>a654321</value>
<value>celis.pale</value>
</attr>
Defining a supervisor
IBM Tivoli Identity Manager allows managers to be defined as supervisors for the
identity. In a DSML identity feed, this is defined by the construction in
Example 8-5.
Example 8-5 Defining the identitys supervisor
<attr name="erSupervisor">
<value>uid=a088515</value>
</attr>
Note that the supervisor value is defined by the distinguished name (dn) used
when the supervisors identity was imported. If the referenced identity cannot be
found, the literal values is stored (if the supervisor is being loaded in the same
252
feed) or an error will occur during reconciliation (if the supervisor is not in the
same feed).
Placement rule
A placement rule is a JavaScript that is part of a DSML identity feed service
configuration. The rule are used to determine where identities will be placed in
the organization tree. They are checked every time a identity appears in a feed,
both in the insert and update operations.
253
TAA
Organization
West
OU
Mike
Seattle
OU
LA
OU
Note: If the placement rule generates a name that does not exist in the
organization tree, the identity is placed in the top level organization.
254
This is done by using the aliases in the identity feed. Ideally, all possible aliases
for a given identity must be included in the feed. The more aliases the better, but
it may be impossible to determine all accounts for the users.
Another issue to be considered are roles that may define the provisioning of the
users. The initial identity feed may be used to define the roles of users; however,
if roles are being defined progressively, the role may not have fully developed at
the time of the initial identity feed. Nevertheless, whatever information can be
used to determine roles should be placed in the initial feed.
255
Note: When doing the initial identity feed, the erSupervisor will only be set
correctly if the supervisor has already been imported into the LDAP directory.
If this has not happened yet, the literal text value of the field will be used. This
is not valid for workflow approvals, and may result in unwanted approvals.
This procedure should be scheduled according to the business needs. This could
be done daily, hourly, or weekly, as business requirements dictate.
Modifying identities
Existing identities may have changes in several fields. In this case, whatever
information that needs to be updated must be included in the identity feed. Any
data necessary for the placement rule must be included to avoid placing the
identity in a new position.
Example 8-6 on page 257 shows the update of an identity. Notice that this
includes information for the placement rule (in this case, the ou attribute). There
is also a change in the supervisor.
256
Suspending identities
The last type of common event that needs to be handled is a person leaving the
organization. There are two ways to handle this:
1. Identity is suspended.
2. Identity is removed.
DSML cannot handle the removal of an identity. This can be done using either a
JNDI update or using a manual deletion procedure.
Suspending an identity is easy using a DSML feed. Example 8-7 shows the
DSML necessary to suspend a user. Simply setting the identitys erPersonStatus
to 1 will suspend it. To restore the identity, set the erPersonStatus to 0.
Example 8-7 Suspending a user via identity feed
<?xml version="1.0" encoding="UTF-8" ?>
<dsml>
<directory-entries>
<entry dn="uid=a654321">
<attr name="erPersonStatus"><value>1</value></attr>
</entry>
</directory-entries>
</dsml>
257
Data
DSML attribute
Comment
Identifier
dn
Employee Number
employeeNumber
Last name
sn
Required
Common name
cn
First name
givenname
For ID purposes
For workflow
Job Code
title
Manager ID
erSupervisor
erSharedSecret
Employee number
uid
Location code
ou
Policy alias
erAliases
Example 8-8 on page 259 shows part of the DSML feed, including all the fields
for the first feed. This feed includes all basic identity information, but not the
supervisors. These are handled in another identity feed.
258
The identities were placed in the proper container according to the placement
rule shown in Example 8-9. This rule concatenates all the ou provided in the field
into one string. It is a responsibility of the HR feed process to convert the data
into the proper format.
Example 8-9 TAAs placement policy
var orgunit=entry.ou;
var ty=typeof orgunit;
var filt="";
if(ty=="undefined") {
/* Handle undefined placements */
return "ou=CorpHQ";
} else {
for(i=0; i< orgunit.length; ++i) {
if(i==0)
filt="ou="+orgunit[i];
else
filt=filt+",ou="+orgunit[i];
}
}
return
filt;
259
Once the first identity feed was complete, a second feed was generated to
similiar identities to their supervisors. This was done using updated DSML
statements, as shown in Example 8-10. Notice that to avoid moving identities in
the organization tree, the ou field used by the placement rule is present.
Example 8-10 Complete TAA identity entry in the second feed (for supervisors)
<entry dn="uid=a654321">
<attr name="erSupervisor"><value>uid=a088515</value></attr>
<attr name="ou">
<value>LACSC</value>
<value>WestRegion</value>
</attr>
</entry>
After the initial feed, the same two basic formats are used to keep the IBM Tivoli
Identity Manager synchronized with the HR system. Every day, a report of all the
changes is made by the HR system. A feed is created from it to create new
identities, modify those that changed, and suspend people that have left the
organization.
8.8.1 Requirements
The design is influenced by two things:
What normal users can see and do
Can they manage their password, see information about their accounts,
modify information about their accounts (which information), and request new
accounts?
260
What people can they manage? What information can they see? Can they
create accounts? Can they create identities? Can they delete identities or
suspend and restore them? What account information they can modify? What
identity information can they modify?
Once again, having all this information up front may be difficult, so this can be
done in a progressive manner. Some of the questions above yield enough
information for an initial setup.
Context
What does the ACI apply to. This includes all objects that exist
within IBM Tivoli Identity Manager (like a person, account,
organization unit, policies, services, and so forth). Only one
object class is affected by an ACI.
Scope
Attributes
Operations
Principals
261
The ACIs are described in Chapter 4, Access Control Information of the IBM
Tivoli Identity Manager Policy and Organization Administration Guide V4.4,
SC32-1149.
Add
Remove
Search
Modify
Suspend
Restore
Reconcile
Transfer
What users can see of an object is defined by the attribute read grants in the ACI.
If a user can see an object (after doing a search, for example), he is only able to
view any data if some ACI grants read to at least one attribute. This also applies
to the users own data.
262
ACI principals
The principal defines what users have the access rights specified in the ACI.
There are four possible principals:
Self
Each identity has a set of information that belong to it; this includes accounts.
This principal refers to the data that the identity owns in the IBM Tivoli Identity
Manager user. This principal is used to allow users to access their own
information and accounts.
Supervisor
This principal refers to any IBM Tivoli Identity Manager user group. This
allows users to be placed in a group and have access control set to this
group. This can be used for representing different groups of users not
expressed with the other principals.
Note: The supervisor and Domain Administrator have many rights by default,
so the default right may have to be reevaluated.
Merging ACIs
Frequently, many ACIs affect a given object. The ACI will determine what is the
valid access. Each attribute or operation has three possible states:
Grant
None
Deny
Implicitly, all operation and attributes are denied. An explicit grant will override
the implicit denial, and an explicit denial will override any grant. However, when
attributes are concerned, the only ACI effectively looked at are those that allow
for that operation. This can produce interesting unions.
Figure 8-10 on page 264 shows two ACIs applied to the users own data placed
on an organization tree. Each ACI refers to the users own AIX account data. All
of the ACIs have a sub-tree scope.
263
Corp
Organization
IT
OU
SysAdmin
OU
Ana
ACI_Unix
Context: AIX account
Scope: Sub-tree
Operations: Modify & Search
Attributes:
Shell: Grant Write
UID: Deny Write
All: Grant read
Password: Grant Read & Write
Principal: Self
Mike
ACI_Unix_Admin
Context: AIX account
Scope: Sub-tree
Operations: Add & Modify
Attributes:
Shell: Grant Read & Write
UID: Grant Read & Write
Primary Group: Grant Read & Write
Password: Grant Read & Write
Principal: Self
The result of the interaction between the ACIs is shown in Table 8-6.
Table 8-6 Result of the ACI interaction
264
Identity
Operation
Attributes
Reason
Ana
Create
Modify
Identity
Operation
Attributes
Reason
Mike
Create
Denied
Modify
This is a good example of how the interaction between the ACIs can help
delegate administration. Ana can create a new account, withi much of the
security related information (this would normally be checked by someone else in
a workflow). However, once the account is created, she has a more limited set of
options.
Design options
The design of the administrator and user access mostly depends on how it
should be done. As a base rule, you want to grant the least access necessary for
the administrators. Remember that much of the information concerning identities
may be coming from an identity feed. This means that administrators should
have very little to manage in regards to identities.
Policies may require some special handling of accounts. For example, regulation
may require that account information be kept on file after an employee leaves the
company. In such cases, local administrators should be limited in their access to
accounts.
The first design option depends on how many administrators will be managing a
container on the organization tree. If many administrators handle each container,
there are two possible designs:
Define multiple container Admin Domains.
Create the ACI based on IBM Tivoli Identity Manager groups.
Placement of the ACIs influence their scope, so the organization tree must match
the administration requirements, especially if Admin Domains are used.
265
Some ACIs have to allow the administrative user to see the appropriate
information:
There should be an ACI allowing the administrator to search and modify the
Person object (maybe also the BPPerson object).
There should be an ACI allowing the administrator to at least view the
container in the organization tree; this should include the search option and
some of the attributes.
There should be an ACI for each service profile account type in order to allow
administrators to add, search, and modify accounts. Depending on policies,
they may be able to remove, suspend, and restore accounts.
Besides the basic access for administrators, further ACIs may allow an
administrator to:
Remove identities (requires remove operation on the account for each service
profile)
Transfer identities (requires transfer operation on the Person and BPPerson
fields)
Create identities (requires add operation on Person and BPPerson objects)
Manage services (requires ACI on the services to allow this operation)
There are various options in the construction of the ACI, but the ACI always has
scopes. If the scope is too broad, the administrators may see too many objects
and they will effectively become central administrators.
266
Identity Manager groups. This requires creating the groups and then creating a
complete set of ACIs for that group.
User self-care
Users are not authorized to do many things by default. The default ACI shipped
with IBM Tivoli Identity Manager allows users to do the following:
They can see all their identities data, search on that data, and modify it,
although there are no writable attributes by default.
They can see their IBM Tivoli Identity Manager user account information,
search for it, and modify the password, login screen, and challenge response
information.
Although they are authorized to search for data on their own data, the default
regular users do not have access to the search option.
User self-care normally requires that users be able to do other tasks. Table 8-7
shows what ACIs are required to allow users to perform some of these tasks.
Table 8-7 ACI for user self-care tasks
Task
ACI Context
Grants
Change password
Change personal
information
Person or BPPerson
Modify account
information
267
All of the identity information is coming from the identity feed, so there is no need
for the administrator to change this data. There is only one region administrator
per region. They can create and remove accounts, but they should not set
accounts in other regions.
Based on these requirements, the design must accomplish the following:
Regional administrators are set as the organization unit supervisors.
All users are able to manage their passwords for all services.
Default ACIs are reduced so that the local administrators can only read the
identity information.
Account ACIs are created to allow administrators to create, suspend, restore
and remove accounts that they supervise.
Regional administrators are a member of IBM Tivoli Identity Manager groups
that allow them to have all the user interface functions.
This is an initial design and it allows a quick deployment, but since all users have
their managers as supervisors, this may be changed in the future, especially if
the managers begin to have more access to the IBM Tivoli Identity Manager
interface. Since they have only simple access in this phase, this is not an issue.
268
Chapter 9.
Technical implementation:
phase II
Once the basic IBM Tivoli Identity Manager operation is in place, Tivoli Austin
Airlines can begin reviewing and automating processes.
269
This chapter explores how to achieve each of these goals. Each section contains
the following information:
Information that is relevant during the design phase
Design options and considerations
How it was implemented at Tivoli Austin Airlines
270
9.2.1 Requirements
Automatically provisioning users is handled by provisioning policies. This
requires them to be set to automatic provisioning (see 8.6, Provisioning policies
on page 242), but in order for this to yield the appropriate results, the following
aspects must be considered:
Passwords must be generated in a way to satisfy the policies, be secure, and
be known to the users.
All required attributes for that particular service must be assigned default
values (that match policies for those values).
Organization roles must be defined to avoid granting undesired access to
certain users.
271
necessary to assign users to specific roles on the target system, which requires
more organization roles or a specific JavaScript to assign the proper target
system group membership.
If IBM Tivoli Identity Manager organizational roles map adequately to the target
systems roles, group membership can be determined by a set of provisioning
policies. Remember that provisioning policies can be added to determine group
membership (most services are configured to have group membership as a
union of all policies).
Based on this, it is possible to create the following:
One basic provisioning policy that grants the common group membership for
all identities, as well as the default values for the attributes
Provisioning policies for each organizational role to service group mapping
Generating passwords
One key attribute that must be handled by automated provisioning policies is the
password. Passwords must be generated to match the password policies for the
services they are provisioning to. This may be a challenge if there are several
password policies in place.
Generating the password can be a complex issue when this is the first password
for that user. This password may be used for the mail system or entry point
applications, such IBM Tivoli Identity Manager and IBM Tivoli Access Manager.
For these applications, the user must have some way of knowing what the
password is.
IBM Tivoli Identity Manager includes a shared secret field that can be used for
holding the seed for a password. The password can be created with a
JavaScript. This script can have access to all the identitys information and the
account information. This means that any attribute can be used to create the
password. However, for the entry point applications, the user should know the
password, or have a way to determine it.
Tip: While testing, use a visible attribute (in clear text) on a manual
provisioning policy to see what the script is generating.
272
The use of constant values is normally applied to items such as Boolean flags,
group membership, and anything that does not depend on the identities
information. The script should be used for any attributes that vary between
identities. Scripts can become fairly complex and can look into values in the
LDAP.
Provisioning policies will be joined to yield the final value for the attributes. This
allows the construction of one general provisioning policy that handles the values
for all or most users, and group specific policies that will override the general
policy. Overriding can be done using the appropriate priority on the provisioning
policy.
Script
Description
{'/home/'+ parameters.eruid[0];}
{subject.getProperty('cn')[0];}
273
Script
Description
{ Enrole.
getAttributeValue("Person.ersharedsecret","")
.substring(strLen-4,strLen); }
With access to these systems, the new employee can start requesting new
accounts without having to depend on either help desk or manager.
The provisioning for IBM Tivoli Access Manager is used in this section to
illustrate how the automatic provisioning is handled.
There are two provisioning policies that are used to provision an account to IBM
Tivoli Access Manager: pp_employee_access and pp_basic (see 8.8.3, TAAs
implementation on page 267). These policies handle the employee specific
information and basic access rights.
Although these policies handle the basic access requirements, it was desirable
that managers have a different access right. This requires a new provisioning
policy to handle the additional access rights. To grant the additional role,
manager accounts are given membership to the IBM Tivoli Access Manager
group grp_manager. Table 9-2 show the entitlement for this policy.
Table 9-2 pp_manager_access entitlement values for IBM Tivoli Access Manager
Attribute
Enforcement
Value
ertamgroupmemeber
mandatory
grp_manager
This policy does not need to be automatic. The next changes are to the
pp_employee_access provisioning policy to allow automatic provisioning. The
following modifications were made:
Default values were created to allow automatic provisioning. The attributes
values are shown in Table 9-3 on page 275.
The entitlements for IBM Tivoli Access Manager were changed from manual
to automatic.
274
Table 9-3 pp_employee_access entitlement values for IBM Tivoli Access Manager
Attribute
Enforcement
Value
cn
mandatory
{subject.getProperty(cn)[0];}
description
default
{'EMPLOYEE: ' +
subject.getProperty("cn")[0];}
erpassword
default
ertamauthentication
default
IVADMIN_USER_LDAPAUTHMETH
ertamdn
mandatory
{'uid='+parameters.eruid[0]+
',dc=tam,dc=taair,dc=com' ;}
ertamexpirepass
default
TRUE
ertamgroupmemeber
default
grp_employee
ertammaxfailedlogon
default
ertampasswordpolicy
default
FALSE
ertamsinglesign
default
TRUE
sn
mandatory
{subject.getProperty("sn")[0];}
The password generation was handled by a script that uses part of the first
name, last name, and shared secret to generate a valid password. The script is
shown in Example 9-1. Since the shared secret is a number, the password
generated can be known by the users yet different for each user. Notice that in
Table 9-3 that the ertamexpirepass is set to true, which means that the user is
requested to change the password upon first logon.
Example 9-1 TAAs password generation script
{
var strLen= Enrole.getAttributeValue("Person.ersharedsecret","").length;
var data=Enrole.getAttributeValue(
"Person.ersharedsecret","").substring(strLen-4,strLen);
Enrole.getAttributeValue(
"Person.givenname","").substring(0,2).toLowerCase() + data +
Enrole.getAttributeValue(
"Person.sn","").substring(0,2).toLowerCase();
}
275
appropriate access. One interesting detail is that only one policy must be
automatic; the other provisioning policies will be considered even if they are
manual.
9.3.1 Requirements
If users are to request their own accounts, it is necessary to know how much
leeway they have on the request. This involves looking into the following aspects:
What attributes can the user choose?
They may be allowed to simply ask for an account or to request accounts with
certain characteristics. This varies for each account type and the particular
system they are requesting access to.
Is there an approval process in place?
What is the approval process? Who are the people involved in it? Is additional
information required? This information should allow for a rough concept of the
workflow that should be used.
Once the account has been created, what can the user see and change?
Since the user has requested the account, he may want to modify some
information in it. Is this possible? What fields can he change?
This information should allow the administrator to design the workflow, the
provisioning policy, and any ACI needed for this.
276
Workflow design
Designing a workflow is done using the Workflow Diagram tools within the IBM
Tivoli Identity Manager Web interface. The elements are documented in Chapter
7, Workflow, of the IBM Tivoli Identity Manager Policy and Organization
Administration Guide V4.4, SC32-1149. The same information is available in the
online help. Section 4.2.4, Workflow on page 84 also describes general
elements in the workflow. This section includes some additional information on
design options for workflows.
Each element is connected with transition lines; when two or more of these lines
connect to the same element, the join type of the element is considered. The join
type can either be an and clause (indicating that all transitions must be active to
trigger the element) or an or clause (in which case, any one of the transitions
active will trigger the element). The join type is indicated by a symbol on the left
of the element, a triangle for the or clause and a circle for the and clause.
An approval is required somewhere in the workflow to allow the proper return
element to be activated. Workflows are used in the entitlement of a provisioning
policy. If a workflow has a Global service type, it can be used by any service
type.
Figure 9-1 on page 278 shows a simple workflow. This workflow has several
characteristics:
It uses parallel approval (both the Service Owner and the Manager are called
at the same time).
The request will be rejected if any of the approvers rejects the request. This is
indicated by the triangle on the left side of the Rejected box (or union).
If both approve, a Request for Information (RFI) is sent to an administrator,
asking for the group membership information. The circle on the left of the RFI
box indicates that this is an and union, that is, both lines coming in must be
true.
277
Note: On IBM Tivoli Identity Manager Version 4.4, the Rejected box is
displayed with a circle to its left, but it still operates in an or union (this
mode cannot be changed).
The RFI sends the request to the Approved action.
The following section contains some additional information about each element
in the workflow.
Approval
An approval is the key element in a workflow. Somewhere in the workflow,
someone will have to approve the request, unless it is strictly a request for
information workflow. IBM Tivoli Identity Manager provides several approvers to
choose from, among them:
Person
Organization role
Requestor
Requestee
Service Owner
Sponsor
Supervisor
System administrator
Domain administrator
278
approval will be approved again. This does not happen inside loops. Although
this may seem strange, it avoids creating confusion with the same person being
requested over and over for the same approval.
Subprocess
Subprocesses can be used to call other workflows. This allows for the creation of
reusable workflows. For example, a Global service type workflow can give the
basic procedure for all manager approvals, and then be included via a
subprocess into specialized workflows for each service type.
A subprocess can also be used in loops to hide complex parallel or serial
approvals that could not be easily represented in the loop.
Loops
Loops allow for more complex logic to be used in the workflow. Each loop must
have JavaScript for at least the following workflow elements:
One on the loop itself, which determines an exit condition, for example:
context.getLoopCount() <= 3
279
Putting it together
Workflow design is essential in joining the components. It is important to try to
use simple workflows, so you should use subprocesses to help simplify the
design. Complex workflows may become difficult to understand and maintain.
Workflows can be used in automated provisioning policies, but this should be
done with care, since changes in the policy or bulk loading of identities may
cause a large number of approval requests to be generated.
280
Along with the proper ACI, a provisioning policy must be set. This policy should
have default values for all fields the users cannot fill in, and validation for all fields
that the user can edit. This avoids the need for complex RFIs.
Once the account is created, they can only change the shell program. They can
also request the suspension, removal, and restoration of the account.
The administrator requires that only employees in development be allowed to do
this, and that the employees manager and the administrator must approve the
request. The system administrators must also double check the request
information. To handle this, the workflow in Figure 9-3 was created.
281
This allows users to easily request and do some simple maintenance on their
accounts while allowing the administrator a great deal of control over all the
accounts.
Membership
Group
Role
Access
User
Resource
Target System
Figure 9-4 Typical Role Based Access Control
282
IBM Tivoli Identity Manager can manage groups on target systems. It is assumed
that groups will then map into roles. This alone does not mean it is a role based
access management tool, but used correctly, it can help.
9.4.1 Requirement
In order to manage Role Based Access Control using IBM Tivoli Identity
Manager, it is crucial to have a good understanding how Role Based Access
Control is being implemented on each target system. It is essential that a good
design already exists on the target system; no management tool is able to
correct or improve a bad Role Based Access Control design.
The first piece of information required is what group and/or roles exist on the
target systems. An adequate listing of each group and what kind of users there
are should be placed in each group; the more information available, the better.
Besides this information, it may be important to determine how identities can be
associated to the roles on IBM Tivoli Identity Manager. It is necessary to
determine if there is enough information to do this automatically (using dynamic
roles) or if it will have to be handled manually by administrators.
283
Organization
Role
Identity
Ow
n
shi er
p
Entitlement
n
leme
Entit
Membership
rs
h ip
Provisioning
Policy
Target System
Group
Account
Membership
Recon
Service
Provisioning
Provisioning
M
em
be
Group
Role
Access
User
Resource
Target System
Figure 9-5 IBM Tivoli Identity Manager and Role Based Access Control
Figure 9-5 shows how IBM Tivoli Identity Manager interacts with the targets Role
Based Access Control. Several important aspects are shown in the figure:
Reconciliation brings the information of what groups (and, indirectly, roles)
exist on the target system.
Identities in IBM Tivoli Identity Manager are mapped to organization roles
either using static or dynamic membership; in the dynamic case, information
about in the identity will be used to determine membership.
Entitlement will determine what the account should look like, including the
group membership on the target system.
284
Analyzing Figure 9-5 on page 284, it is easy to see that by using IBM Tivoli
Identity Manager, the mapping of identities to access follows the path shown in
Figure 9-6.
Provisioning Policy
Organization
Role
Group
Role
Access
Resource
Identity
Dynamic Roles
Figure 9-6 Identity to access mapping using IBM Tivoli Identity Manager
285
286
287
Using the script, it is possible to map the different job codes that are part of the
role_customer_facing role into the appropriate IBM Tivoli Access Manager
groups.
Example 9-2 Assigning groups using provisioning policy scripts
{
var a=new Array();
var i=0;
var title=Enrole.getAttributeValue('Person.title','');
if(title== 'JC_FLIGHT_PILOT') a[i++]='tam_grp_pilot';
if(title== 'JC_FLIGHT_COMMANDER') {
a[i++]='tam_grp_pilot';
a[i++]='tam_grp_commander';
}
if(title== 'JC_FLIGHT_ENGINEER') a[i++]='tam_grp_engineer';
if(title== 'JC_COUNTER_RECEPTION') a[i++]='tam_grp_reception';
if(title== 'JC_COUNTER_MNG') {
a[i++]='tam_grp_counter_reception';
a[i++]='tam_grp_counter_manager';
}
if(title== 'JC_CABIN') a[i++]='tam_grp_cabin';
if(title== 'JC_CABIN_SENIOR') {
a[i++]='tam_grp_cabin';
a[i++]='tam_grp_cabin_senior';
}
return a;
}
288
Tip: Example 9-2 shows a script that returns a list of groups to the
provisioning policies. It contains some interesting details:
In order to return more than one group, the script must return an array.
The array must be declared using the new Array() construction.
There is no add or push method for the arrays in this context, so to add
elements, one must use an index.
The last line includes a return statement, which is not really necessary; it
could be replaced by a simple a; statement.
289
9.5.1 Requirement
IBM Tivoli Identity Manager can provision non-IT resources, assuming there is
some interface to those resources (be it a human or computer). However, to
create the link between the two, one must know the following:
What information is required for the provisioning to occur?
When provisioning, there will be information that is required. For example, for
a telephone system, you need to know where the line must be set up. This
information is critical in the design of the solution.
What will accounts represent on the system?
IBM Tivoli Identity Manager provisions accounts, but this concept may not be
applicable on the target system. Nevertheless, the account is a valid link
between the user and the resource, so it can be used as a representation of
the user.
What is the life cycle of the account?
The account being created will normally represent the resource being
provisioned to the user. But once it is provisioned, how should the account be
maintained? Will it exist forever? Should it be represented on a pending
request? This will be determined by the nature of the resource being
managed.
This information should be enough to create a provisioning model for the
resource.
290
The agent is basically composed of the following parts, many of which must be
created:
Agent code that can call commands passing arguments or files as input
Server side configuration files, which must be created for that agent
Agent script that should be called on several actions, which must be created
for that agent
Unlike other agents in the configuration process, you essentially create a new
service profile for that agent. This allows for the definition of new account types,
group types, and service profile types.
Scripts or commands
The agent operations are handled by commands on the machine where the
agent is executing. These commands can be executable programs or executable
scripts. There are some operations that must be handled by the scripts or
commands:
Add
Delete
Modify
Search
The information for the account creation can be supplied in two ways: through
the command line arguments or through an attribute files. The attribute files will
contain all the information that was not passed through the arguments.
Example 9-3 shows the content of the attribute file in the uniform provisioning
service.
Example 9-3 Sample CLI-X attribute file
eruniformleg|36
eruniformaddress|2600 Gracy Farms Ln, Austin, TX
eruniformwaist|30
eruniformhip|30
eruniformchest|30
eruniformgender|MALE
291
For all operations, the command may return a result file. This is mandatory for
the search operation. For this operation, the file should contain all accounts and
groups that were found in the system. Example 9-4 shows a result file for the
uniform provisioning service. The first line of each group contains the user ID for
that account and the account type (in this case, erUniformAccount). This
example does not contain group information.
Example 9-4 Sample result file for CLI-X agent
eruid|a665566|erUniformAccount
erUniformchest|20
erUniformaddress|50
erUniformhip|30
erUniformwaist|10
erUniformgender|MALE
erUniformleg|40
eruid|a012345|erUniformAccount
erUniformchest|20
erUniformaddress|50
erUniformhip|30
erUniformwaist|10
erUniformgender|MALE
erUniformleg|40
CLIXResult|0
Figure 9-9 on page 293 shows a screen shot of the CLI-X agents non-encrypted
registry settings. In the uniform service, there is a single script being called for all
operations; this can be seen in the template entries (numbered 01, 02, 08, and
10). the script handles internally the various operations. On all account related
operations, the user ID is passed in the command line, and all other information
is passed in the attribute file. This is not mandatory, but was how it was
implemented in the uniform service.
292
Tip: On the add operation, it is possible to create multiple accounts with the
same user ID. If the CLI-X returns a success, IBM Tivoli Identity Manager will
register a second account with the same user ID on its LDAP. This may lead to
discrepancies or cause confusion; if this is not an intended result, be sure to
make the CLI-X script or command return an error code on duplicate
accounts.
Configuration files
Each CLI-X Agent service profile requires that a set of files be created for the
server. These files should all be placed in
%ITIM_HOME%/data/remote_resources/ in a directory named after the service
profile. For the example used in this section, the uniform service (that is internally
293
called UniformProfile), the directory where these files were placed was
C:\itim\data\remote_resources\uniformprofile.
Each directory defining a service profile will contain several files. These files and
their functions are shown in Table 9-4.
Table 9-4 Files for the CLI-X service profile configuration
File
Uniform example
Content/Function
CustomLabels.properties
CustomLabels.properties
er[ServiceAccount].xml
erUniformAccount.xml
er[ServiceDAMLService].xml
erUniformDAMLService.xml
resource.def
resource.def
schema.dsml
schema.dsml
xforms.xml
xforms.xml
294
Tip: During our tests, it proved to be easier to copy the interface definition files
from another service and then edit them in the User Interface Customization
applet.
Important: Needless to say, all the service customization for the CLI-X agent
should be done in a test environment beforehand. Once the service is working
as desired, the service files can be copied to the production environment.
The most complex files are schema.dsml and resource.def. They will define all
service specific information to IBM Tivoli Identity Manager service. The best
source for information is the official documentation and the sample included in
the CLI-X Agent package.
Example 9-5 shows the schema.dsml file used for the uniform service. Some of
the important features of the file will be described below.
Example 9-5 TAA s schema.dsml file
<?xml version="1.0" encoding="UTF-8"?>
<dsml>
<directory-schema>
<!-- Attributes -->
<attribute-type single-value = "true" >
<name>erUniformWaist</name>
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.1</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erUniformChest</name>
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.2</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erUniformHip</name>
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.3</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erUniformLeg</name>
295
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.4</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erUniformGender</name>
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.5</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erUniformAddress</name>
<description>First Name</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.6</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<attribute-type single-value = "true" >
<name>erTitle</name>
<description>Job Title</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.2.7</object-identifier>
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
</attribute-type>
<!-- Account class -->
<class superior="top">
<name>erUniformAccount</name>
<description>Uniform Request Account</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.1.1</object-identifier>
<attribute ref = "erUid" required = "true" />
<attribute ref = "erUniformChest" required = "true" />
<attribute ref = "erUniformWaist" required = "true" />
<attribute ref = "erUniformHip" required = "true" />
<attribute ref = "erUniformLeg" required = "true" />
<attribute ref = "erUniformGender" required = "true" />
<attribute ref = "erUniformAddress" required = "true" />
<attribute ref = "erTitle" required = "true" />
</class>
<!-- ******************************************************** -->
<!-- erCLIDAMLService Class
-->
<!-- ******************************************************** -->
<class superior="top">
<name>erUniformDAMLService</name>
<description>Class for uniform provisioning.</description>
<object-identifier>1.3.6.1.4.1.6054.3.101.1.2</object-identifier>
296
<attribute
<attribute
<attribute
<attribute
<attribute
<attribute
</class>
ref
ref
ref
ref
ref
ref
=
=
=
=
=
=
</directory-schema>
</dsml>
1.3.6.1.4.1.6054
101
Agent ID: Each agent has one; for CLI-X agents, this
number must be a number between 101-110 (and
different for each agent type).
2.6
Important: The instance ID must be unique for each attribute, account class,
group class, and service class.
Each attribute has its type defined by the following line:
<syntax>1.3.6.1.4.1.1466.115.121.1.7</syntax>
Once all the attributes have been defined, the next section of the schema.dsml
file will define the classes for the service and service specific accounts and
groups. Example 9-6 on page 298 shows the initial lines of the class definition.
297
This definition include the name, description, and attributes used for that class.
Once more, the object-identifier tag will define the object identifier for that object.
The rules described above for attributes apply to class object identifiers. The
class also includes all the attributes, which can be mandatory or not.
Example 9-7 shows the resource file used for TAAs uniform provisioning system.
This the glue that connects all the other files, and allows a service to be defined
in IBM Tivoli Identity Manager.
Example 9-7 TAAs uniform service resource.def file
<?xml version="1.0" encoding="UTF-8"?>
<Resource>
<SystemProfile>
<Name>UniformAgent</Name>
<Description>Uniform Provisioning Agent</Description>
<BehaviorProperties>
<Property
Name =
"com.access360.enrole.remoteservices.ResourceProperties.TRANSFORMER"
Value =
"com.access360.enrole.remoteservices.transformation.EnroleAgentMessageTransformer"
/>
<Property
Name = "com.access360.enrole.remoteservices.ResourceProperties.TRANSFORM_FILE_NAME"
Value = "xforms.xml" />
<Property
Name = "java.naming.factory.initial"
Value = "com.access360.daml.jndi.DAMLContextFactory"/>
</BehaviorProperties>
<ProtocolProperties>
<Property Name = "java.naming.provider.url"
LDAPName = "erURL"/>
<Property Name = "com.access360.daml.jndi.DAMLContext.DEFAULT_PORT"
Value = "45580"/>
<Property Name = "com.access360.daml.jndi.DAMLContext.CLIENT_CERT"
LDAPName = "erCertFile"/>
<Property Name = "com.access360.daml.jndi.DAMLContext.CLIENT_CERT_KEY"
LDAPName = "erPrivateKeyFile" />
298
SystemProfile
AccountDefinition
ServiceDefinition
The easiest way to create this file is to use the example in the documentation or
packed with the agent as a base, and just change the information in the
AccountDefinition and ServiceDefinition sections.
299
This script takes, as a parameter, the remote services name, which should
match the directory used to store the configuration files. In this example, for the
uniform service, the command used was:
C:\itim\bin\win\configure_remote_service.cmd uniformprofile
Note: In our environment, the configuration script failed due to an invalid path
within the script. This was solved by editing the
configure_remote_service.cmd file and changing the JAVA_HOME variable to:
JAVA_HOME=c:\WebSphere\AppServer\java
300
In order to achieve this process, a new service profile was created with the
following general characteristics:
An account in this service represents a uniform request that has not been
fulfilled.
Once the employee receives the uniform, the account is eliminated. This
allows new requests to be placed.
Information concerning measures can be changed after the request has been
submitted.
A single script was created to handle all operations, it handles the operations as
follows:
Add
Creates a new request. The operation will only succeed if there are
no pending request. If there is already a request, the new one will fail.
Modify
Updates the request for the new data. The operation will fail if the
processing of the request has reached a point where that information
cannot be handled.
Delete
Search
Lists all pending requests. Once a request has been fulfilled, the
account will no longer be listed.
The choice for having the accounts eliminated once the request has been fulfilled
allows a new request to be placed. The application uses the user ID (the
employee serial number) as a key for the requests. If all requests were kept, the
user ID would have to change, or IBM Tivoli Identity Manager would end up with
multiple accounts on the same service.
There is a weekly reconciliation process that clears out the requests (accounts)
that have been fulfilled. In order for this to work properly, the services
Enforcement Action must be set to Correct Noncompliances; this eliminates the
identity account that no longer exists.
301
In order for the employees to request the uniforms themselves, an ACI must be
created with the following characteristics:
Placement on the organization level (top of the tree). This is required because
employees are distributed along the branches and accounts are related to
identities.
Allow read and write access to all attributes, except user ID. Since the user ID
is important for the uniform system and the provisioning policy already
generates a valid user ID, there is no need for user input.
Allow the following operations: Add (to place a request), Delete (to cancel a
request), Modify (to change data on a request), and Search (without this the
employee cannot see the account after it has been created).
The last configuration need is the provisioning policy. It must control access to
only the people that have uniforms. The uniforms are reserved for customer
facing employees, which means the entire flight crew and the counter
representatives. The option was made to create a new dynamic role
(role_customer_facing) with the following rule:
(|(|(title=JC_FLIGHT_*)(title=JC_CABIN*))(title=JC_COUNTER*))
This filter will select all users that have a job title beginning with either
JC_FLIGHT_, JC_CABIN, or JC_COUNTER.
The provisioning policy entitles manual access to the uniform service for any
member of the role role_customer_facing. It is placed with the service in the
AD_CorpHQ administrative domain.
With all this in place, employees can request their uniforms, although some
improvement could be done, such as including a workflow to allow managers to
control requests.
The CLI-X agents configuration files were shown in the examples used
throughout 9.5.2, Design considerations on page 290.
302
Part 3
Part
Appendixes
303
304
Appendix A.
305
306
ITIM Agent
E-mail Server
DAML/SSL
SMTP
HTTP/HTTPS
Web Server
HTTP/HTTPS
ITIM Server
JDBC
LDAP/SSL
HR feed
Directory Server
Database Server
LDAP/SSL
307
Directory Server
LDAP/SSL
Servlet
Host Platform
EJB
Application Server
(Websphere)
Directory Server
JDBC
Host Platform
Database Server
ITIM Server
Host Platform
Database Server
Figure A-2 Identity Manager Server components
308
For further details refer to the IBM Tivoli Identity Manager Server Installation
Guide for Windows V4.4, SC32-1148.
Tip: It is recommend that you do not have any other Web servers running on
the system.
During the Identity Manager installation, WebSphere and the IBM HTTP server
are installed. This Web server expects that the standard http ports (80 and 443)
are available. Care needs to be taken with Microsoft Windows systems, as the
Microsoft Web server is quite often installed automatically. Before installing any
part of Identity Manager, first check and see if any Web servers are running on
the system. If there are, we recommend disabling these Web servers or
changing their ports to avoid conflicts, for example, 81 and 444.
Installation of DB2
Tivoli Identity Manager ships with DB2 Universal Database Enterprise Edition
Version 7.2.
309
Select Next and accept the defaults, as shown in Figure A-4 on page 311.
310
Accept the default Typical and select Next, as shown in Figure A-5.
311
For this installation, we used Tivoli as the password (see Figure A-7 on
page 313). Be sure to write down the password you entered, as you will need this
later. Select Next.
312
After selecting Next (see Figure A-9 on page 314), the installation will start
copying files and will then start the DB2 installation.
313
Select Do not install the OLAP Starter Kit and press the Continue button
(Figure A-10).
314
When you click on Finish (Figure A-11), you should see the window shown in
Figure A-12.
315
The next dialog box is about Product Registration. For this demonstration, we do
not register the product and directly exit the process.
Select Services and stop all DB2 processes. Highlight one of the DB2 services
in the right window and stop the process.
316
The services window should look like the one displayed in Figure A-14 before
proceeding (all DB2 processes are stopped).
Next install the DB2 Fix Pack. Select the Next button, as shown in Figure A-15
on page 318.
317
Type in the password you entered during the initial DB2 install and select Next
(see Figure A-16).
318
If you get the error shown in Figure A-17, you need to log out and back in again
as db2admin.
Finally, click on Finish to restart the system after the upgrade has been
completed.
319
DB2 configuration
Log on to the system as Administrator and stop all DB2 processes, as explained
in Upgrading to DB2 FixPack 7 on page 316.
Select OK.
After the JDBC configuration has finished, restart the DB2 process using the
services panel shown in Figure A-20 on page 321.
320
We need to use the DB2 Control Center for the operations shown in the following
screenshots. In order to start the Control Center, select Start Programs
IBM DB2 Control Center.
Right-click on the DB2 instance and select Configure (Figure A-21 on
page 322).
321
322
Select Use the TP monitor named below' and select JTS from the TP Monitor
pull-down list. Then click Finish (see Figure A-22).
Select Close and exit the DB2 Control Center (Figure A-23).
323
324
Set the DB2 heap size with the following command (see Figure A-26):
db2 update db cfg for itim using applheapsz 256
325
Configure the DB2 catalog by using the following command (see Figure A-27):
db2 catalog tcpip node db2node remote <servername> server 50000
326
To test logging in as a user, enter the following command (see Figure A-29):
db2 connect to itim user <account> using <password>
327
If you see results that are similar to Figure A-29 on page 327, everything is
configured correctly. Proceed with the install. If something is not correct, stop and
correct the problem.
328
329
Right-click on the user db2admin on the right side of the screen and select
delete.
330
Select the correct language; in our example, shown in Figure A-34, it is English.
331
Accept the terms in the license agreement and click Next (Figure A-36 on
page 333).
332
The system detects that you have DB2 already installed (see Figure A-37 on
page 334). Click on Next.
333
334
Select English as the language for IBM Directory Server (Figure A-39). Note this
language selection needs to match the language you selected earlier during the
DB2 installation.
Accept the default of Typical and click on Next (Figure A-40 on page 336).
335
Accept the defaults here as well. Click on Next to proceed (Figure A-41).
336
Enter a user ID that already exists on the system and its password. In our
example, we used Administrator (Figure A-42). Note that this is only a demo
machine; for a production system, you should use a different account. Click on
Next.
Enter a password for the LDAP administrator account. Make sure to write this
down, as you will need this later. In our example (Figure A-43 on page 338), we
used passw0rd as the password. Click on Next.
337
Select OK to continue (Figure A-45). This will install the IBM SSL GSKit.
338
Select OK to continue (Figure A-46). This installs the IBM HTTP Server.
Select Next. This is the Readme for the LDAP client (Figure A-47).
Select Next. This is the Readme for the LDAP Server (Figure A-48 on page 340).
339
Accept the default to restart your system (Figure A-49). Click on Next.
Click on Finish (Figure A-50 on page 341). This reboots the system.
340
341
342
below
ibm-slapdSuffix: cn=localhost
343
Figure A-52 Services Control panel with IBM Directory Server started
Next, we need to add our suffix object to LDAP by selecting Start Programs
IBM Directory Server 4.1 Directory Management Tool. This should
bring up the window shown in Figure A-53 on page 345.
344
Next, we need to authenticate to the IBM Directory Server. Select Rebind, which
is under Introduction/Server/Rebind, as shown in Figure A-54 on page 346.
345
Select Authenticated and fill in the User DN field with cn=root and the User
password field with passw0rd, as shown in Figure A-55 on page 347.
346
Select Add on the right menu bar shown in Figure A-57 on page 348.
347
Select Domain from the Entry type menu. Leave Parent DN: blank and enter
dc=com in the Entry RDN: field, as shown in Figure A-58. Click OK.
Select Add and exit from the Directory Management Tool, as shown in
Figure A-59 on page 349. You need to stop and restart LDAP to have the
changes take effect.
348
349
We recommend using the Find function to locate the line ibm-slapdPort: 389.
Save the file.
Now we are ready to install the Identity Manager components.
350
With the User folder highlighted, select Action New User or right-click on the
right side of the panel and select New User, as shown in Figure A-62 on
page 352.
351
352
Run the setup executable instW2k.exe. This file is located either in the folder
where you have unzipped the base CD or on the Base CD itself, if you have this
media. The installer should start, as shown in Figure A-63.
Select I accept the terms of the License Agreement and click Next
(Figure A-64).
353
Accept the default for Single Server and click Next (Figure A-65).
Accept the default location of C:\itim and click on Next (Figure A-66 on
page 355).
354
Install WebSphere, accept the default, and click Next (Figure A-67 on page 356).
355
Select MQSeries install location, accept the default, and click Next (Figure A-68
on page 357).
356
Click on Install, as shown in Figure A-69 on page 358. At this point, Tivoli
Identity Manager and IBM WebSphere FixPack 4 will be installed, and Tivoli
Identity Manager will be deployed to WebSphere. This process will take a few
minutes.
357
358
Fill in the User Password: with the password you entered when you created the
enrole user; in our example, this was passw0rd. Click on Continue (Figure A-72
on page 360).
359
360
You will get the pop-up window shown in Figure A-75. Click on OK.
In the window shown in Figure A-76 on page 362, enter the name of your
organization that will show up in the Identity Manager Organization structure; in
our example we use Tivoli Engineers. Enter the short name or abbreviation of
your organization name (tiv). Finally, enter the LDAP Distinguished Name (DN)
location. This needs to match the value you entered into the slapd32.conf file and
the suffix you created in LDAP. In our example, the value is dc=com. Click on
Continue.
361
362
363
You should get the pop-up window shown in Figure A-80 on page 364. Click on
OK.
You should then get the window shown in Figure A-81. Click on Done.
Now you need to reboot your system to have all the changes take effect.
364
Important: Make sure you have a Microsoft Windows 2000 Server with SP2
installed.
Make sure that all MQSeries processes are stopped. Bring up the Task Manager
and see if there are any MQSeries processes showing. If there are, stop them,
then start the MQSeries 5.2 CSD05 install again. Click Next to continue. You
should get the window shown in Figure A-83 on page 366.
365
Accept the default location and click on Next. You should get the window shown
in Figure A-84 on page 367. Click on Next.
366
You should get the window shown in Figure A-85 on page 368. Click on Next.
367
You should get the window shown in Figure A-86. Click on Next.
368
You should get the window shown in Figure A-87. Click on Finish and reboot the
system. Then, log on as a privileged user, for example, Administrator.
DB2 - DB2
DB2 - LDAPDB2
DB2 JDBC Applet Server
IBM Directory Server Version 4.1
IBM HTTP Administration
IBM HTTP Server
IBM MQSeries
369
Now open the Windows Services console and select the IBM WebSphere
Application Server V4 - ITIM Manager service. To have this service start
automatically at boot time, double click on the IBM WebSphere Application
Server V4 - ITIM Manager service and change Startup type to Automatic. click
on Apply and then OK.
370
371
372
8. Select OK.
9. Select IBM HTTP Server 1.3.19 and click on Change/Remove.
10.Select Yes to the question "Are you sure you want to completely remove 'IBM
HTTP Server 1.3.19' and all of its components?"
11.Select OK.
12.Select IBM Directory Server 4.1 and click on Change/Remove.
13.Accept the default language (English) and click on OK, unless you selected
another language. If you did not select a different language and wish to do so,
select it now and then click on OK.
373
14.Select Next.
15.Click on GSKit, IBM HTTP Server, Client SDK, DMT & Java, Server and
click on Next.
16.Click on Next.
17.Click on Yes to All for the question "C:\Program Files\IBM\LDAP\tmp dmt.log
exists on this system and it has been modified since the installation. Do you
want to remove this file?"
18.Click on Finish.
19.Select IBM MQSeries classes for Java and Java Message Service from
the Add/Remove Programs window and click on Remove.
20.Select Yes to "Are you sure you want to remove IBM MQSeries classes for
Java and Java Message Service from you computer?"
21.Select IBM MQSeries V5.2 from the Add/Remove Programs window and
click on Change/Remove.
22.Select Uninstall MQSeries completely and click on Next.
23.Click on Next.
24.Click on Next.
25.Click on Finish.
26.Select IBM DB2 and click on Change/Remove.
27.Click on Yes.
28.Click on Yes.
29.Click on OK.
30.Reboot the system.
31.Start up the Windows Explorer and delete the following directories:
C:\DB2
C:\DB2CTLSV
C:\DB2LOG
C:\itim
C:\LDAPDB2
C:\MQSeries
C:\WebSphere
C:\Program Files\IBM
C:\Program Files\IBM HTTP Server
C:\Program Files\SQLLIB
374
375
376
Appendix B.
This study can process the same threats and risks applied to different assets, but
concludes at a different level of liability, based on your particular business
environment. Then the decision has to be made: accept, mitigate, or transfer the
risk. This process can be handled by external consultants, such as IBM Global
Services, or by an internally appointed team. The process can use both formal
and informal methods, but the result is usually a blend of these approaches. The
threat identification, as well as this severity study, using a formal approach is
377
Static
Corporate
Policy
Standards
Standards
Standards
Standards
ProceduresPractices
ProceduresPractices
Procedures
Technical
Attention: Policies is a very common term and in many products you will find
specific policies sections. These are the product related policies that are
covered in the practice or procedure documents. The corporate policy is not
related to products and is a high level document.
378
Practical example
Here is an example of how a policy is defined and implemented with procedures
and practices.
The operations manager has reported an increased workload on the help desk
due to problems caused by employees downloading non-business related
programs onto their systems.
The problems range from the introduction of viruses to disruption of business
processes, with a real financial impact. To address this problem, upper
management incorporated, in the corporate policy, the following directive: the
corporate assets may be used only to perform enterprise related tasks.
First, the policy must be communicated to all employees in the enterprise.
The standards for the networking part explain which services may be allowed on
the employee computer. The practice will then explain how to set up the
379
Windows or Linux clients according to the standards, and the procedures will
explain how to perform a request, the requirements, and the approval paths, to
get special services installed on your computer.
The existing clients will be updated and controls will be performed to verify the
compliance, in addition to further audit of the environment.
The five steps we went through are summarized in Figure B-2. It is a common
approach adopted in many methodologies.
Policies
Implement
Manage
Risk
Audit
380
Examples of these external drivers are shown in this section. The list is not
exhaustive, nor is each description complete. It is provided as a guide to the type
of standards that may (or may not) apply to your organization and, therefore,
some of the external factors you must consider when creating policies.
Many organizations use these external standards as a guide to help them
formulate their own corporate policies. It is not uncommon to find organizations
using the ISO 17799 standards, but without having them externally audited and
certified. These standards are seen as a good foundation for security.
The Identrus standards are based upon standard PKI technologies for
authenticating secure transactions. In addition to the technology layers,
Identrus provides a complete infrastructure to help companies operate
effectively and safely on the Internet, across economic and political
boundaries, and with familiar business partners and new ones.
In addition to the technology standards and processes, Identrus describes an
all important set of business rules, contracts, and liabilities that create a
trusted environment particularly for use in the banking and finance sectors.
CFR 21 Part 11
Common Criteria
This is a set of tests originally based upon the US Orange book and
European/Australian ITSEC evaluations. It is currently recognized by 14
countries. There are seven levels of tests. Evaluation Assurance Levels (EAL) 1
- 4 are usually used in the commercial areas, while the tests representing the
381
higher EALs 5 - 7 are reserved for the security testing of highly secure
environments.
CAPS UK
In addition to internationally recognized evaluations, there maybe local
evaluations that impact an organization. The UK Government's
Communications-Electronic Security Group (CESG) have produced the Assisted
Products Scheme in effort to help commercial product vendors produce
cryptographic products suitable for use by the British government. It is called
CAPS (CESG Assisted Product Scheme). CAPS is similar in purpose to the FIPS
140 (for the US and Canadian governments) and the Cryptographic Advisory
Note (CAN) (for the Australian and New Zealand governments).
BS7799
The most widely known standard. British standard (BS) 7799 and its international
cousin ISO17799 are intended to serve as a single reference point for identifying
a range of security controls, needed for most situations, where information
systems are used in industry and commerce within large, medium, and small
organizations. BS7799 was written in February 1995 and was updated in May
1999.
BS 7858
BS 7858 is just one example of some of the other less, well known standards that
could affect security policy. Specifically, BS 7858 gives recommendations for the
security screening of personnel to be employed in an environment where the
security of people, goods, or property is a significant feature of the employing
organization's operations.
Legal requirements
The laws of the country in which an organization operates are many and diverse.
The application of the laws is variable from geography to geography, and it is
good to be aware of the impact of them upon corporate security policies. Modern
democracies are often fond of creating freedom of information laws. One of the
problems with these laws are that they are directly contrary to the same
democracies wish to maintain the privacy of individual information.
382
This directive and others give direction to issues surrounding the protection of
individuals with regard to the processing of personal data and on the free
movement of such data. The way they interact with national law must also be
considered.
US Health Insurance Portability and Accountability Act 1996
The Health Insurance Portability and Accountability Act 1996 (HIPAA) was
passed by the United States Congress to ensure the privacy of an individuals
private medical data.
Summary
Corporate policies must be thought of as business level requirements. They are
primarily internal business drivers, but they may be impacted upon by external
factors, so corporate policies will have to take account of these factors.
Subsidiary standards and the procedures and practices that result in turn are
also produced.
Corporate policies should be relatively static and technology free, while
standards, practices, and procedures can be more fluid and technology specific.
383
384
Appendix C.
ROI questionnaire
This appendix contains an example of the list of questions an organization
should consider when submitting information for an ROI study. This list is taken
from the ROI tool used by IBM Tivoli Security and System Management
specialists. The questionnaire is typically given to an organization some time
before a series of interviews takes place. The interviews serve to clarify some of
the answers, and also to find out some of the particular organizations special
requirements that could have an impact on the ROI.
Typically, the result of these interviews and the questionnaires are used to
provide the raw data for the ROI calculation. Not every organization will have the
answers to all the questions, so a number of industry standard default figures are
provided. Typically, these tools should be available in a number of international
currencies, complete with default answers specific to that country.
385
Part 1: Introduction
1. Please specify the following details about your organization:
Company name
Division
Contact name
Address
City, State/Province
Zip/Postal Code
Country
Phone number
E-mail address
Strategic Business Initiatives
2. Please indicate which strategic business initiatives are relevant to your
company and towards which Tivoli can assist:
Risk Management: Reducing the risk to the business and user productivity
Measures:
386
Business Continuance
Time-to-Market
Customer Satisfaction
User Satisfaction
Problem Rates
Responsiveness
Resolution
Availability
Labor Savings
Optimizing Campaigns
Customer experience/performance
3. Please specify the following details about your current enterprise users:
How many computer users are in the enterprise? _____________
What is the expected annual growth in the number of users? _______ (%)
What is your average annual revenue per employee? $______/employee
How many client computers are currently installed? _____________
387
4. Please specify the following details about your current enterprise servers.
Table C-1 How many enterprise servers are currently installed
Type of server
Number of servers
currently installed
Number of processors
Web
Database
Messaging
Application and
middleware
File/print and others
5. Please specify the following details about your technology and management
practices:
Estimate your best practices compared to your peers (specify one: best in
class, better than average, average, slightly less than average, less than
average)
Technology / Tools: ______________
Integration effectiveness: ______________
Process maturity: _____________
Estimate information about your computing environment compared to your
peers (select one: very high, high, average, lower than average, very low)
Business impact dependency: _______________
Complexity: _________________
6. Please specify the following details about your current staff headcount:
Table C-2 Full time equivalent staff managing IT functions/supporting the enterprise
Total FTE
Performance and Availability staff FTEs
Configuration and operations staff FTEs
Security Management staff FTEs
Storage Management Staff FTEs
Incident and Problem Management Staff
FTE
388
Average unburdened
salary
7. Please specify the following details about your current support services:
Table C-3 Specify the value of your annual support contracts (if any)
Service Desks
PC Desktop Support
Host outsourcing
389
390
100%
391
System
application
Application
name
Application
type
Availability
Operational
hours
per day
Operational
days
per week
Impact per
downtime
minute
App 1
App 2
App 3
App 4
App 5
App 6
App7
For reference, the following are industry average Impact per Downtime
Minute metrics that can be used.
Table C-6 Impact per downtime minute metrics
Financial/Trading
$40,000
Supply Chain
$10,000
ERP
$10,000
CRM
$8,000
E-Commerce
$8,000
E-Business
$8,000
Business Application
$5,000
Database
$5,000
Messaging
$1,000
Infrastructure
$700
392
100%
System
application
Application
name
Application
type
Availability
Operational
hours
per day
Operational
days
per week
Impact per
downtime
minute
App 1
App 2
App 3
App 4
App 5
App 6
App7
393
For reference, the following are industry average Impact per Downtime
Minute metrics:
Table C-9 Impact per downtime minute metrics
Financial/Trading
$40,000
Supply Chain
$10,000
ERP
$10,000
CRM
$8,000
E-Commerce
$8,000
E-Business
$8,000
Business Application
$5,000
Database
$5,000
Messaging
$1,000
Infrastructure
$700
Policy Management
Intrusion Detection
Repair and Resolution
Forensics
Counter Measures
Auditing and reporting
Other
394
Total
100%
Security
threat
Expected
number of
incidents
Number of
users/
customers
effected
Average
length of
downtime
(hours)
Downtime
cost per
user/customer
(per hour)
Additional
business loss
risk
Denial of
service
Intentional
data
destruction
Theft of
proprietary
information
Illegal
systems
access
(outsider)
Illegal
systems
access
(insider)
Year 1: _____________
Year 2: _____________
Year 3: _____________
395
What is the total application development time (in person hours) spent on
overall application development and maintenance annually (total, not just
security)?
Year 1: _____________
Year 2: _____________
Year 3: _____________
Year 1: _____________
Year 2: _____________
Year 3: _____________
Year 1: _____________
Year 2: _____________
Year 3: _____________
Year 1: $____________
Year 2: $_____________
Year 3: $_____________
4. Please specify the following details about your current new user profile
management:
How many new users need security access per year (Includes new users
being added because of growth and attrition)? _________________
What is the average annual change in new users needing access?
_________(%)
How many users require modified profiles each year (updates because of
promotions, relocations, and so on)? ______________
What is the average annual change in modified profiles?
_______________(%)
What is the typical Work Delay for new users to Receive Access?
____________ (hours)
396
5. Please specify the following details about your current password resets:
How many total number of help desk calls are fielded per user per month
(average 1.9 calls per user per month)? ________________
What is the average cost per help desk call (average $17.00 )?
______________
What percentage of all of the calls is password related (average 16%)?
_____________ (%)
How much lost productivity time is experienced in resolving password
issues (on average, 30 minutes)? ___________________
100%
397
3. Please specify the following details about your current data and backup
investment:
What amount of Server Data could be moved from online storage, and be
kept near line (on average, 20%)? ________(%)
What amount of Server Data could be moved from online storage to
Archive (on average, 20%)? __________(%)
What is the planned investment in tape drives, libraries, and tapes over
the next 12 months? $________________
What is the planned investment in network for backup bandwidth over the
next 12 months? $__________________
What is the annual growth in planned network investment?
____________(%)
What is the annual growth in planned tape investment?
______________(%)
4. Please specify the following details about your current restore profile servers:
How many Server Data Restores are conducted per month?
_____________
What is the average time it takes to complete each server restore?
___________ (hours)
What is the expected lost productivity/business per restore hour?
$_______________
5. Please specify the following details about your current restore profile - clients:
How many client data restores are conducted per month? _____________
What is the average time to complete each client restore? ____________
(hours)
What is the estimated annual increase in risk or downtime impact per
minute? ___________(%)
6. Please specify the following details about your current server backup issues:
What is the average amount of server data left unprotected due to backup
window issues (per week)? ______________(%)
How much additional server data is currently not backed up reliably every
evening/week? ______________(%)
For this server data, what is the risk of data loss in any given year?
________(%)
What is the average time to re-create, recover, or work around lost data
(hours per GB)? ________________ (hours)
398
Title
Salary
Business management
System administrators
Network administrators
Storage administrators
BAckup administrators
Database administrators
Security managers
Application managers
Operations administrators
Messaging administrators
Procurement specialists
Project managers
399
Title
Salary
Application developers
Service desk
400
Glossary
CSV In computers, a CSV (comma-separated
values) file contains the values in a table as a series
of ASCII text lines organized so that each column
value is separated by a comma from the next
column's value and each row starts a new line.
Here's an example:
Doe,John,944-7077
Johnson,Mary,370-3920
Smith,Abigail,299-3958
A CSV file is a way to collect the data from any table
so that it can be conveyed as input to another
table-oriented application. Spreadsheet programs or
relational database applications can read CSV files.
A CSV file is sometimes referred to as a flat file.
DAC Discretionary access control (DAC) is used
to control access by restricting a subject's access to
an object. It is generally used to limit a user's access
to a file. In this type of access control, it is the owner
of the file who controls other users' accesses to the
file. Using a DAC mechanism allows users control
over access rights to their files. When these rights
are managed correctly, only those users specified
by the owner may have some combination of read,
write, execute, and so on, permissions to the file.
401
402
Glossary
403
404
Related publications
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this redbook.
IBM Redbooks
For information on ordering these publications, see How to get IBM Redbooks
on page 406. Note that some of the documents referenced here may be available
in softcopy only.
Business Process Reengineering and Beyond, SG24-2590
Continuous Business Process Management with HOLOSOFX BPM Suite and
IBM MQSeries Workflow, SG24-6590
Enterprise Business Portals with IBM Tivoli Access Manager, SG24-6556
Enterprise Business Portals II with IBM Tivoli Access Manager, SG24-6885
Enterprise Security Architecture using IBM Tivoli Security Solutions,
SG24-6014
Intra-Enterprise Business Process Management, SG24-6173
Other publications
These publications are also relevant as further information sources:
IBM Tivoli Identity Manager Policy and Organization Administration Guide
V4.4, SC32-1149
IBM Tivoli Identity Manager Server Installation Guide for Windows V4.4,
SC32-1148
IBM Tivoli Identity Manager Tivoli Access Manager Agent for Windows
Installation Guide V4.4, SC32-1165
Bass, et al, Software Architecture in Practice, Second Edition, Addison
Wesley, 1997, ISBN 0321154959
Committee on Information Systems Trustworthiness, et al, Trust in
Cyberspace, National Academy Press, 1998, ISBN 0309065585
Harris, CISSP All-in-One Exam Guide, The McGraw Hill Companies, 2001,
ISBN 0072193530
405
Online resources
These Web sites and URLs are also relevant as further information sources:
IBM ^ pSeries Support AIX 4.3.3 Maintenance Packages
http://techsupport.services.ibm.com/server/mlfixes/43/10/01to10.html
406
Index
A
access control 47, 50, 211
management 43
model 1011
Access Control Information
see ACI
Access Control List
see ACL
Access Manager 72
access control list 168
agent 146147, 171
authentication 221
common name attribute 152
distinguished name attribute 152
entitlement 154
entitlements 151, 156
groups 154, 288
GSO Resources 168
integration with Identity Manager 145
pdadmin 155, 168
Policy Server 74, 188
protected object policies 168
protected object space 168
reconciliation 155
roles 287
sec_master 155
server principals 155
service 147, 154
surname attribute 152
UNIX endpoint 151
Web Portal Manager 151, 155, 168
WebSEAL 74, 169170
Access Manager for Business Integration 187
Access Manager for e-business 187, 192
Access Manager for Operating Systems 146, 175
access templates 210
Access360 61
account 78, 229
alias 98
auto generation 216
automatic generation 270
deleting 210
information 267
locking 210
management 64, 88, 92, 146
management module 65
orphan 79, 99, 113, 126
provisioning 82, 94, 155
reconciliation 98
report 85
user ID generation 82
accounts 126
ACI 82, 106107, 156, 230231, 261, 276
interaction 264
ACL 82, 127, 168
Active Directory 27
changelog connector 140
activity table 130
adaptor 70
admin domain 232
Admin Server option for DB2 117
administration
... of services 234
delegated 222, 260
group 267
administrative domain 230
administrator
rights 265
administrator roles 106, 156
advanced provisioning parameters 154
agent 80, 220
Access Manager 146147
certificate 228
CLI-X 290
connectivity 69
profile 147
agentCfg 147
AIX requirements 118
AIXProfile 176
alias 98, 229
All role 243
anonymity 50
API Javadoc 123
Application Layer 64
approval 278
element 101
workflow 83, 99
407
DAC 401
DAML 135, 148, 224, 401
DARPA Agent Markup Language 401
data join management module 66
data join module 69
data management zones 190
data services API 121
data services module 68
database 69
DB2
Admin Server option 117
Connect Client 117
Heap Size 117
performance optimization table 131
services tables 130
table analysis 129
workflow tables 130
DB2INSTHOME 119
default policy 10
delegate 94
delegated administration 36, 146, 156, 168, 260
C
capabilities of administrators 156
central repository 210, 212
certificate 147, 228
challenge question 79, 87, 89
challenges 126
CLI-X
attribute file 291
408
E
EJB 402
end element 101
enRole 126
enRoleAuthentication.properties 174
entities 78
entitlement 84, 95, 147, 151, 176, 277, 284
default attributes 153
entity management module 66
entity relationships 85
ePerson object 78
erdictionaryname 125
erPersonStatus 257
erSupervisor 255
escalation limit 113
EventHandler 139
excludeAccounts 155
Extensible Markup Language 403
ExternalLogonServlet 175
F
FESI JavaScript interpreter 122
firewall 224
port configuration 75
flow control 47
forgot your password 91
form
creation 63
design module 64
modification 134
rendering module 64
formTemplate 127
FTP 80, 117
ftp 224
functional design 56
G
government environment 13
grace login 151
group 20
management 79
membership 154
reconciliation 79
group membership 272, 283
group of administration 267
GSO Resources 168
GUI server 72
H
hardware requirements 117
Heap Size 117
high availability 222
historical information 69
historical reporting 114
historical request 130
HpuxProfile 176
HR synchronization 249
HTTPS 70, 80
I
IBM DB2 222
IBM Directory Integrator 70, 138, 169, 221, 250
assembly line 170
AssemblyLine 139
CSV file connectivity 139
entry object 141
EventHandler 139
parser connector 71
password synchronizer plug-in 139
Windows NT4 connector 139
Index
409
J
Java Database Connectivity 401
Java Message Service 67, 402
Java Naming and Directory Interface 249, 402
Java Server Pages 402
Javadoc 123
JavaScript 95, 97, 131, 146, 150, 234, 272
extensible framework 122
JDBC 116, 401
JMS 67, 402
connector 141
JNDI 70, 249, 402
connector 143
job role 82, 95, 184, 216
join engine 69
join type 277
joinDirectives 127
JSP 402
junction 175
410
K
Kerberos 402
L
LDAP 116, 220, 402
ACL 127
analysis 124
connector 140, 143
directory 69
distinguished name 250
ePerson object 78
excludeAccounts 155
group membership 154
Identity Manager schema 125
iNetOrgPerson object 78
membership restrictions 125
multi-value fields 252
replica server 188
tag value pairs 169
LDIF file 155
liability 377
Lightweight Directory Access Protocol 402
location 82
locking of accounts 210
logging 84, 204
logical component architecture 62
logical component design
Application Layer 64
service layer 66
Web User Interface 63
login policy 150
logo 131
loop 113, 279
M
MAC 402
mail extensible framework 122
mail module 67
manage people 91
managed resource 92
managed services 83
management entities 80
management of accounts 92
Mandatory Access Control 13, 402
MASS 40
access control 47
architectural decision 54
audit 47
component architecture 56
flow control 47
functional design 56
identity and credentials 47
solution integrity 47
solution model 54
use case 55
membership 284
menu system module 63
messaging module 67
Meta Directory 27, 29
Method for Architecting Secure Solutions 40
methodology 40
military environment 13
modification of form 134
MQSeries 118
multi-value fields 252
N
naming convention 229
network diagram 185
network topology 223
network zone
controlled 72
restricted 73
trusted 73
uncontrolled 72
network zones 72
O
object
operations 262
type prefix 229
ObjectMessage 142
operation 262
operation report 85, 114
organization tree 78, 81, 92, 229230, 238, 245,
260
design 231
module 64
organizational role 82, 95, 155, 157, 168, 176, 242,
246, 271272, 287
OrganizationName 126
orgChart 126
orphan account 79, 85, 99, 113, 126
Other role 243
P
parallel approval 101
parser connector 71
password
ageing 210
challenge question 79
change 267
forgotten 91
generation 272, 275
length 204
login policy 150
management 6, 43, 79, 88, 169, 212, 214, 216
management module 66
policy 65, 84, 97, 147, 150, 228, 230, 238239,
241
policy enforcement 140
policy for Windows 89
reset 87, 184, 192, 201
retry count 204
scheduled change 110
strength 98
strength checking 94
strength policy 150
synchronization 79, 89, 150, 169
synchronizer plug-in 139
pdadmin 151, 155, 168, 192
pending requests 88
pending requests list 111
people 126
performance optimization
DB2 table 131
listdata table 131
person 78, 82
attributes 132
delegate 94
entity 150
management 91
object 154, 169
object synchronization 170
personnel management 184
physical architecture 115
physical components 222
placement
... of components 71
... of services 235
policy 259
rule 253
policy 82, 126
corporate 377
Index
411
Q
quality of service 195, 387
R
RACF agent 80, 117
RBAC 11, 18, 270, 282, 402
412
role design 21
system design 22
reconciliation 70, 79, 98, 146, 154155, 229, 254,
284
identity feed 252
report 85
recycleBin 127
Redbooks Web site 406
Contact us xvi
redirectlogoff.jsp 174
redirectlogout.jsp 172
rejected request report 85
relational database 69
remote services module 68
report system 103
reporting 114
module 66
reports 85, 89
Request for Information 277, 279
request for information 65
requirements
software and hardware 117
resolution scope 232
resource 92
resource access lists 167
resource.def 294, 298
restricted network 73
return on investment 3, 194, 385, 403
reverse password synchronization 151
reverse proxy 188
RFI 65
node 102
risk assessment 4
risk management 195, 386
risk mitigation 3
ROI 199, 276, 403
role 20, 65, 82, 101, 106, 126, 216, 230, 271272
Access Manager 287
All 243
organizational 242, 246
Other 243
Role Based Access Control 3, 1011, 247, 270,
282, 402
rule 259
runConfig utility 131
S
schedule information 69
scheduler
scheduled_message table 131
scheduling
... of changes 110
... of reconciliations 112
module 68
schema.dsml 294295
scope 262
scope of policy 239
scripts 273
search function 93
search module 64
sec_master 155
secrets 49
Secure Sockets Layer 403
Securelink 80
security architecture 37, 52
security design objectives
Identity Management foundation 209
security domain 156
security policy 4, 43, 73, 146, 167
security roles 167
self-care 267
self-service 87, 260
interfaces 36
senior administrator 156
sensitivity silo 17
serial approval 101
server log 84
server principals 155
service 146, 267
... selection policy 65, 83, 234, 237, 243
Access Manager 147
administration 234
design requirements 234
instance 84
layer 66, 220
placement 235
profile 147, 233
report 85
serviceProfile 126
services 126
DB2 tables 130
remote_resources_recon_queries table 130
remote_resources_recons table 130
remote_services_requests table 130
resource_providers table 130
session timeout 123
shared secret 275
T
table analysis 129
TAMProfile 155
target systems 43
target type profiles 176
TextMessage 142
timpwflt.dll 140
to-do list 88, 99, 102
toolkit 290
transactional information 69
transactions 50
trusted network 73
Index
413
U
ui.properties 174
uncontrolled network 72
Universal Provisioning Agent 289
UNIX endpoint 151
UNIX user ID synchronization 175
use case 55
user 78
management 43, 191
provisioning 27, 30, 231, 235
registry 146
report 85
self-care 267
self-service 260
user ID generation 82
user interface 105, 218, 223
customization 131
user suspension
scheduling of ... 111
user to role mapping 107
V
validation policy 10, 212
Virtual Meta Directory 29
W
Web Portal Manager 151, 155, 168
Web single sign-on 170
Web user interface 105, 218, 223
Web User Interface Layer 63
WebSEAL 72, 74, 146, 151, 169170, 187, 222,
224
business entitlements 146
dynamic business entitlements 169
junction 175
reverse password synchronization 151
WebSphere Application Server
see IBM WebSphere Application Server
Windows
domain login 89
NT4 connector 139
password policy 89
password reset 89
requirements 120
work item 130
workflow 84, 99, 126, 130, 138, 214, 230, 271, 276
approval 83, 278
approval element 101
414
database 223
DB2 tables 130
design 63, 216
elements 100
end element 101
engine 36
escalation limit 113
java applet 99
join type 277
loop 113, 279
management module 65
module 68
parallel approval 101
password_transaction table 130
pending table 130
process table 130
processdata table 130
processlog table 130
Request for Information 279
serial approval 101
start element 100
subprocess 279
time limits 113
workitem table 130
worklist management module 65
WorldWide Project Management Methodology 40
WWPMM 40
X
X.500 27, 402
X.509 certificate authentication 67
xforms.xml 294
XML 69, 117, 135, 403
parser 251
(1.0 spine)
0.875<->1.498
460 <-> 788 pages
Back cover
Identity Management
Design Guide
with IBM Tivoli Identity Manager
Enterprise
integration for
identity management
Complete
architecture and
component
discussion
Tivoli Access
Manager integration
SG24-6996-00
ISBN 0738453323
INTERNATIONAL
TECHNICAL
SUPPORT
ORGANIZATION
BUILDING TECHNICAL
INFORMATION BASED ON
PRACTICAL EXPERIENCE
IBM Redbooks are developed by
the IBM International Technical
Support Organization. Experts
from IBM, Customers and
Partners from around the world
create timely technical
information based on realistic
scenarios. Specific
recommendations are provided
to help you implement IT
solutions more effectively in
your environment.