Security Guide
Security Guide
Version 5.1.0
Security Extract
GC19-3234-03
IBM FileNet P8
Version 5.1.0
Security Extract
GC19-3234-03
Note
Before using this information and the product it supports, read the information in Notices on page 261.
This edition applies to version 5.1.0 of IBM FileNet Content Manager (product number 5724-R81), version 5.1.0 of
IBM FileNet Business Process Manager (product number 5724-R76), and to all subsequent releases and
modifications until otherwise indicated in new editions.
Copyright IBM Corporation 2006, 2011.
US Government Users Restricted Rights Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Contents
ibm.com and related resources . . . . vii
How to send your comments . . . . . . . . vii
Contacting IBM. . . . . . . . . . . . . viii
Security overview . . . . . . . . . . 1
How does IBM FileNet P8 secure its objects?
How is security applied? . . . . . . .
User authentication . . . . . . . . .
Configuring authentication and authorization
Security cache . . . . . . . . . . .
Security administrators and security tools .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
4
4
5
6
6
Authentication . . . . . . . . . . . . 9
Authentication overview . . . . . . . . . . 9
Supported authentication standards. . . . . . 9
FileNet P8 Platform server authentication
architecture . . . . . . . . . . . . . 13
JAVA-based client authentication (JAAS). . . . . 14
Browser-based clients of J2EE application servers 15
J2EE thick Java client . . . . . . . . . . 17
Support for Content Engine 3.5 Java API clients 18
Support for Java applets . . . . . . . . . 18
Single sign-on integrations via JAAS . . . . . . 19
Web-Services-based client authentication via
Ws-Security . . . . . . . . . . . . . . 23
Username token credentials . . . . . . . . 24
Kerberos Credentials . . . . . . . . . . 25
Web Service extensible authentication framework 27
SAML credentials . . . . . . . . . . . 29
Java-based clients over the Web service transport 29
Process Engine authentication . . . . . . . . 29
Application Engine and Workplace authentication
33
Workplace application . . . . . . . . . . 33
Workplace applets . . . . . . . . . . . 34
Application Integration clients . . . . . . . 35
IBM FileNet P8 Portlets clients . . . . . . . 35
WebDAV clients . . . . . . . . . . . . 36
Kerberos for Content Engine. . . . . . . . . 36
Introduction to Kerberos . . . . . . . . . 37
Kerberos prerequisites . . . . . . . . . . 38
Creating the Kerberos Service Principal Name
(SPN) identity . . . . . . . . . . . . 41
Choosing the SPNs . . . . . . . . . . 42
Creating an Active Directory user account . . 42
Mapping the Active Directory user account to
the SPN . . . . . . . . . . . . . 43
Creating a Kerberos keytab entry for the SPN
on the Content Engine system . . . . . . 44
Enabling Kerberos on the application server . . 45
Enabling Kerberos on the application server
(WebLogic 9.1 and later) . . . . . . . . 45
Enabling Kerberos on the application server
(WebSphere 6.0) . . . . . . . . . . . 46
Enabling Kerberos on the application server
(WebSphere 6.1 and 7.0) . . . . . . . . 47
Copyright IBM Corp. 2006, 2011
47
48
49
50
50
51
52
53
53
53
54
55
55
55
56
56
57
57
58
58
58
59
59
60
60
60
61
61
Authorization . . . . . . . . . . . . 63
About access rights . . . . . . . . . . .
What are access rights? . . . . . . . .
ACE source: Default, Direct, Inherited, Template
ACE security levels . . . . . . . . . .
Allow or Deny and order of evaluation . . .
Default security . . . . . . . . . . . .
Security for integrated components and third-party
products . . . . . . . . . . . . . .
Browsers . . . . . . . . . . . . .
Database security . . . . . . . . . .
Security for IBM Legacy Content Search Engine
Security for IBM Content Search Services . .
Security for FileNet P8 eForms . . . . . .
. 63
. 64
67
. 67
. 68
. 68
. 69
. 70
. 70
70
. 70
. 71
iii
iv
Security Extract
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 129
. 129
. 130
131
133
133
133
134
135
137
138
138
138
140
141
142
142
142
143
145
146
146
146
148
149
150
150
152
154
155
158
160
160
162
163
165
166
166
174
. 177
. 178
. 180
181
181
182
182
183
184
184
185
185
185
187
188
189
190
191
191
192
193
193
194
195
196
197
197
198
199
199
200
200
200
201
201
201
202
203
203
204
205
205
206
207
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
207
207
209
209
209
210
210
210
211
211
212
186
187
189
189
190
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
217
219
219
220
. 221
221
. 222
. 223
. 223
. 224
. 224
. 224
. 226
. 227
. 227
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 236
. 237
. .
for
. .
. .
. .
. .
229
230
231
231
232
232
232
235
236
238
242
243
243
245
.
.
.
. 245
. 246
. 246
.
.
.
.
.
.
.
.
248
250
250
250
Contents
. 251
251
Notices . . . . . . . . . . . . . . 261
Index . . . . . . . . . . . . . . . 265
Analysis .
Setup . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 255
. 257
vi
Security Extract
Trademarks .
. 263
Information center
You can view the product documentation in an Eclipse-based information center
that you can install when you install the product. By default, the information
center runs in a Web server mode that other Web browsers can access. You can also
run it locally on your workstation. See the information center at
http://publib.boulder.ibm.com/infocenter/p8docs/v5r1m0/index.jsp.
PDF publications
You can view the PDF files online using the Adobe Acrobat Reader for your
operating system. If you do not have the Acrobat Reader installed, you can
download it from the Adobe Web site at http://www.adobe.com.
See the following PDF publications Web sites:
Product
Web site
Consumability survey
You are invited to tell IBM how to improve the consumability of software
products. If you want to help IBM make IBM FileNet P8 easier to use, take the
Consumability Survey at http://www.ibm.com/software/data/info/
consumability-survey/.
Copyright IBM Corp. 2006, 2011
vii
Contacting IBM
To contact IBM customer service in the United States or Canada, call
1-800-IBM-SERV (1-800-426-7378).
To learn about available service options, call one of the following numbers:
v In the United States: 1-888-426-4343
v In Canada: 1-800-465-9600
For more information about how to contact IBM, see the Contact IBM Web site at
http://www.ibm.com/contact/us/.
viii
Security Extract
Security overview
This section presents a quick overview of IBM FileNet P8's security features and
design.
How does IBM FileNet P8 secure its objects?
How is security applied? on page 4
User authentication on page 4
Configuring authentication and authorization on page 5
Security cache on page 6
Security administrators and security tools on page 6
Most Content Engine object classes are independently securable, meaning they are
secured by their own ACL. Some are dependently securable, meaning that their
security depends on some other object that they are associated with. A good
example is the Content Element object, which can only exist in relationship to a
Document object. The Document object is independently securable, while its
various Content Elements take their security from the Document they are assigned
to.
ACL and ACE model
Securable objects are secured by ACLs comprised of ACEs. Understanding the
ACL/ACE model, and how security principals are determined and permissions
granted is central to understanding how to design a secure FileNet P8 system.
First comes authentication, then comes authorization. Users are first authenticated
to the FileNet P8 domain, which corresponds to a particular user context in the
associated authentication provider. This determines that users are who they say
they are, by validating their login user name and password. Thereafter,
authenticated users are authorized to do certain things by the security of
individual objects. For example, once the authentication process determines that
you are in fact the user Bob who is known to the authentication provider, then the
ACL on each securable object will determine what actions Bob can perform on the
object (including nothing at all!)
Users and groups that are authenticated to access a FileNet P8 system arrive into
the FileNet P8 security context with no inherent permissions of any sort. It is up to
the object store administrator to assign FileNet P8-specific permissions to these
accounts. For example, a user who is a Windows domain administrator is just like
any user to FileNet P8. The user could be granted FileNet P8 object store
administrative permissions while the Windows domain administrator could be
granted nothing more than view or read-content permissions. In other words, the
security context of the directory service or other software applications has no
applicability to the FileNet P8 security model (and vice versa).
If your operating system is Microsoft Windows, do not use Windows service
accounts for any user or group accounts required by FileNet P8.
Some other security features applied to ACEs and secured objects are:
Allow and deny
Each ACE that is present on an object's ACL is either allowed or denied
the right to do certain things. For example, a particular class of documents
could allow Alice to delete a document but deny Bob the same right.
Following standard practice, deny always takes precedence over allow,
which means you must set up ACLs carefully. If Alice is allowed access to
a document as a user but belongs to a group that is denied access, then she
will not have access to the object.
Inheritable depth
Certain rights are inheritable. FileNet P8 lets you configure whether they
should not be inherited, or inherited only by objects that are immediate
children (first generation only), or by all children.
Ownership
Most objects have an owner, who is usually the user who created the
object. Similar to the Windows "built in" accounts, FileNet P8 automatically
applies an internal "special" user account called the Creator-Owner,
Security Extract
User authentication
All logins to FileNet P8 are done through the Java Authentication and
Authorization Service (JAAS).
Authentication is a process that occurs between a J2EE client application (for
example, Workplace), a J2EE application server (either WebLogic, WebSphere or
JBoss, hosting an instance of Content Engine), and one or more JAAS login
modules. This process does not involve any FileNet P8 code. Content Engine's
Security Extract
ability to leverage JAAS for authentication means that if a single sign-on (SSO)
provider writes a JAAS Login Module for a supported application server, then
clients of FileNet P8 applications hosted in that application server can leverage that
SSO solution. See the Authentication section for full information on FileNet P8
authentication architecture.
As a result, and unlike earlier releases of FileNet P8, the Content Engine
installation process configures authentication and authorization separately even
though these two configurations will often use the same information.
Authorization takes place by means of a direct connection between Content Engine
and one of the supported directory services. See the Directory service providers
section for details. The IBM FileNet P8 Hardware and Software Requirements contains
the supported versions of these third-party products.
Process Engine delegates authentication tasks to Content Engine. A client of the
Process Engine authenticates with the Content Engine server, and then sends the
credentials obtained from the Content Engine to the Process Engine server with
each request. See Process Engine Authentication for details.
Application server
authentication
configuration
Authorization
SSO
Authentication
Directory server
Security overview
Security cache
For performance reasons, both Process Engine and Content Engine cache
information on users, groups, and realms returned by the directory service.
Cached security information can become stale as a result of changes made to the
directory server. Each collection of users, groups and realms is subject to a time to
live (TTL). From the time that a collection is first retrieved until the TTL interval
has elapsed, requests for the same collection will return the cached information.
Once the TTL has elapsed, the cached information will be discarded and fresh data
will be obtained from the directory server.
Cache staleness can have the following effects:
v Recently added users, groups, or realms will not be visible in the relevant
collections.
v Recently deleted users, groups, or realms will appear to be still present until the
credentials cache refreshes.
v Updates to user or group information (for example, changed display name) will
not be visible.
Staleness does not affect the ability to use a recently added user or group name in
programmatic calls, nor to log in as a recently added user. Also, staleness does not
compromise the security of objects. The default TTL for Process Engine security
cache is four hours. Content Engine has several default TTL settings. For
information on how to set the Content Engine server caches, see FileNet P8
domain properties (Server Cache tab). For information on managing the Process
Engine security cache, see Manage the Process Engine user cache.
Related information:
FileNet P8 domain properties (Server Cache tab)
Manage the Process Engine user cache
Security Extract
Enterprise Manager
This is the tool that system administrators will use in their daily work.
Like similarly named tools provided by Microsoft SQL Server and Oracle,
Enterprise Manager gives system administrators easy access to most of the
administrative and security features needed for Content Engine security
configuration tasks.
Process Engine
Using the Process Engine Configuration Console, the Process Engine
administrator can assign access rights to workflow rosters, work queues,
and user queues. You will use another Process Engine tool, the Process
Task Manager, to configure how the Process Engine integrates with the
directory service.
Workplace and Workplace XT, and related applications (Application Integration,
IBM InfoSphere Enterprise Records, eForms)
The security context for applications is defined and maintained by a
combination of Content Engine, Process Engine, and Workplace or
Workplace XT. Consider the following examples:
v Object security (documents, folders, custom objects, events) is maintained by
Content EngineContent Engine.
v Workplace and Workplace XT maintain their own configuration settings in its
Site Preferences, which can be considered a security feature because they
determine such things as whether a user can see certain types of documents. Site
preference for Default Access Roles determines the members of such roles as
Application Engine Administrators, PSConsole, PSDesigner, PWAdministrator,
PWConfiguration and PWDesigner.
v Workplace and Workplace XT also makes use of rosters, queues, and other
workflow-related objects that are created and maintained as a part of Process
Engine security.
v The Process Configuration Console is available in Workplace and Workplace XT.
Some security tasks can be completed by duly authorized users logged on to these
applications, while others, including most of the more advanced tasks, are
completed by an object store administrator running Enterprise Manager. Consult
documentation provided for Workplace, Workplace XT, and other applications to
see how much security-related functionality can be carried out by Application
Engine administrators and advanced users.
Security overview
Security Extract
Authentication
Authentication is the act of verifying users' identities based on credentials that
those users present.
Authentication overview
JAVA-based client authentication (JAAS) on page 14
Single sign-on integrations via JAAS on page 19
Web-Services-based client authentication via Ws-Security on page 23
Process Engine authentication on page 29
Application Engine and Workplace authentication on page 33
Kerberos for Content Engine on page 36
Authentication overview
Authentication depends on several components.
Supported authentication standards
FileNet P8 Platform server authentication architecture on page 13
JAAS subject
Credentials
JAAS principal
JAAS credentials
End user
JAAS LoginContext
JAAS configuration
JAAS
login
Login
results
JAAS framework
JAAS LoginModule
JAAS LoginModule
JAAS authentication
The client application obtains a JAAS Subject prior to calling the Content
Engine Java API. Interactions with the Content Engine Java API then result
in the Content Engine EJB being invoked. The client's JAAS subject is
transparently sent to the J2EE application server with each EJB call. The
application server validates the JAAS subject, and confirms the caller's
identity before executing any code in the Content Engine EJB.
Tip: For information about the authentication process used for a Web
service-based client, see Web-Services-Based Client Authentication Via
Ws-Security.
JAAS configurations
To use a J2EE-based application, a client must first perform a JAAS login.
To do this, the client must specify a JAAS configuration (typically through
a configuration file). The JAAS configuration specifies the authentication
technologies (Login Modules) that will be used to verify the client's
credentials.
A JAAS configuration file lists one entry for each configured application.
Within an application's entry is a list of Login Modules for that application.
Based on the contents of the configuration file, the JAAS framework
dynamically determines which set of authentication technologies to invoke
when a client application attempts to authenticate.
Each entry in a JAAS configuration is marked as Required, Requisite,
Sufficient, or Optional. The authentication process for the client succeeds
only if all Login Modules marked either Required or Requisite succeed. If
no Required or Requisite Login Modules succeed, then at least one
Sufficient or Optional Login Module must succeed.
JAAS login contexts
A J2EE client application must specify a JAAS configuration and a
mechanism through which credentials can be obtained from a user at
runtime. These two items constitute a JAAS Login Context. J2EE client
applications use the Login Context to interact with JAAS and to
authenticate themselves to a J2EE server.
JAAS login modules
JAAS-compliant Login Modules are implemented by authentication
technology providers. J2EE application server vendors, such as BEA, IBM,
10
Security Extract
11
should respond. In all cases, a stand-alone Java client must use Login
Modules compatible with the J2EE application server it wishes to call.
Once a JAAS Subject has been obtained by the application, there are
differences in how it indicates to the Java environment that the obtained
Subject should be used when executing a given set of code, such as
invoking an EJB. This is an area where the J2EE application server vendors
had to improvise, and, as a result, different runtime calls are required for
accessing different J2EE application servers.
WS-Security overview
A Web service is an XML-based interface to a system that is in
conformance with the key Web services standards. Through standards
compliance, Web services enable the development of service-oriented
architectures, and allow heterogeneous systems to discover one another
and interact. FileNet P8 has developed Web service interfaces to the
FileNet P8 Process Engine and Content Engine services, and supports the
use of Business Process Execution Language (BPEL)-compliant Web
services within a business process.
One of the key standards that defines a Web service is the WS-Security
standard, developed by the OASIS standards body. WS-Security defines
three main security mechanisms for Web services: security token
propagation, message integrity, and message confidentiality. In this topic,
we are only concerned with the first of these: security token propagation.
WS-Security provides profiles that define how different types of security
credentials are formatted and inserted into a Web service message.
Like JAAS, WS-Security is an extensible standard which supports multiple
security token formats. The WS-Security specification describes how to
encode a set of standard tokens as well as defining a general mechanism
for encoding any binary token. However, the specifics of the standard
tokens (the actual XML elements and attributes) are not defined in the
WS-Security specification. They are defined in separate profiles, including
the Username Token Profile, the X.509 Certificate Token Profile, the
Security Assertion Markup Language (SAML) profile, the Kerberos profile,
etc. It is these profiles that ensure interoperability between different
implementations using the same token type. Later subtopics will describe
how these profile types are used, or might be used, in the context of
FileNet P8.
Unlike JAAS, WS-Security does not provide an execution environment that
defines how to configure authentication on the client and server, or how a
client can become authenticated, or how a security provider can implement
and package a standards-compliant Login Module. WS-Security defines
only the encoding of security tokens within the SOAP XML header. The
sender of the token can perform an actual authentication, and send some
proof of identity with a reference to a security authority who vouches for
that identity (as in the Kerberos and X.509 certificate cases), or the sender
can send raw credentials, which must be verified by the server (as in the
username token case). The receiver of the token can process it in whatever
way it sees fit.
When the Content Engine server receives a Web service request, the
Content Engine Web service listener extracts the WS-Security header and
performs a JAAS login based on its contents. If this JAAS login is
successful, then the Web service listener passes the request onto the
Content Engine EJB layer within the EJB container.
12
Security Extract
Authentication
13
3.X COM
compatibility layer
(CCL)
3.x Java
compatibility
layer
.NET API
JAVA API
IIOP/T3/JNP
SOAP
J2EE application server
- IBM FileNet Content Engine application
Web Container
Web Services listener layer
EJB Container
EJB layer
Resource Adapter
IBM FileNet Content Engine Core
Directory
server
GCD DB
Object store 1
DB
Object store 2
DB
14
Security Extract
The way that JAAS-based authentication is used can differ in different client and
server scenarios.
Browser-based clients of J2EE application servers
J2EE thick Java client on page 17
Support for Content Engine 3.5 Java API clients on page 18
Support for Java applets on page 18
15
allows customization of the look and feel of the login page and any
error pages. It also requires a secure transport to protect the password.
This option is the default for both Workplace and Workplace XT logins.
v HTTPS Client Authentication (CLIENT-CERT): This option requires each
user to have a unique Public Key Certificate (PKC), and requires the use
of an HTTPS (SSL) connection between the client and the server.
Note that while all four of the options above can be executed over an
HTTPS connection (and, in fact that is a recommended best practice), only
CLIENT-CERT actually requires an HTTPS connection. SSL is engaged
through the configuration in the servlet descriptor of <transportguarantee> as CONFIDENTIAL or INTEGRAL.
All of these technologies are forms of container-managed authentication,
where the J2EE servlet container performs the JAAS authentication based
on credentials obtained by a standard mechanism. The specification of one
of these authentication mechanisms is a standard part of a servlet
deployment descriptor. The specification and configuration of how the
J2EE application server validates these credentials, however, is
application-server-dependent. In an enterprise environment, an
authentication mechanism must be provided to validate credentials against
the enterprise identity management solution (either a directory service or
SSO solution).
Once a caller has been authenticated by a J2EE servlet container, if the
servlet subsequently calls an EJB, the Servlet Container is required to
propagate the caller's identity (JAAS Subject) to the EJB. The diagram
below illustrates the container-managed authentication case, using
forms-based authentication to authenticate the caller against Active
Directory:
IBM FileNet
Content Engine
Server
1
7
Client
User session
Servlet
implementation
JAAS login
module
Directory service
16
Security Extract
5. The J2EE server creates JAAS Principal and Subject objects using the
Active Directory JAAS Login Module, and places them in the user's
session.
6. The J2EE server redirects the user back to the application page that was
originally requested.
7. The servlet container looks for a user principal value available on the
incoming request.
8. Once invoked, the servlet makes a call to Content Engine, and the
user's JAAS Subject is propagated to Content Engine's EJB container.
Perimeter authentication
In perimeter mode, the authentication process occurs outside of the Web
container. An entity outside of the application server collects the users'
credentials, validates them through proprietary mechanisms, and sends
them onto the server in the form of an HTTP cookie. This is the
mechanism used by SSO solutions to integrate with a J2EE Web
application. Several examples of this mode are discussed in Single sign-on
via JAAS.
The basic pattern is that a third-party proxy server intercepts the Web
server requests and authenticates them using proprietary technology. A
proprietary HTTP header is then added to the request (an SM-Session
token in the Netegrity case, or an LTPA token in the Tivoli Access Manager
case). When the request arrives at the Web server, the servlet container
intercepts it, detects that it contains an SSO cookie, extracts the cookie, and
invokes the SSO provider logic to perform a JAAS login, using SSO specific
Login Modules, converting the contents of the cookie into a valid JAAS
subject.
Perimeter authentication is considered as a form of container-managed
authentication, even though authentication occurs outside of the container.
Perimeter authentication is configured by selecting CLIENT-CERT as the
container-managed authentication mechanism, and then performing some
additional SSO provider-specific steps. The Web container extracts
whatever data was present in the CLIENT-CERT cookie of the incoming
request and passes it into the JAAS Login Modules that are configured for
the Web application. A JAAS Login Module for a third-party SSO vendor
can pass a proprietary token in this CLIENT-CERT field and then process
that token in a Login Module the vendor provides.
Integration with Kerberos-based authentication environments via the
Simple and Protected GSS API Negotiation Mechanism (SPNEGO)
standard is one type of perimeter authentication used by many J2EE Web
container implementations.
17
some cases, a Login Module that allows the use of PKI certificates with two-way
SSL might also be available. Support for other authentication options in a thick
Java client environment will most likely require a custom integration. Clients of the
FileNet P8 Content EngineJava API can use a JAAS Subject that they have obtained
themselves, or pass in user name and password credentials to the API, which will
then attempt to obtain a JAAS Subject for them, using Login Modules specified in
the operative JAAS configuration.
18
Security Extract
Reverse proxy servers are designed to handle traffic from browser-based clients,
and typically translate any references that appear in HTML data correctly. There
are a number of special considerations that come into play when applet traffic is
sent through a reverse proxy server:
Handling Cookies
Cookies are data sent between a client and a server via HTTP headers. In a
reverse proxy scenario, the reverse proxy can interject its own cookies into
the data sent to the server, as well as adding to and translating the set of
cookies that are returned from the server to the client. The applet must not
cache cookies in memory; it must obtain them from the HTTP connection
every time it needs to access them so that it can obtain the latest set of
translated cookies sent by the reverse proxy.
Handling Redirects
If a reverse proxy detects stale or invalid authentication tokens in the
cookies sent from a client, it can use an HTTP re-direct to cause the client
to refresh its cookies. The applet must handle HTTP re-directs properly.
Translating URL's embedded in XML or other non-HTML data
Applets typically send non-HTML data back and forth with the server. If
the data returned from the server contains embedded URL's, the reverse
proxy server must translate these. Causing this to happen might require
changes in the proxy server, to have it translate data in fields which it
would not normally examine.
19
20
Security Extract
Proxy Server
Request with
session
Web Container
Client Response
Proxy Server
18
14
Response
17
Request
10
with
2
session Login with
Prompt for
session
credentials
Netegrity
3
Credentials SiteMinder
Web Agent
11 Validate
7
session
Session cookie
JSP/Servlet
16
Request
13
Validate credentials
Subject
EJB
return
SiteMinder ASA
Identity Asserter
EJB
call
12
SiteMinder
Policy Server
IBM FileNet
Content Engine
Server
EJB Container
Content
Engine
EJBs
Content
Engine
Core
Credentials
5
Validate user
15
Enterprise
Directory
Group
membership
Authentication
21
The EJB container hosting the P8 Content Engine trusts this JAAS subject,
because it has a trust relationship established with the J2EE application server
hosting the P8 Application Engine.
15. To perform authorization, Content Engine retrieves user and group
information from the user directory.
16. The Content Engine EJB returns to the JSP/servlet.
17. The JSP or servlet builds an HTTP response and returns it to the proxy server.
18. The proxy server returns the response to the client.
When applets are used as a part of the client application, then the considerations
in Support for Java applets on page 18 must be taken into account to ensure that
the applet behaves properly in the Netegrity environment.
WebSeal from IBM Tivoli Access Manager (TAM)
In the example presented in this topic, a browser-based client that has
performed a login to a Windows domain in an Active Directory
environment, uses an Internet Explorer (IE) browser to access a servlet or
JSP page through an IBM WebSeal proxy. The JSP page calls Content
Engine through the Content Engine Java API, over the EJB transport. This
use case describes the use of Kerberos credentials and Windows integrated
login to authenticate to WebSeal. Note, however, that any other
browser-based authentication mechanism supported by WebSeal (for
example, HTTP Basic or Forms-based authentication) will work just as
well. The Windows Integrated Logon case below requires the use of Active
Directory and the Microsoft Internet Explorer browser. Other
browser-based scenarios, such as a forms-based authentication scenario,
will work with other browsers and other directory services.
Request
for JSP page
Client
3
WebSeal
Proxy Server
2
Reply: Denied
- Use SPNEGO
Customer JSP
Application
Web Container
IBM FileNet
Content Engine
WS Listener
9
7
Return
TAM credential
Obtain Kerberos
Ticket For Server 1
Web Container
Perform JAAS
Logon Against TAM
Validate
ticket 6
Logon to
Windows Domain
Request for
JSP page
8
(forwarded with
TAM cookie)
10
Call to
customer EJB
Call to IBM FileNet
Content Engine 11
EJB Container
IBM FileNet
Content Engine
EJB(s)
EJB Container
Active
Directory
(KDC)
6a
Validate Ticket
Customer EJB
IBM FileNet
Content Engine
IE-based client in a Windows domain accesses a servlet or JSP page through an IBM WebSeal proxy.
22
Security Extract
Authentication
23
Clients of a Web service must produce WS-Security compliant headers to use any
of the FileNet P8 Web services. Most Web service-based applications are created
using a toolkit, such as Microsoft's Visual Studio, which handles the creation of
WS-Security compliant headers.
Username token credentials
Kerberos Credentials on page 25
Web Service extensible authentication framework on page 27
SAML credentials on page 29
Java-based clients over the Web service transport on page 29
24
Security Extract
<wsse:Nonce>QkzWRIL2COP9D4ELX4LyZQ==</wsse:Nonce>
<wsu:Created>2005-11-17T19:24:15Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
Kerberos Credentials
In a Kerberos environment, clients obtain tickets that grant them access to interact
with a particular server for a particular period of time. Servers are able to verify
the validity of these tickets and of the user's identity. Symmetric encryption is used
to secure the tickets and keys that are exchanged in a Kerberos environment.
The Web Services Security Kerberos Token Profile (available from http://www.oasisopen.org) specifies how Kerberos-based credentials can be passed in a WS-Security
header.
Kerberos overview
A Kerberos environment requires the presence of one or more Kerberos
Key Distribution Centers (KDCs). A KDC generates the encryption keys
and tickets that are used in the environment. The next graphic illustrates
the exchanges that occur in a typical Windows Kerberos-based
client/server interaction (a UNIX Kerberos interaction would be
conceptually identical):
IBM FileNet Content Engine Server 1
Client
Web Container
Directory
Services
IBM FileNet
Content Engine
WS Listener
6
1
Kerberos JAAS
LoginModule
Return
JAAS
Subject
Kerberos
KDC
EJB container
IBM FileNet Content Engine EJB(s)
Kerberos KDC generates encryption keys and tickets that are passed to the Web services listener
25
26
Security Extract
Authentication
27
...
<wsse:Security>
<wsse:BinarySecurityToken>
<CustomData/>
</wsse:BinarySecurityToken>
</wsse:Security>
...
J2EE application server
- IBM FileNet Content Engine application
7
Web container
LoginContext.Login(FileNetP8Engine, CBH);
{ Callback() }
{ CallbackHandler }
EJB container
EJB layer
Resource adapter
IBM FileNet Content Engine Core
28
Security Extract
6. For each callback that the client has requested, the Content Engine Web service
CallbackHandler supplies the callback with requested XML fragments from the
incoming WS-Security header, such that they can be retrieved by the custom
WS-EAF JAAS Login Module.
7. The Login Module is now in possession of the WS-Security header information,
and is able to use this information to perform its proprietary authentication
process. If the authentication is successful, then a JAAS Subject is populated
and returned.
8. The Content Engine Web service listener now has a valid JAAS Subject, and can
call the Content Engine Web service to handle the request, via the Content
Engine EJB.
SAML credentials
The Security Assertion Markup Language (SAML) is a Web services specification
that defines how to encode security assertions in XML.
FileNet P8 does not provide any explicit support for SAML tokens. However, the
Web Services Extensible Authentication Framework defined in the previous topic
can be used to build support for authenticating via SAML-based credentials within
FileNet P8 applications.
29
JAAS
7
4
1a
JAAS
vwBroker
VWKs
Process
Engine
Content
Engine
JAVA API
Enterprise
Directory
Process Engine client first authenticates with JAAS on the application server and then with the Content Engine
server.
30
Security Extract
31
JAAS
2a
2b
VWks
Content Engine EJB Listener
Process
Engine
Content Engine
Java API
Enterprise
Directory
Process Engine Web service client sends a request to the Process Engine Web service listener.
32
Security Extract
Workplace application
Workplace is a user Web application that provides access to the document
management and business process management capabilities of FileNet P8.
Workplace also supports extended FileNet P8 capabilities such as forms
management, records management, and portals.
Workplace is one example of a Java-based thin client solution, as described in the
section Browser-based clients of J2EE application servers. (Most of the
considerations discussed in that section apply for the Workplace application.)
Workplace is built using the Web Application Toolkit, and runs within a web
container on a Java 2 Enterprise Edition (J2EE) application server, positioning it
well to participate in the JAAS-based authentication framework of FileNet P8. The
Web Application Toolkit is an extensible framework for building web applications.
Programmers can use the toolkit to customize Workplace functionality or to build
customized web applications.
The following topics discuss how each of the high-level authentication options
discussed in Browser-based clients of J2EE application servers apply to the
Workplace application.
Application-managed authentication
Application-managed authentication (the mode supported by earlier
versions of Workplace) is basically a forms-based authentication, but the
Workplace application performs the redirection of unauthenticated user
requests to a log in page, and encodes the credentials supplied to the log
in page, in the user's JavaServer Pages (JSP) session. This mode supports
only user name and password credentials. The credentials collected from
the Application Engine custom login page are used to programmatically
perform a JAAS login. This mode is still the current default behavior of
Workplace.
Container-managed authentication
Authentication
33
In this mode, the application does not control the authentication process.
The deployment descriptor for the application specifies the security
constraints required to access application pages.
The deployment descriptor specifies the authentication method that should
be used. The following standard methods defined by the Servlet
specification are supported:
v Forms-Based Authentication: The container redirects the user to an
HTML page, where the user's credentials are collected.
v Basic Authentication: The container uses standard HTTP options to
direct the user's browser to prompt for user name and password
credentials.
v HTTPS Client Authentication: This mechanism requires each user to
have its own Public Key Certificate (PKC), and requires the use of an
HTTPS (SSL) connection between the client and the server.
Perimeter authentication
This option is how most SSO products integrate with a J2EE application
server. Client browsers running Workplace are redirected to a proxy server
that authenticates the caller, and places a token in an HTTP header for
them. When the request reaches the server, the container extracts the
credentials and invokes SSO provider software that performs a JAAS login
using them. This is known as a perimeter authentication because the actual
authentication occurs outside of the container. Clients are already
authenticated before their servlet requests arrive at the server. See
JAVA-based client authentication and the examples in Single sign-on
integrations via JAAS for more information.
Perimeter authentication lets Workplace leverage standard integrations
between the application server vendors and the SSO technology vendors.
Restriction: Support for SSO in Workplace is limited to two specific
combinations that IBM FileNet P8 has qualified, as discussed in Single
sign-on integrations via JAAS. If you are implementing SSO in an IBM
Tivoli Access Manager WebSEAL 6.0 environment, you must configure
WebSEAL for transparent junctions. For more information and
configuration details, see your IBM product documentation.
Workplace applets
The Application Engine server hosts the Workplace Web application, Workplace
Java applets, Process Engine applets, and application development tools.
Application Engine is the presentation layer for both process and content. A
number of different components run on the Application Engine. The sections below
discuss how each of these components deals with authentication and single sign-on
(SSO) integration.
The Workplace applications include the following Java applets:
v
v
v
v
v
v Publishing Designer
v Search Designer
34
Security Extract
v
v
v
v
Image Viewer
Process Simulation Analyzer
Process Simulation Console
Process Simulation Designer
The topic Support for Java applets on page 18 discusses some of the concerns
that must be taken into consideration when using Java applets across a reverse
proxy server. The Workplace applets address these concerns in the current release.
The Workplace applets exchange XML data with the Application Engine server,
and this XML data contains URL references that are not, by default, translated
properly by reverse proxy servers. For this reason, some custom configuration
work is required to get reverse proxy servers to work properly with the applets.
Authentication
35
WebDAV clients
tbd
As of the current release, the WebDAV implementation has moved from Content
Engine to Application Engine. WebDAV is now implemented as a separate servlet,
residing in the same Web container as Workplace.
WebDAV is an HTTP-based API that does not present an HTML user interface to
clients. For this reason, WebDAV is not able to take advantage of forms-based
authentication schemes. In the current release, the WebDAV servlet must always be
configured for application-managed authentication, managing its own user
challenge process. The WebDAV servlet will be configured so that there is an
application-level BASIC HTTP challenge/response mechanism used to gather
WebDAV client credentials.
If Workplace is configured to use one of the supported end-to-end SSO solutions
using a reverse proxy server, then the reverse proxy server must either be
configured to pass WebDAV traffic through unmodified, or the WebDAV clients
must be configured to bypass the reverse proxy server, going directly to the
Application Engine server.
Application-managed authentication
If Application Engine is configured to use forms-based authentication (be it
container-managed forms-based authentication, the default
application-managed forms-based authentication, or a perimeter
authentication scheme using a form to collect credentials) then WebDAV
will not be able to participate in this. This will typically be the case, so the
WebDAV servlet will be required to manage its own user challenge
process. The WebDAV servlet will be configured so that there is an
application-level BASIC HTTP challenge/response mechanism used to
gather WebDAV client credentials.
Container-managed authentication
When Workplace is configured for a container-managed authentication
using a non-HTML login method, such as BASIC or CLIENT-CERT
authentication, then the WebDAV servlet can be configured as a resource
protected by this mechanism as well.
If a perimeter authentication mechanism is in place that uses a non-HTML
mechanism such as HTTP Basic authentication, then WebDAV clients can
be authenticated by that perimeter mechanism and participate in an SSO
environment.
36
Security Extract
Introduction to Kerberos
Kerberos facilitates user authentication over an untrusted network of disparate
systems. Content Engine running on Windows or UNIX / Linux servers can use
Kerberos for single sign-on (SSO) authentication. This is also known as integrated
login since Content Engine takes advantage of an earlier Windows login to
securely establish a user's identity without asking the user for a password again.
There are several terms used in the rest of this section related to Kerberos:
Authenticate
To establish identity. In Kerberos, this is usually done initially by
presenting some credential, such as a password, when the client logs onto
the system. After this initial authentication, Kerberos will allow the use of
tickets and encrypted timestamp information to reliably establish the
identity.
Client An application that wishes to authenticate itself to a Service like Content
Engine. In regards to using Kerberos with Content Engine, a client might
be the FileNet P8 Enterprise Manager (EM) or applications using the
Content Engine .NET API, the Content Engine COM API or Content
Engine Web Services API.
Service
A server-based application running on a particular system (or one among
many in a cluster) that can use Kerberos authentication to verify the
identity of its clients. The Content Engine is such a service.
Key Distribution Center (KDC)
A central server known to both a Kerberos client and service that supplies
Kerberos authentication services. The KDC knows passwords for both the
client and the service and acts as an intermediary between the two. It is
responsible for issuing Kerberos tickets. In the case of using Kerberos with
Content Engine, the KDC is a Windows domain controller using Active
Directory.
Service Principal Name (SPN)
A name that identifies a particular Kerberos service that is registered by
the KDC. The client will use a SPN to identify which Kerberos service it
would like to authenticate itself to. In regards to the Content Engine, this
identifier is usually something like FNCEWS/ servername where servername
is the name of the Content Engine server system or a cluster.
Realm The users, systems, SPNs, and so on, whose security is controlled by a
KDC. For the Content Engine, this is equivalent to a Windows Active
Directory domain.
Authentication
37
Kerberos prerequisites
Since Kerberos can be difficult to get working correctly, the first step is to make
sure that a number of prerequisites are met.
A running, non-Kerberos setup of Content Engine prerequisite
The Content Engine that you wish to configure for Kerberos authentication
must be in a working state, meaning it has already been installed and
configured (without Kerberos), and can be run successfully. You must be
able to start the FileNet P8 Enterprise Manager (EM) and log in with a
username and password.
38
Security Extract
System prerequisites
Only Windows clients can use Kerberos authentication, although either
Windows or UNIX / Linux Content Engine server systems can accept
Kerberos credentials. Windows-based Content Engine server systems must
use Windows 2003 or later. .NET clients should use Windows 2000 or later
systems. Earlier versions of Windows, such as Windows NT or Windows
98, do not support Kerberos.
Regardless of whether you use Windows or UNIX Content Engine servers
you must use Windows Active Directory as your directory service.
Domain and account prerequisites
A Windows client system needs to be in a domain (not a workgroup) and
the user needs to be logged on as some type of domain account. You must
log on using a domain account. Logging on a Windows client system as a
local account will not work.
All of the client systems should be in the same domain unless you follow
the steps described in Cross-realm Kerberos authentication.
The Content Engine server system will need network access to the Active
Directory system. A Windows server system can be a member of some
domain or may be in a Window's workgroup as long as it has access to the
Active Directory. If authenticating cross-realm, that is, when clients can
be in domains other than that of the SPN identity account's domain, then it
will be helpful if the Content Engine server system is a member of the SPN
identity account's domain (see Cross-realm Kerberos authentication).
Stand-alone .NET client prerequisites
A .NET stand-alone client needs at least .NET 1.1 and WSE 2.0 installed on
the Windows system, although .NET 2.0 and WSE 3.0 (or later) are
recommended.
Content Engine Java server prerequisites
1. Content Engine needs at least the 1.4.2 Java runtime environment
(JRE), but it is recommended that the equivalent Java Development
Kit (JDK) be installed to make use of some debugging utilities.
Although not required, the JAVA_HOME environment variable can be
set to allow the Java tools in the JDK to be accessed on Windows
systems, as in this example:
set JAVA_HOME=e:\j2sdk1.5.0_22
%JAVA_HOME%\bin\ktab
39
[domain_realm]
.mydom.example.com = MYDOM.EXAMPLE.COM
mydom.example.com = MYDOM.EXAMPLE.COM
40
Security Extract
The leading FNCEWS is the Content Engine service name and is needed on all its
SPNs. The other parts of the SPN show where the Content Engine server resides,
as a simple DNS name or a simple DNS name qualified with a domain. The
host_name and DOMAIN.COM must be changed according to the real name of the
Content Engine server and its real domain name.
As an example, the Content Engine server undistinguished DNS name (the host
name) might be MYCE01 and its domain might be MYDOM.EXAMPLE.COM. In
this case the two SPNs would be:
FNCEWS/myce01
FNCEWS/[email protected]
The host name should always be lower case and the domain name always upper
case. Windows systems are mostly case-insensitive but not everything is, so always
use the proper case.
The SPN identity is a Windows domain user account that has been mapped to
the SPN. This special user account has a password and from that the Key
Distribution Center (KDC) derives a key, which will be used to encrypt parts of the
Kerberos ticket. This key is a shared secret that is known only to the KDC, which
issues Kerberos tickets, and to the service itself (Content Engine in this case).
How does the client know what the SPN is? In the case of Enterprise Manager, it
derives this from the URL it uses to connect to the Content Engine server. If that
URL is, for instance, http://mysvr:9080/wsi/FNCEWS40SOAP, it uses an SPN of
FNCEWS/mysvr. If the URL is, http://mysrv.mydom.example.com:9080/wsi/
FNCEWS40SOAP, it uses FNCEWS/[email protected]. Other
clients use a simple algorithm like this or directly specify the SPN.
How does the KDC know about the SPN and how does it know what key to use
with that? The answer, with a Windows KDC, is that there must be one domain
user account set up (with some password, of course), this "identity" user account
must be specifically mapped to one or more SPNs, and that account provides the
key. The KDC is referred to on Windows systems as a Domain Controller.
How does the Content Engine server know what its SPN is? It actually does not
need to know this, but it can figure out the name of the identity user account by
using FNCEWS_ + host_name (for example, FNCEWS_myce01 for our example
Content Engine server named MYCE01). If some other identity user account name
must be used for some reason, as it would if this server was a member of a cluster
or if the system name is long, the name can be directly specified by the
serviceAccountName option (see KrbServiceLoginModule Options and Using
Kerberos with a Cluster of Content Engine Servers).
How does the Content Engine server know what key to use for decrypting its part
of a Kerberos ticket? It does this by logging on to the identity user account by
using the password stored in a keytab, a special Kerberos table of users and their
Authentication
41
passwords. This special login gets the Kerberos Ticket Granting Ticket (TGT),
which in turn gives the server access to its key.
The following steps of making an SPN Identity are not trivial, partly because
Windows allows Kerberos interoperability with Java and UNIX, but has never tried
to make it user friendly.
1.
2.
3.
4.
where you should substitute your own Content Engine name for host_name and
that server's domain for DOMAIN.COM. The host name should be an
undistinguished (in other words, no dots) DNS name and all lowercase. The
domain name should be all uppercase. In the example setup, the host name is
MYCE01 and it is in the MYDOM.EXAMPLE.COM domain, so the two SPNs
would be FNCEWS/myce01 and FNCEWS/[email protected].
If this is a cluster, set host_name to the cluster name (see Using Kerberos with a
cluster of Content Engine servers on page 50).
Case matters when choosing the SPNs! Make sure the host name is lowercase and
the domain name is uppercase.
The SPNs that might be set up for SPNEGO (for example HTTP/myce01) are not
compatible with the SPNs used by Content Engine's Kerberos. SPNEGO is a
different service than the Content Engine's Kerberos service and hence needs a
different name. Also, Content Engine's Kerberos service names always start with
FNCEWS/ and this is not customizable, although the related Kerberos identity
account name that usually starts with FNCEWS_can be customized.
42
Security Extract
FNCEWS/mycemp01 FNCEWS_mycemp01
FNCEWS/mycemp01.mydom.example.com
FNCEWS_mycemp01
If you enter these lines on a Content Engine system that is not a Windows
Domain Controller, the setSPN command appears to work but does not actually
set the SPNs correctly.
2. Substitute the SPN you have chosen and the name of the identity account just
created for mycemp01 and the domain mydom.example.com.
Note that the setspn utility uses the pre-Windows 2000 User logon name and
not the regular User logon name.
Note that another tool supplied by Microsoft, ktpass, must not be used for
mapping SPNs. Although ktpass is recommended for setting up SPNEGO
authentication with a web server, it must not be used for setting up Content
Engine's Kerberos identity user as it can modify the identity user account's
UserPrincipalName attribute in Active Directory and thus cause Content
Engine's Kerberos to fail.
Authentication
43
Description
%JAVA_HOME%\bin\ktab a
[email protected]
%JAVA_HOME%\bin\java
com.ibm.security.krb5.internal.tools.Ktab
a [email protected]
${JAVA_HOME}/bin/ktab a
[email protected]
${JAVA_HOME}/bin/java
com.ibm.security.krb5.internal.tools.Ktab
a [email protected]
44
Security Extract
Description
Windows
%WL_HOME%\server\lib\mbeantypes
UNIX
${WL_HOME}/server/lib/mbeantypes
This JAR file can be found in the Content Engine installation directory, such as
Program Files\FileNet\ContentEngine\Kerberos for Windows or
installdir/FileNet/ContentEngine/Kerberos for UNIX.
2. Start the WebLogic server and run the administrative console.
3. Navigate to Security > Realms > myrealm > Providers > Authenticators,
where myrealm is the default name of the security realm, which might be
different in your environment).
4. Create a new Engine Kerberos Service Authenticator and set its name to, for
example, EngineKrbAuthenticator.
Authentication
45
5.
6.
7.
8.
9.
10.
11.
12.
In the pane that follows, change the Control Flag setting to SUFFICIENT.
Click Create.
Go back to Security > Realms > myrealm > Providers > Authenticators.
Click EngineKrbAuthenticator and use the arrows to shift it above any LDAP
providers, but below the DefaultAuthenticator.
Click Apply.
Navigate back to the EngineKrbAuthenticator page and click Details or
Provider Specific.
Make any changes necessary on this page. For instance, set the Debug option.
Save the changes.
Description
Windows
%WAS_HOME%\lib
UNIX
${WAS_HOME}/lib
2.
3.
4.
5.
6.
This JAR file can be found in the Content Engine installation directory, such as
Program Files\FileNet\ContentEngine\Kerberos for Windows or
installdir/FileNet/ContentEngine/Kerberos for UNIX.
Start the WebSphere server and run the administrative console.
In the Security or Global Security page, click Authentication Mechanisms >
LTPA, if necessary.
Create a new Engine Kerberos Service Authenticator and set its name to, for
example, EngineKrbAuthenticator.
Enter a password and confirm it. This password will be needed by other
servers, so remember it.
Click Security > Global Security and change Active Authentication
Mechanism to LTPA.
46
Security Extract
Description
Windows
%WAS_HOME%\lib
UNIX
${WAS_HOME}/lib
This JAR file can be found in the Content Engine installation directory, such as
Program Files\FileNet\ContentEngine\Kerberos for Windows or
installdir/FileNet/ContentEngine/Kerberos for UNIX.
2. Start the WebSphere server and run the administrative console.
3. In the Security > Global Security > Federated repositories > Trusted
authentication realms - inbound page, select Trust all realms (including
those external to this cell).
4. In the Security > Global Security page, click Java Authentication and
Authorization Service, to show the items underneath, then click Application
Logins.
5. Create FileNetP8KerberosService configuration in the Application Logins. If
Content Engine is configured using Configuration Manager, then a
FileNetP8KerberosService is already created, and there is no need to add this
again. Otherwise, click New and follow instruction to add
FileNetP8KerberosService login configuration.
6. Once FileNetP8KerberosService configuration is created, click
FileNetP8KerberosService, and follow the steps to add three login modules.
7. Click New and in Module Classname enter:
com.filenet.engine.authentication.kerberos.login.KrbServiceLoginModule
Leave other fields as is. Click OK
8. If desired, add any options by clicking the new KrbServerLoginModule entry,
click Custom Properties, then New, and then enter the option name (for
example, debug) and its value (for example, true). Click OK and then click
JAAS Login Modules.
9. Click New and in Module Classname enter:
com.ibm.ws.security.server.lm.ltpaLoginModule
Leave other fields as is. Click OK
10. Click New and in Module Classname enter:
com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule
Leave other fields as is. Click OK
11. Save the changes.
47
Option
Description
Windows
%JBOSS_HOME%\server\default\lib
UNIX
${JBOSS_HOME}/server/default/lib
3. Edit the login-config.xml file again and add the following stanza after the last
of the other <application-policy> entries:
<application-policy
name="FileNetP8KerberosService"><authentication><login-module
code="com.filenet.api.authentication.jboss.login.FnClientLoginModule"
flag="required"></login-module></authentication></application-policy>
That is, replace the recommended des-cbc-md5 des-cbc-crc on those two lines
with rc4-hmac.
After changing this setting in your krb5.ini file, you should run (or rerun) the
step to create the keytab (rerunning ktab is not needed if you have already run
ktab on JBoss/WebLogic Java 6 or later setups, but is required if using WebSphere
or are upgrading from an earlier version of Java).
Make sure that the Kerberos identity user account you have set up does not have
Use DES encryption types for this account selected. If it is already selected, then
you must unselect it and re-enter the password.
It is not possible for the same SPN/identity user account to support both DES and
RC4-HMAC security. It must be one or the other.
48
Security Extract
KrbServiceLoginModule options
The KrbServiceLoginModule (or WebLogic Engine Kerberos Authentication
Provider) does the Kerberos service authentication on the Content Engine server.
This login module has several options that can change its behavior.
debug when true will output additional debugging information to the console,
server log, or both. The default is false. You can enable additional
debugging information when first setting up Kerberos, or afterward if
attempting to debug a problem with Kerberos authentication.
useShortNameAsPrincipal
when true will use the user's short name as the principal; if false then will
use the full Kerberos name in the form: [email protected]. The
default is false.
storeGssContext
when true will add a GSSContext as a private credential. This can be used
by the server to encrypt and sign messages between the server and the
client, but will need substantial programming on both to accomplish this.
When false, this private credential is not added. The default (and
recommended) setting is false.
loginUsingTicketSpn
if true will attempt to log in using the SPN (Service Principal Name) of the
Kerberos service ticket. The default is false, which will attempt to log in
using the normal FNCEWS_computername account name. The
recommended setting is false.
serviceAccountName
this specifies the account name that the service will use when it is logging
in. If not specified, this defaults to FNCEWS_ computername. This option
should only need to be set to some account that is shared by every server
if Content Engine is clustered or if on WebSphere systems and the default
name would be longer then 20 characters. This option is ignored if
loginUsingTicketSpn is true.
tgtLoginConfigName
this option specifies the name of a JAAS configuration that will be used
when the service initially logs in to get its Kerberos TGT (Ticket Granting
Ticket).
For example, if tgtLoginConfigName=KrbTgtLogin, then there could be a
JAAS configuration entry such as:
KrbTgtLogin {
com.sun.security.auth.module.Krb5LoginModule required
debug=true useKeyTab=true storeKey=true
keyTab="c:/etc/krb5.keytab";
};
Authentication
49
If this option is not set, then the default Java keytab will be used, which is
usually found in home/krb5.keytab. For example: C:/Documents and
Settings/mike.MYDO/krb5.keytab.
The keytabPath option needs to be used when the application server is
running as a Windows service or if the keytab is not in the default
location. This option is ignored if tgtLoginConfigName is set.
cacheSize
specifies the size of the ticket cache used on JBoss application servers. This
cache works around "request is replayed" errors that happen because of the
way that JBoss sometimes uses a Kerberos ticket twice during a normal
authentication and triggers the error on the second use. This defaults to
100 on JBoss and is ignored on other application servers. It is
recommended that this option not be set, unless running on JBoss servers
that have been getting Request is a replay errors, in which case you
could try values greater than 100.
2. All Content Engine servers must then be set up to use this cluster-wide identity
rather than the server-name identity normally used. Do this as follows:
For WebSphere and JBoss (and other potentially supported application servers):
Add a new option, serviceAccountName=FNCEWS_cluster01 (substituting
your cluster name for cluster01) to the JAAS configuration for
KrbServiceLoginModule on each application server.
For WebLogic:
Set the Service Account Name option for the Engine Kerberos
Authentication Provider.
3. In cases where one client references a server's URL directly (recommended for
Enterprise Manager) and another client could reference the cluster URL of that
server (possible with customized .NET clients), then there must be additional
SPN mappings to the same identity account. As an example, here is what you
would enter for a cluster named cluster01 and a particular server within that
cluster, myce02 , all in domain mydom.example.com:
setspn -a FNCEWS/cluster01 FNCEWS_cluster01
setspn -a FNCEWS/cluster01.mydom.example.com FNCEWS_cluster01
setspn -a FNCEWS/myce01 FNCEWS_cluster01
50
Security Extract
This example has the same SPN, FNCEWS/myce01, mapped to two different
identities: FNCEWS_myce01 and FNCEWS_cluster01. Unfortunately, this can
occur innocently enough by starting with only a single Content Engine server
and later expanding to a cluster of Content Engine servers. Likewise, there is
no way to check for duplicates of this sort in Microsoft's setspn utility. See
Solving Kerberos Problems for what to do if this error condition occurs.
51
52
Security Extract
v Enable DES cipher support on Windows 2008 R2. See the following technote
from Microsoft: http://technet.microsoft.com/en-us/library/
dd560670(WS.10).aspx
v Set the enctypes to rc4-hmac in Kerberos configuration file and recreate keytab
file. See Using RC4-HMAC Security on page 48.
Troubleshooting Kerberos
Troubleshooting problems with Kerberos can be complex, given the number of
computers and amount of software that can be involved.
One of the first things to try if encountering problems is to make sure that Content
Engine works first without Kerberos. The easiest way to verify this is to start the
FileNet P8 Enterprise Manager (EM) tool and log on using the admin's username
and password. If EM does not work in this simpler, username / password case,
then troubleshoot that before attempting to handle problems with Kerberos.
If it has been established that EM works with username / password, then test with
EM using its integrated logon setting. Make sure that the workstation running
EM has been logged on under Windows as a domain user and that user is also a
FileNet P8 domain administrator (gcd_admin) or object store administrator
(object_store_admin). Using EM might isolate the problem and point towards some
other problem that is outside Kerberos. If this EM login fails or there still does
appear to be a Kerberos problem, then the problems can be broken down into
whether the error seems to be generated on the client or on the Content Engine.
In most cases, the important part of the error will be near or at the end of the error
message. For instance, if the error message returned by the client was WSE594:
InitializeSecurityContext call failed with the following error message: The
network path was not found., the important part of this message is The network
path was not found.
Recovering from .NET client or Enterprise Manager problems
Recovering from Content Engine server problems on page 55
Authentication
53
Symptoms
Unable to connect to the remote server. No connection could be made because the
target machine actively refused it.
Resolving the problem
If you get this error, carefully check the URL, particularly the associated port
number, that you are using to connect to Content Engine. Also make sure that
Content Engine is running.
If the user is running Enterprise Manager and following the directions in the
Cross-realm Kerberos authentication section, this error can also arise if the Content
Engine system is not a member of the SPN identity user account's domain. For
example, if the Content Engine system is in a Windows workgroup or a UNIX
system and namedmyce01 and the SPN identity account is in the
mydom.example.com domain, then the URL that Enterprise Manager would need
could be something like http://myce01.mydom.example.com:9080/wsi/FNCEWS4MTOM.
This would fail because myce01 is not really in mydom.example.com domain, but that
URL needs to be that for cross-domain requirements. The solution is to manually
add myce01.mydom.example.com to the DNS used by the clients.
The network path was not found:
You can resolve errors when the network path was not found.
Symptoms
The network path was not found
Resolving the problem
This error might indicate one of several underlying problems:
1. Enterprise Manager has a bad Content Engine server URL. Enterprise Manager
calculates the Kerberos SPN by taking the host part of the URL and prefixing it
with FNCEWS/, so that, for example, a URL of http://myce01:9080/wsi/
FNCEWS40MTOM/ would yield an SPN of FNCEWS/myce01. This should match the
SPN previously set up for the server. It will also turn fully qualified domain
names like http://myce01.mydom.example.com:9080/wsi/FNCEWS40MTOM/ into an
SPN of FNCEWS/[email protected]. These derived SPNs usually work
well, but can sometimes have problems. Particularly watch out for URLs that
are not DNS names, like http://localhost:9080/wsi/FNCEWS40MTOM/ or
similarly ones using IP addresses, like http://123.45.67.89:7001/wsi/
FNCEWS40MTOM as these will yield bad SPNs.
2. The SPN is correct, but was never mapped by the setspn utility to the
corresponding identity user account, FNCEWS_myce01 in this example. Try
running setspn l FNCEWS_myce01 to list the SPNs that have been mapped to
this account. Check for misspellings, such as _ or \ instead of /.
3. The SPN was mapped to more than one identity account. One option to check
for this is to use the LDIFDE.EXE utility (part of Microsoft's Windows 2003
Server support tools) to dump the account information to a text file by issuing
a command like LDIFDE d dc=mydom,dc=example,dc=com -f mydom.txt. Then
open the mydom.txt file with a text editor and search for the SPN string,
FNCEWS/myce01 in this example. If duplicates are found, you can remove an
extra one by typing something like setspn -d FNCEWS/myce01 FNCEWS_baduser.
54
Security Extract
4. The SPN is not known in the client's domain. This situation can arise if the
client's logged-on user domain and Content Engine Windows domains are
either not the same or are not in the same Windows domain forest where the
domains implicitly trust each other. See the Cross-realm Kerberos
authentication section for a work-around for Windows domains that use
external or transitive two-way trusts.
5. The SPN had one of the above problems and was recently fixed. In this case
the .NET framework has cached the bad result and the only way to clear this is
to reboot the client system. It is a good idea to reboot the client anytime .NET
reports a The network path was not found error.
There are currently no login servers available to service the login request:
You can resolve errors when there are no login servers available to service the
login request.
Symptoms
There are currently no login servers available to service the login request
Resolving the problem
This error can sometimes be caused because of connectivity problems between the
client and domain controller systems for all involved domains. If the connectivity
seems to be okay, this error might also mean that the time servers on the client and
server are too far out of sync, particularly in cross-domain setups. Usually the
servers must have times within 5 minutes of each other, but sometimes having
them even 1 minute out of sync can cause problems.
A specified login session does not exist.:
You can resolve errors when a specified login session does not exist.
Symptoms
A specified login session does not exist. It might already have been terminated.
Resolving the problem
This could mean that the client workstation's logged-on user is a local account and
not a domain account. Kerberos requires that the logged-on user is a domain user
account.
55
There can be many other Content Engine server Kerberos problems. If Kerberos
Service debugging is not enough to isolate the problem, try turning on additional
system debugging, which will give even more information. Content Engine
WebLogic and JBoss servers can specify the sun.security.krb5.debug property,
usually on the Java command line with -Dsun.security.krb5.debug=true. This
produces a lot of trace output on the JVM's console. There are two Java command
line switches for Content Engine WebSphere servers:
-Dcom.ibm.security.jgss.debug=all
-Dcom.ibm.security.krb5.Krb5Debug=all
56
Security Extract
And similarly, for RC4-HMAC security, that the krb5.ini file does not have these
settings:
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
Authentication
57
password. Try rerunning ktab and re-establishing the password paying close
attention to the upper / lower case used. Also validate the name of the identity
account and reset its password.
This could also mean that the keytab file was not found for the user account (in
the [email protected] form), but there should also be a
could not find user in keytab error prior to this.
This could mean that identity user account mapped to the SPN which the client
used does not match the user account that the Content Engine's
KrbServiceLoginModule used. A possible reason for this is that the login module's
serviceAccountName is not set to the correct identity account name (not the SPN)
for a cluster. For example, the name should be FNCEWS_ce01 and not
FNCEWS/ce01.
Another possibility is that Microsoft's ktpass utility was used to map an SPN to the
identity account. This utility changes the User logon name (also known as the
User Principal Name) field, and doing so automatically corrupts the password for
that account. The solution for this is to reset the identity account's password.
There is also the possibility that the system clocks are too far out of sync; see
Clock skew too great (37).
Request is a replay (34):
You can recover from a Request is a replay error.
Symptoms
Request is a replay (34)
Resolving the problem
This request has the same Kerberos token as an earlier request. This is probably
because a .NET client is not using CE .NET API calls and is reusing a WSE
KerberosToken/KerberosToken2 or a WCF KerberosRequestorSecurityToken object
rather than reconstructing it for each request.
Clock skew too great (37):
You can recover from a Clock skew is too great error.
Symptoms
Clock skew too great (37)
Resolving the problem
This error can happen if the clocks on the client machine and the Content Engine
server are more than some number of minutes apart. Commonly this is 5 minutes,
but can also be 1 minute. The fix for this is to more closely synchronize the clocks
on the two machines.
Identity user is not found in the keytab:
58
Security Extract
You can recover from conditions where the identity user is either not in the keytab
or the keytab file cannot be found.
Symptoms
The user could not be found in the keytab
Key for the principal FNCEWS_myce01@MYDOM. EXAMPLE.COM not available
in default key tab
No Kerberos creds in keytab for principal
[email protected]
Resolving the problem
These errors could either indicate that the "identity" user (for example,
FNCEWS_myce01@MYDOM. EXAMPLE.COM ) was not in the keytab or that the
keytab file itself could not be found. Use "ktab" by itself from the command line to
list the contents of the default keytab file and check for misspellings. The keytab
file is, by default, the c:\Documents and Settings\ user \krb5_keytab file. Where
user is the name of the account that the application server is running as. Note that
if the application server is running as a service, there will probably be no
corresponding user directory and it is best if the keytabPath="c:/my_keytab"
KrbServiceLoginModule option is used to specify what and where the keytab is.
Could not create default AuthorizationToken during propagation login:
You can recover from a Websphere authorization error.
Symptoms
Could not create default AuthorizationToken during propagation login
Resolving the problem
This is a WebSphere error that probably means that the security mechanism is set
to SWAM rather than LTPA. See Enabling Kerberos on the application server on
page 45 for how to set this up for WebSphere.
Principal [email protected] not found:
You can recover from the Principal [email protected] not found
error
Symptoms
Principal [email protected] not found
Resolving the problem
This error can occur if the GCD does not have a directory configuration for the
MYDOM.EXAMPLE.COM Active Directory. In Enterprise Manager, right-click the
name of the FileNet P8 domain and select Properties from the menu and then click
Directories.
Authentication
59
This error can also happen in a multi-domain environment if the GCD does not
have the directory configuration for a client domain set up, as each client domain
must individually have its directory configuration set up.
JAAS configuration FileNetP8KerberosService not found:
You can recover from a JAAS configuration FileNetP8KerberosService not found
error.
Symptoms
JAAS configuration FileNetP8KerberosService not found
Resolving the problem
This error will occur if the FileNetP8KerberosService JAAS configuration entry has
not yet been configured.
Cannot get kdc for realm MYDOM.EXAMPLE.COM:
You can recover from a Cannot get kdc for realm MYDOM.EXAMPLE.COM error
Symptoms
Cannot get kdc for realm MYDOM.EXAMPLE.COM
Resolving the problem
This error can happen if the kdc= line in the Content Engine krb5.ini file has not
been edited correctly to reference the primary domain controller for the
MYDOM.EXAMPLE.COM domain. Another possibility is that the Kerberos
configuration file, krb5.ini, cannot be found by Content Engine as it is either not
in the c:\winnt directory for Java 5 (or earlier) or the Windows system directory
(like C:\Windows) for Java 6 (or later); or the Djava.security.krb5.conf= setting
is wrong.
Null key:
You can recover from a null key error.
Symptoms
Null key
Resolving the problem
This error can happen on WebSphere systems if the server's SPN identity (for
example, [email protected] ) cannot be found in the Content
Engine server's currently configured keytab.
It can also happen if the keytab file itself cannot be found for some reason, such as
using the default keytab, but that keytab was created by one user and the app
server is running as another user account (a particular problem if the app server is
running as a Windows service). One fix for this is to specify the keytabPath option
for the KrbServerLoginModule, for example, keytabPath="c:/config/keytab".
60
Security Extract
Null name:
You can recover from a null name error.
Symptoms
Null name
Resolving the problem
This error will occur on WebSphere systems if the identity user name used for
Kerberos's identity account is longer than 20 characters. The default identity user
name is derived by Content Engine to be the string FNCEWS_ + host_name.
Unfortunately, this default name will be too long if host_name itself is 14 or more
characters long. If this is the case, this can be fixed by using some other name for
this identity user account and specifying that name in the serviceAccountName
option for KrbServiceLoginModule. (For example,
serviceAccountName=FN_long_host_name_123).
Another possibility, also on WebSphere servers, is that the encryption type of the
key saved in the keytab does not match the encryption type used when encrypting
the Kerberos ticket. One way for this to happen is if the identity account does
not have the Use DES encryption types for this account option set in the account's
property dialog for DES security, or it does have that option set for RC4-HMAC
security.
This problem might require setting the Dcom.ibm.security.jgss.debug=all and
-Dcom.ibm.security.krb5.Krb5Debug=all properties on the JVM to diagnose as
described in Recovering from Content Engine server problems on page 55.
Failure to obtain initial naming context:
You can recover from failure to obtain an initial naming context.
Symptoms
Failure to obtain initial naming context
Resolving the problem
Attempting to perform a Kerberos login results in a Web services Kerberos
credential invalid error, and WebSphere Failure to obtain initial naming
context errors. These errors indicate that WebSphere did not initialize the Java
naming factory, which is required for Kerberos authentication.
1. Open the WAS admin console and expand Servers.
2. Click Application servers, click server name, then expand Java and Process
Management on the right.
3. Click Process Definition, click Java Virtual Machine and then enter the
following argument text in the Generic JVM arguments box (with a space to
separate it from other arguments, if needed):
-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
Authentication
61
62
Security Extract
Authorization
When a security principal that has already been authenticated attempts to access
FileNet P8 objects, Content Engine or Process Engine will attempt to retrieve that
principal's user and group memberships from the directory service provider. If
successful, the user or group will be authorized to carry out actions described by
the access rights placed on the objects. The topics in this section describe
authorization: the various features used to manage security and apply security to
objects, as well as the details of security behavior
About access rights
Default security on page 68
Security for integrated components and third-party products on page 69
Mapping security levels to individual access rights on page 71
Markings on page 79
Object access rights and security on page 86
Object ownership on page 105
Property modification access on page 107
Required minimum access rights by operation on page 109
Security policies on page 112
Storage area security on page 117
Target access required on page 121
Understanding security inheritance on page 122
63
UserUniqueIDAttribute
default value
GroupUniqueIDAttribute
default value
Ibm-entryuuid
Ibm-entryuuid
Novell eDirectory
guID
guID
Orclguid
Orclguid
Nsuniqueid
Nsuniqueid
Active Directory *
objectSID *
objectSID *
objectSID
objectSID
64
Security Extract
number, to function as the SID. The value of the attribute that you choose
for your user and group IDs must be unique across the configured LDAP
realms. Because the Content Engine authorization process uses the attribute
as the single identifier of a user or group in an LDAP repository, a
non-unique value will cause authorization failures.
In addition to the requirements that they be unique and immutable (or
static), non-default user or group SID values must be:
v Indexed, to improve performance of LDAP users or groups queries by
SID.
v Less than or equal to 507 bytes. You should choose reasonably compact
values for performance. (The lengths of default SID values range from
approximately 16 to 36 bytes.)
v Returned as Java String via JNDI queries. You must use as SID
attributes only those LDAP attributes that return Java String in the
LDAP Java API. (There are, however, exceptions: if you prefer to assign
default SID attributes in Active Directory or AD LDS using objectSID, or
in eDirectory using guID, you can do so even though these return a Java
byte[] type in the LDAP Java API.
If the value of a SID were to change, Content Engine would consider the
user or group to be a different security principal. For example, if the
default SID attribute is used and you delete a user from the directory
server, and then you recreate it with the same name and set of attributes
but with a different SID value, that user would not be able to access the
documents that it formerly had access to. This is because the directory
server would have assigned it a new SID; the user's former Content Engine
permissions would somehow have to be reestablished.
The following are some common considerations for selecting a non-default
SID attribute and managing SID values:
v Avoid using attributes containing family name or other information that
can change due to personal events. An employee's family name might
change as a result of a change in marital status or other reasons. Such a
change obviously does not affect the employee's security role, but it
would have the unintended effect of cause the employee's SID to
change, leading losing access, explained above.
v Avoid using attributes containing work group name or other information
that can change due to organizational events. A work group's name or
reporting structure might change, but this does not necessarily affect the
work group's or its members' security role. So these events should not
impact SID values, and such attributes are not good SID attribute
choices.
v The template or procedure to recreate or restore users and groups must
ensure identical SID values, including the case of characters and the use
of any filler spaces. Most LDAP servers can be configured to be
case-insensitive and ignoring filler spaces, but this is not always the
case. The best practice is to recreate or restore users and groups using
static template values.
v SID values for distinct users and groups should differ by more than just
the case of characters. Depending on the LDAP server and your
configuration, your system might reject an entry if it contains the same
value of an existing entry except for characters in different cases. Or it
might add a system-generated prefix to make the new entry
distinguishable. Either way leads to undesirable results.
Authorization
65
66
Security Extract
67
For example, the Full Control level for a document includes all possible document
rights, whereas the Major Versioning level includes only those rights required to
allow the user to perform the various tasks required to create a major version of a
document. Documents, folders, custom objects, choice lists, and other securable
objects all have their own predefined levels appropriate to the type of object.
Levels can be viewed and assigned using the object's security editor. Applications
can be designed to expose only the levels to users, or they can allow users to
choose to assign levels or the individual rights. Enterprise Manager's security
editor includes a custom level which is displayed if individual rights have been set
that are different from the pre-designed rights-to-level mappings.
The topic in the Mapping security levels to individual access rights provides
specific definitions of security levels.
Display
Direct/Default Deny
Direct/Default Allow
Template Deny
Template Allow
Inherited Deny
Inherited Allow
You cannot remove or change an inherited access right, but you can override one
by directly allowing or denying an access right. To edit an inherited access right,
the administrator must modify the parent that is the source of the inherited access
right.
Because Deny has precedence over Allow within each category (for example, a
Template Deny takes precedence over a Template Allow), if you explicitly deny an
access right to a group and explicitly allow it to a member of that group, the access
right will be denied to the member.
Thus, if an ACL contained two ACEs that were identical in every respect except
that one was an Inherited Deny and the other a Direct Allow, the Direct Allow
would take precedence, with the result that the user would be allowed the ACE.
Default security
Objects have security settings applied automatically by the system.
This topic answers the question, "What is the security behavior if administrators
and users do nothing to change it?"
Object store administrative groups
Members of the groups added to the Object Store Wizard as object store
administrators (object_store_admin) have Full Control of object stores and
68
Security Extract
their contents, which means that while using Enterprise Manager they can
perform any valid action on any item. See the Reference section for the
specific actions.
Users
When creating an object store, the administrator selects one or more groups
that will have basic, non-administrative access rights. For example, if the
administrator selects the Domain Users group as the nonadministrative
group when creating an object store, users of the Workplace and Workplace
XT applications can:
v Add folders at the top level of the object store.
Important: A new folder acquires its initial security from the Folder
class, which grants Full Control to the folder creator (also called Owner
Control), Full Control to members of the object store administrative
groups, but only View Properties access to Domain Users. A user must
have Add to Folder access rights to put documents in the folder. This
means that, by default, users can create top-level folders and add items
to their own folders. However, users cannot add items to the folders
created by other users.
v Add documents (with Add to Folder access rights to the selected folder).
v View the properties and content of all folders.
v View the properties and content of all documents.
v Run the designer applications but not those that are workflow-related.
Other access rights are not set one way or the other, which means they are
implicitly denied to members of non-administrative groups.
Note: For any given access right (for example, View Properties), an access
right has three possible settings: Allow, Deny, or neither. If an access right
is neither explicitly allowed nor explicitly denied, it is "implicitly denied."
Users of other client applications (such as WebDAV and Application
Integration for Office) are subject to the same security as application users
but typically cannot perform as many operations.
69
FileNet P8 software, we will resolve the problem or advise you not to apply that
particular patch until the issue has been resolved.
Browsers
Database security
Security for IBM Legacy Content Search Engine
Security for IBM Content Search Services
Security for FileNet P8 eForms on page 71
Security for IBM Enterprise Records on page 71
Browsers
Browser cookies contain a session key.
For each Workplace or Workplace XT session, the application creates a cookie on
the client containing the session key. The cookie persists in the client memory
cache for the duration of the session and is cleared when either the session or the
browser is closed on the client. Connectivity problems can occur on browsers
configured to refuse cookies.
Database security
IBM FileNet P8 Platform security is enforced for database information accessed
through Workplace, Workplace XT, integrated applications, and administrative
applications. Access to the Global Configuration Database (GCD) database is
configured during initial Content Engine configuration. Object store databases are
secured in the same way
.
70
Security Extract
71
Full Control
72
Security Extract
objects. Access rights to an object store are limited to only that object store and do
not extend to other object stores in the FileNet P8 domain.
In Enterprise Manager, the object store's security page lists the users and groups
that were added while running the object store wizard as follows:
v Users and groups added as "users" receive the Use object store level.
v Users and groups added as "administrators" get Full Control and are therefore
object store administrators.
Each right in the table is expressed as a user interface (UI) description of the right
and as an access right setting that corresponds to the UI description. For example,
the right to connect to an object store could appear as Connect to store in an
application UI, but the actual setting for connecting to an object store is the
AccessRight.CONNECT value.
Table that maps object store security levels, which are marked with a check symbol, to the access rights.
Rights
Full Control
Connect to store
AccessRight.CONNECT
Create new objects
AccessRight.STORE_OBJECTS
Modify existing objects
AccessRight.MODIFY_OBJECTS
Delete objects
AccessRight.DELETE
Set owner of any object
AccessRight.WRITE_ANY_OWNER
Read permissions
AccessRight.READ_ACL
Modify permissions
AccessRight.WRITE_ACL
Modify certain system properties
AccessRight.PRIVILEDGED_WRITE
73
Each right in the table is expressed as a user interface (UI) description of the right
and as an access right setting that corresponds to the UI description. For example,
the right to view all properties could appear as View all properties in an
application UI, but the actual setting for viewing all rights is the AccessRight.READ
value.
Table that maps class definition security levels, which are marked with a check symbol, to the access rights.
Rights
Full Control
Modify properties
Link
View properties
<Default>
74
Security Extract
Table that maps folder security levels, which are marked with a check symbol, to the access rights.
Rights
Full Control
Modify
properties
Add to folder
View properties
<Default>
* Deprecated permissions.
** Also used by Publishing.
Authorization
75
76
Security Extract
Full
control
Minor
Major
Modify
versioning versioning properties
View
properties Publish
View content
<Default>
Table that maps document security levels, which are marked with a check symbol, to the access rights.
Full
control
Rights
Minor
Major
Modify
versioning versioning properties
View
properties Publish
View content
<Default>
Read permissions
AccessRight.VIEW_CONTENT
Modify permissions
AccessRight.WRITE_ACL
Modify owner
AccessRight.WRITE_OWNER
Unlink document
AccessRight.UNLINK
Create subfolder (Inherit
only)
AccessRight.CREATE_CHILD
* Deprecated permissions.
** Publish is defined in Workplace to include Modify permissions.
Full Control
Modify
properties
Link
View properties
<Default>
Authorization
77
Table that maps custom object security levels, which are marked with a check symbol, to the access rights.
Rights
Full Control
Modify
properties
Link
View properties
<Default>
Reserved13 *
AccessRight.RESERVED13
Link / Annotate
AccessRight.LINK
Delete
AccessRight.DELETE
Read permissions
AccessRight.READ_ACL
Modify permissions
AccessRight.WRITE_ACL
Modify Owner
AccessRight.WRITE_OWNER
Minor versioning (Inherit only)
AccessRight.MINOR_VERSION
Major versioning (Inherit only) **
AccessRight.MAJOR_VERSION
View content (Inherit only) **
AccessRight.VIEW_CONTENT
Change state (Inherit only) **
AccessRight.CHANGE_STATE
Publish (Inherit only) **
AccessRight.PUBLISH
Create subfolder (Inherit only)
AccessRight.CREATE_CHILD
Unfile folder from folder (Inherit only)
AccessRight.UNLINK
* Deprecated permissions.
Application Integration users do not see custom objects. Workplace users see
custom objects if enabled by a site preference, but a custom object's Link access
right is hidden in Workplace.
78
Security Extract
classes are events, subscriptions, and lifecycles. Note that the Link access right
allows the user to associate the object with another object; it is hidden in the
Workplace and Workplace XT applications.
In Enterprise Manager, you can view and modify access rights and permissions on
the Security page of the object's class definition's property sheet.
Each right in the table is expressed as a user interface (UI) description of the right
and as an access right setting that corresponds to the UI description. For example,
the right to view all properties could appear as View all properties in an
application UI, but the actual setting for viewing all rights is the AccessRight.READ
value.
Table that maps object security levels, which are marked with a check symbol, to the access rights.
Rights
Full Control
Modify properties
Link
View properties
<Default>
Markings
This section explains what markings are and how they affect the effective security
on objects. Primarily designed for use by the IBM Enterprise Records application,
markings are available to any application that needs the kind of property-based
layer of security that markings provide.
Markings overview on page 80
Marking security: Add, Remove, Use on page 81
Effect of Copy to reservation on page 82
Constraint Mask on page 82
Allow, Deny permissions on page 83
Hierarchical and Non-hierarchical on page 84
Authorization
79
Markings overview
Markings allow access to objects to be controlled based on specific property values.
When a marking is applied to an object, the resulting access permissions for the
object are a combination of the settings of its original access permissions and the
settings of the marking's Constraint Mask for each marking that is applied to it.
The result of this combination is the effective security mask.
In general terms the way the markings works is:
1. A marking set is defined, containing several possible values called markings.
2. Each marking value contains a set of access permissions which define who can
assign that specific value to an object property, who can modify or remove that
specific value, and, once it is assigned, who will have access to the object it is
assigned to.
3. The marking set is assigned to a property definition on a class such that the
value of that property on instances of the class must be one of the markings
defined by the marking set.
4. Values can only be assigned by users authorized by the associated marking and
access to the object is restricted based on the marking once it is applied.
Markings do not replace conventional access permissions on an object, but rather
are co-equal with them in determining access rights. In other words, if an object
has one or more markings applied to it in addition to one or more permissions in
its permissions collection (ACL), then access to that object is only granted if it is
granted by the permissions and by the markings. Another way to think about how
this works is:
1. A user or process tries to access an object.
2. First, Content Engineresolves the object's ACL to determine who can access the
object and what those users can do.
3. Then it computes the markings applied to the object to see which users to stop
(defined by the marking's Security list) and what they should be stopped from
doing (defined by the marking's constraint mask).
You can have multiple properties assigned to a single class with marking sets
associated, and they will all be used to determine the final access to the object. The
collection of all markings being actually applied to a particular object is displayed
by Enterprise Manager as the object's "active markings".
"Active markings" is the term Enterprise Manager uses in its security editor on its
Active Markings/Owner button. You will see this button text on object instances
whether or not there are actually active markings applied to the object. This button
will just say "Owner" for those objects that cannot have markings applied, which
include all class definitions.
Modifications to markings or marking sets are subject to the Marking Set Cache
Entry TTL setting which affects how often the marking set cache is updated on the
server and the current Enterprise Manager machine.
However, the marking set cache is updated whenever any change or addition is
made to markings or marking sets. Therefore, the cache is most likely up-to-date
by the time the MarkingSetsTTL forces a refresh of the cache.
80
Security Extract
Markings and marking sets are persisted in the FileNet P8 domain resource, the
GCD. This gives them IBM FileNet P8 domain-wide scope, that is, they are
available and have the same meaning across all object stores in a IBM FileNet P8
domain served by a common GCD. The marking-enabled property templates and
the actual properties based on these templates are, however, specific to the object
store in which the property template was created.
The number or size of markings in a single marking set is limited by available
system memory. To perform an access check on a marked object, the entire
marking set and all its markings must be loaded into memory. This is not going to
work if there are millions of markings. For this reason, you should limit the
number of markings in a marking set to no more than 100.
Markings cannot be used in conjunction with choice lists.
Bob
Bob
Alice
Alice
Access
Control
List
Document
Property A
In this example, Alice has the Use Marked Objects access right which lets
her bypass the marking. Her access to the object will be evaluated by the
object's ACL. Bob does not have Use Marked Objects and therefore will
neither see nor have access to the object, regardless of any permissions the
object's ACL might grant him.
Markings and marking sets are Content Engine objects, each with a class
description:
Authorization
81
v Markings are objects that combine metadata behavior with access control
behavior in a way that allows an object's access control to change by
changing a property value.
v Marking sets are containers for markings. Marking sets are associated
with a Property Template which can then be used to add a property to
one or more classes.
Constraint Mask
By default, all the rights are checked, meaning all constraints are masked and only
those that have the Use Marked Objects access rights on the marking will be able
to view and access the object.
When one of the rights in the constraint mask is cleared, it indicates that users
with this privilege on that object are allowed through the marking restriction even
if they do not have the Use Marked Objects access right on the marking. In this
way, the constraint mask can be used to design more granular control at the
marking level.
Here are some examples to illustrate the security behavior of the constraint mask:
v If the constraint mask has all permissions selected (turned on), and if Alice does
not have Use Marked Objects rights to that marking, then Alice will have no
access and will not see the object, even if she has Full Control on the object's
ACL.
v If the constraint mask has all permissions selected (turned on) except View All
Properties and Delete which are deselected (turned off), and if Bob does not
have Use Marked Objects rights to that marking, then Bob can see and delete
the object, provided that he is granted those permissions on the object's ACL.
v If the constraint mask has all permissions deselected (turned off), and even if
Carol does not have Use Marked Objects rights to the marking, then Carol can
do everything to that object granted her by the object's ACL. (Deselecting all
permissions in the constraint mask effectively renders the marking inactive.)
v If Dave has Use Marked Objects rights to the marking, the constraint mask has
no effect on his resulting access. His access will be solely determined by the
object's ACL.
In the following graphic:
82
Security Extract
v Alice and Bob are members of the Authors group. The only property selected in
the constraint mask is Modify all properties. The ACL on the document gives
Authors the Delete permission.
v Alice has the Use Marked Objects right, and therefore the marking's constraint
mask does not apply. She can delete the document (and anything else that the
ACL grants to Authors).
v Bob does not have the Use Marked Object, and therefore the marking's
constraint mask applies to him. The constraint mask specifies Modify all
properties and that means that Bob does not have the Modify all properties right
on any object to which this marking is applied, even if it is explicitly granted to
him by the ACL. The document has not granted the Modify all properties right
to Bob in the first place since he is not a member of the Editors group and
therefore the marking has no impact on him. Also, Bob can delete the document
(regardless of whether or not he has the Use marked objects right) since the
marking constraint mask does not affect the Delete right, and because it has
been granted to him by virtue of his membership in the Authors group.
v Alice and Bob are not members of the Editors group. Because the Editors group
is not listed on the marking, Editors do not have the Modify all properties right
despite being granted Full Control by the document itself. The reason for this is
the constraint mask in the example only specifies the Modify all properties right.
As a result, either having or not having the Use marked object right on the
marking can only affect the Modify all properties right on any given object
marked with this marking.
Marking (in Property A)
Constraint Mask:
Modify all properties
Security:
Document Access
Control List
Bob
Authors group:
Delete
Alice
Editors group:
Full Control
Document
Property A
Authorization
83
4. The Boston marking has a constraint mask of full control allow (all
permissions selected).
5. The group Everyone_Boston has Use/Allow rights to the Boston
marking.
6. The Sales group has Use/Deny rights to the Boston marking.
In this scenario:
v Users who are not members of Everyone_Boston cannot access the
document.
v Users who are members Everyone_Boston can access the document,
unless they are also members of Sales.
v Users who are members of Everyone_Boston and Sales cannot access
the document. The deny setting on the marking overrides the allow
setting and ensures that no one in Sales sees the document even if
they are in the Boston office.
Top Secret
Alice:
Use Marked Object
Secret
Bob:
Use Marked Object
Restricted
Carol:
Use Marked Object
84
Security Extract
Deny permissions always take precedence over allow permissions. The way this
works for hierarchical marking sets is that deny permissions on inferior markings
always take precedence over allow permissions on superior markings. This
behavior is illustrated in the example below:
Security Access
Marking Set
Top Secret
Alice:
Use Marked Object
Secret
Alice:
Deny Use Marked
Object
Bob:
Use Marked Object
Restricted
85
use that marking value. Existing objects that have property values set to
the old marking value will not be updated to reflect the new marking
value and, therefore, will need to be updated manually. If the property
value is not updated, the marking security on those objects will no longer
have any effect.
Modifying the constraint mask and security
You can change the marking's constraint mask and security any time
without affecting existing properties.
Deleting a Marking Set
Marking sets that are referenced by at least one property template cannot
be deleted. The marking set can be deleted if it is not associated with any
property templates or after any associated property templates have been
deleted.
Removing a marking
Individual markings can be deleted from a marking set at anytime, even if
a property value is set to that marking.
Export issues
Since P8 domain resources contained in the GCD are not exportable,
markings are not directly deployable to another FileNet P8 domain.
Securable objects
An independently securable object has its own Access Control List (ACL) that
specifies its security and ensures that access rights are checked each time a user
tries to access it. A dependently securable object depends on some other object as
its security parent.
The important securable objects are:
86
Security Extract
v
v
v
v
Entry templates
Publication documents
Stored searches
Search templates
Workflow definitions
Workflow queues, rosters, and logs
v Folders
v
v
v
v
v
v
Custom objects
Events and subscriptions
Lifecycle policies and actions
Security policies
Annotations
Choice list class
|
|
IBM FileNet P8 has security requirements for access rights to take certain actions
on objects.
|
|
Action
Document
MAJOR_VERSION
Document
MINOR_VERSION
|
|
Checkout
Document
MAJOR_VERSION or
MINOR_VERSION
Authorization
87
|
|
Action
Cancel checkout
Document reservation
MAJOR_VERSION or
MINOR_VERSION or DELETE
|
|
|
|
|
|
Demote Version
Document
MAJOR_VERSION
Promote Version
Document
MAJOR_VERSION
Freeze
Document
WRITE_ACL
View content
Document or Annotation
VIEW_CONTENT
|
|
Move Content
Document or Annotation
or Version Series
WRITE
|
|
Lock
Document or Folder or
Custom Object
WRITE
|
|
Unlock
Document or Folder or
Custom Object
WRITE
|
|
Take Federated
Ownership
Document
WRITE_ACL
|
|
Annotate
Document or Folder or
Custom Object
LINK
|
|
|
Create subscription on
document
|
|
|
Document: LINK
Event Action: LINK
All rights required for Create action
using the subscription's class
definition
|
|
|
Delete subscription on
document
Document: UNLINK
Event Action: UNLINK
Subscription: DELETE
|
|
Document, Folder, or
Custom Object
WRITE_ACL
Change state
Document or Task
CHANGE_STATE
File
Folder
Folder: LINK
Unfile
Folder
|
|
Raise Event
Event
Create class
88
Security Extract
Class definition
WRITE
|
|
Action
Modify
Any object
Change class
Any object
|
|
|
|
Any object
|
|
|
Any object
READ or
Object store: WRITE_ANY_OWNER
|
|
|
Any object
|
|
|
|
|
|
|
Any object
|
|
Unset object-valued
property
Any object
|
|
Any object
|
|
View Permissions
property
Any object
READ_ACL
|
|
Modify Permissions
property
Any object
WRITE_ACL
|
|
Create
Object store:.WRITE_ANY_OWNER
WRITE
Object store: PRIVILEGED_WRITE
|
|
|
|
|
WRITE_OWNER
|
|
|
if reservation object:
MINOR_VERSION or
MAJOR_VERSION or DELETE
|
|
|
|
if an object-valued property's
DeletionAction is set to PREVENT
and references another object, this will
prevent the deletion from taking place
|
|
|
CONNECT
Authorization
89
|
|
Action
|
|
|
Object store
STORE_OBJECTS
|
|
|
Object store
MODIFY_OBJECTS
|
|
|
Object store
REMOVE_OBJECTS
Install Addon
Domain
WRITE
|
|
Domain
WRITE
|
|
Domain
DELETE
|
|
|
|
Modify properties on
GCD objects (including
object store)
Domain
WRITE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
When running the Object Store wizard, you specify the users and groups that
should be object store administrators and those who should have
non-administrative access rights. You can view and modify these security
assignments any time while running Enterprise Manager.
With one exception, administrative users and groups get Full Control on the object
store ACL and likewise on all security ACLs of all securable objects. Note that this
does not include the permission to create object stores, file storage areas, content
cache areas, and related actions like deleting and moving. These permissions
belong only to the user and groups who were specified as GCD administrators
(gcd_admin) when the IBM FileNet P8 domain was created. A user or group can, of
course, belong to both the object store administrators group
object_store_admin_group and the GCD administrators (gcd_admin) group.
90
Security Extract
91
v The Security Policy tab displays the name of the document class' default
security policy, if there is one; lets you change the default security
policy; and lets you run the security policy wizard to create a new
policy.
v The Default Instance Security tab displays the access rights that will be
applied to each new document (the first version) based on the class. The
#CREATOR-OWNER (the user who creates the object using this class) is
granted Full Control by default.
v The Security tab displays the access rights of the document class itself.
By default users are granted Create instance so they can create new
instances of the class (in this case new documents), but are not granted
Create subclass, since subclassing is by default reserved to system
administrators.
Classes receive default security from their parent class
Content Engine provides the Document Class which you can modify and
use as the start of your own hierarchy of document classes. For example,
you could create this hierarchy of document classes:
Document Class (predefined, can be modified)
Tax Bills (subclass of Document Class)
Property Tax Bills (subclass of Tax Bills)
Estate Tax Bills (subclass of Tax Bills)
Each document class receives its default security from its document class
parent. Subsequent updates to a parent class propagate to the child classes.
New objects acquire initial security from a class
The Default Instance Security collection of permissions on a document
class provides the initial security for a new document based on that class.
Similarly with folders and every other class that allows you to create
"instances" of it. This initial security is not treated as Inherited and is
therefore editable. Modifying a class does not affect the security of existing
objects based on that class.
See also Class definition security levels.
92
Security Extract
Modify Properties
Add to Folder
View Properties
v Modify security
v Change owner
v Delete the folder
Default security
The new folder acquires its initial security, with source type of "Default",
from the Default Instance Security page of its class. By default, the user
who creates the folder gets Full Control.
Modifying the security of a particular folder class has no effect on the
security of existing folders that are instances of that class. By contrast,
modifying a folder's security can affect subfolders. Specifically, a child
subfolder inherits only access rights from the parent folder if its "Inherit
parent permissions" property is set to True and the parent has permissions
that are set to be inheritable.
Folder behavior using the Workplace or Workplace XT applications
When a user opens an object store using the Workplace or Workplace XT
applications, the object store's root folder displays only those items the
user is allowed to see. Users cannot add documents to the root folder but
must select another folder. However, using the designer Java applets,
users can save stored searches, search templates, workflow definitions, and
publish templates to the root folder of an object store.
When a user deletes a folder using the Workplace or Workplace XT
applications, the folder gets deleted without deleting the contained
documents. Enterprise Manager offers additional options for deleting
contained documents when deleting folders.
The application's Preferences folder, which contains the various site and
user preferences files, is visible in Enterprise Manager but is not visible
using the Workplace or Workplace XT applications. This is configured
using the IsHiddenContainer property.
Related information:
About deleting folders
Authorization
93
v A document can be associated with a security policy from which it will receive
"Template" permissions. Security policies can be configured to place security on
documents as they pass through various versioning states.
See the Documents and Folders section of Administering Content Engine. For
security information about compound documents, see Compound document
security.
Minor
Versioning
Major
Versioning
v Check out a
document
v Check in a
minor
version
v Cancel a
checkout
v Delete the
document
Modify
Properties
View
Properties
v View
properties
and security
Publish
View Content
v Publish the
document
v View content
v Check out a
document
v Check in a
major
version
v Cancel a
checkout
Tip: The Unlink document access right is not included in any of Enterprise
Manager's predefined levels. It can be assigned directly.
94
Security Extract
Related information:
Versioning states
About compound documents
Requirements
Comments
In addition to security
requirements, a parent
document
CompoundDocumentState
property must be set to
CompoundDocument for any
child component relationship
objects to be created that
User must have View all
reference the document as
properties rights on the child the parent.
component to create
component relationship
object that references the
child.
User must have Link a
document / Annotate rights
on the parent component to
create component
relationship object that
references the parent.
Authorization
95
Requirements
Comments
Modify properties
Security requirements
Delete
96
Security Extract
Required Access
Displayed in Enterprise
Manager
FN_ACCESS_LINK
Remove compound
document link
FN_ACCESS_UNLINK
Unlink document
Authorization
97
Modify Properties
Link
View Properties
All in Modify
Properties plus:
All in View
Properties plus:
v View properties
v Delete
v Modify
permissions
v Modify all
properties
v Link a document
v Read permissions
v Create instance
v Modify owner
The Link access right is hidden in the Workplace and Workplace XT applications.
Modify Properties
Link
View Properties
All in Modify
Properties plus:
All in View
Properties plus:
v View properties
v Delete
v Modify
permissions
v Modify all
properties
v Create instance
v Link a document
lifecycle policy
v Read permissions
v Modify owner
The Link access right is hidden in the Workplace and Workplace XT applications.
Related information:
Concepts: lifecycles
98
Security Extract
v If you are using Workplace or Workplace XT, be aware that these applications
limit permissions on annotations to the following simplified permission levels:
Owner Control, Modify Content, and View Content. For more information, see
Working with documents > Working with documents in Workplace > Work
with Security > Manage Security.
v Like other objects, annotations have an owner property. An annotation owner
need not be the same as the owner of the document or folder that contains the
annotation.
Table 2. Annotation access rights defined
Full Control
Modify Properties
View Properties
View Content
Modify property
values
View content
v Modify
permissions
v Modify owner
v Delete
Modify Properties
Link
View Properties
Modify property
values
v Modify security
v Change owner
v Delete the custom
object
99
Modify Properties
Link
View Properties
v Modify security
v Change owner
v Delete the event or
subscription
The Link access right is hidden in the Workplace and Workplace XT applications.
100
Security Extract
You can think of a publish template as a wizard that Workplace users can
use to create new documents by publishing existing documents. Advanced
users create publish templates using the Publishing Designer application. A
publish template is saved as a versionable document in the Publish
Template class and acquires the class' Default Instance Security.
Access rights defined
A publish template has the same access rights as any other versionable
document except that the Publish access right appear only in Enterprise
Manager, which prevents users and authors from publishing a publish
template.
A publication document has the security specified in the publish template
To publish a document, the user selects the document and the publish
template. The user must have Publish access rights to the document and
View Content access rights to the publish template, as well as the
permission to add objects to the destination folder.
The publish template specifies the location, properties, and security of the
publication document. The template author has the following options for
applying security on the publication document:
v Specify security for the publication document
v Copy security from the document class of the publication document
v Copy security from the source document
v Use security from the destination folder (the publication document's
location)
v Apply security from a security policy
See Specify publication document security in the Publishing Designer
Help for more information on these options.
Republishing
When an author updates a previously published source document, the
author might also want to update the publication document. The publish
template specifies what occurs when a source document is republished. A
republished document can replace the existing publication document or
add a version to it, and:
v Copy security from the previous version, if any
-orv Apply security specified in the publish template
Deleting the source
The publish template specifies whether to delete publication documents
when the source is deleted (a source document can have many publication
documents). To delete a published source document, a Workplace user
must have Owner Control of the source and any publication documents
deleted with it. If the user has insufficient access rights for one or more of
the deletions, the operation results in an error and no deletions occur.
Style template
A style template, created on the Content Engine using the Publishing Style
Template Manager, specifies how to translate a document from its original
format into HTML or PDF. No special security settings are required as the
Transformation Engine takes ownership of each publish request in its
queue and assumes that the user has Full Control.
Authorization
101
Related information:
Specify publication document security
Meaning
Owner Control
Minor Versioning
Major Versioning
Modify Properties
View Content
View Properties
102
Security Extract
v For a content search, the document list includes a document if the user
has at least View Content access rights to the document.
Workflow roster
Query
Create
Launch a workflow.
Authorization
103
Table of access rights you can assign to workflow rosters, work queues, component queues, and user queues
In a...
Query
Process
No access rights
Query
Query & Process
104
Security Extract
then...
Object ownership
Object ownership
All objects have an owner property. Ownership of an object confers special
privileges on that object, including the right to load the object and the right
to read and modify the Permissions collection on the object and modify the
owner. (As explained below, markings can be used to override the special
privileges implicitly granted to owners.)
An object store administrator might need to take or change ownership of
an object. For example, if a user has left documents in an exclusive
checkout state but is no longer available, the administrator could take
ownership of the document and cancel the checkout.
You can take ownership of an object if you have the object's "Modify
owner" permission. You can assign ownership of an object to another
authenticated user or group if you have the object store's "Set Owner of
any object" permission.
Related topics
Take or change ownership
Authorization
105
106
Security Extract
Authorization
107
Security on a property that has been added to a class and then placed on
an instance of the class is governed not by the security of the property
template, but by its object's security. The initial state of the security for any
object is created from the default instance permissions defined via its class
and thereafter edited through the Security tab of the object's property
sheet. For example, the Default Instance Security of a document class is
copied onto a new document, and it is this security that governs access to
the document's properties.
However, keep in mind that property templates have a Settability setting
(found on the More tab of the property sheet) that can be configured so
that the properties based on them will be read-only, read/write, settable
only on create, or settable only on checkin. These settings take precedence
over any permissions granted by the object's security. In other words, a
property marked read-only is not modifiable even if the user is granted the
Modify all properties access right on the document. (See Property
Template properties (More tab - String), or any of the other More tab
property topics, for a description of the choices for settability.)
There are two property-related access rights that appear on the ACLs of all
securable objects:
v View all properties: whether the user can see the object's properties.
v Modify all properties: whether the user can modify the values assigned
to the properties (taking into account any settability restrictions on
modifying the property).
Document Access Control List
Bob
Alice
Document
Property A
Property Template A
Settability: Read/Write
108
Security Extract
Delete document
Alice
Delete document
Document
Property A
Property Template A
Modification Access:
Delete
Settability: Read/Write
109
Object Store
Document Class
Definition
Create instance
Document (instance
just created)
View properties
-ORModify owner
-ORSet Owner of any object
Important: These rights are not, strictly speaking, necessary to
create the object; however, it is possible for users to
programmatically create an object to which they cannot connect.
Object Store
Create instance
View properties
-ORModify owner
-ORSet Owner of any object (see NOTE above)
110
Security Extract
Table that maps the access rights required of the granting object to checkout a minor
version of a document.
Granting object
Object Store
Object Store
Cancel checkout
Table that maps the access rights required of the granting object to cancel a checkout of a
document.
Granting object
Object Store
Delete objects
Delete
-ORMinor versioning
-ORMajor versioning
Other
Object Store
Minor versioning
Authorization
111
Table that maps the access rights required of the granting object to check in a minor version
of a document.
Granting object
Other
Object Store
Major versioning
Other
Promote or demote
Table that maps the access rights required of the granting object to promote or demote a
document.
Granting object
Object Store
Major versioning
Object Store
Delete objects
Delete
Security policies
A security policy serves as a collection of security templates, each of which
contains a predefined list of permissions, or Access Control Entries, that can be
configured to apply to a document, custom object, or folder.
Except where specifically mentioned, this topic describes the association of security
policies with documents and document classes. To fully understand this topic, you
should be familiar with document versioning and the versioning states Released,
In Process, Reservation, and Superseded.
Remember: Security policies are just one way to apply ACEs to an object's ACL.
The other sources are the object's class, a security parent, direct edits to the object's
security, and by programmatically setting the object's access rights.
About security policies on page 113
About templates on page 113
Assigning security policies on page 114
Preserve Direct ACEs on page 115
112
Security Extract
About templates
A security policy serves as a collection of security templates, each of which
contains a predefined list of permissions, or Access Control Entries ACEs), that can
be configured to apply to a document, custom object, or folder.
Authorization
113
Except where specifically mentioned, this topic describes the association of security
policies with documents and document classes. To fully understand this topic, you
should be familiar with document versioning and the versioning states Released,
In Process, Reservation, and Superseded.
Remember: Security policies are just one way to apply ACEs to an object's ACL.
The other sources are the object's class, a security parent, direct edits to the object's
security, and by programmatically setting the object's access rights.
There are two kinds of security templates:
v Versioning security templates automatically update the permissions on
documents as their versioning state changes to one of the four possible
document versioning states: Reservation, In Process, Released, and Superseded,
for which there are four corresponding versioning security templates.
v Application security templates can be configured to apply a list of permissions
to a document, custom object, or folder according to logic programmed into an
application using P8 APIs.
A security template applies to a document version if (1) the document version has
an associated security policy, and (2) the associated security policy has a template
for the document's version state. For example, if the document goes into the
Released versioning state, and the security policy has a Released template, then the
permissions listed in the Released template apply.
Templates cannot be shared between security policies and cannot be independently
loaded or saved apart from their security policy. Permissions on an object that
originate from a security policy will appear on the object's ACL with a Source type
of Template. As such they cannot be directly edited using Enterprise Manager's
Access Control Editor or by using the FileNet P8 API.
Newly created security templates contain no default permissions placed on them
by the Content Engine. Administrators can add permissions at creation time while
running the security policy wizard, or at any later time. Applying a template that
contains no permissions to an object will have the effect of removing any existing
permissions on that object that were previously applied by a security policy.
Related information:
Versioning properties
Edit a security policy
114
Security Extract
the old security policy (if there was one) would be removed. However,
changing a version's class does not override a security policy that was
directly assigned to that version by a user, nor does it change any earlier
versions of the same document.
By assigning it to a specific document version.
Each document version in a version series could, theoretically, have a
different security policy assigned to it. The document class's default
security policy will be placed on each instance of the class, but you can
override the default with a different security policy. You would do this
manually, using Enterprise Manager to open the document version's
property sheet and changing the security policy. This would be
cumbersome and difficult to manage from a system administrator's point
of view, and should be done only as an exception to the normal
application by the document class.
Effects of changes
Documents get their security policy from the default security policy of their class,
if the class has one. Therefore, if you change a document's class to a class that has
a different default security policy, the document will immediately take on that new
security policy. This also means that if you change a document's class to one that
has a security policy that is not the class' default (that is, the new class has a
security policy associated with it that was not its original default policy), the
document will not take on that new policy but will keep its association with the
former security policy.
These scenarios describe the security behavior of changing a document's class, and
assume that the security policies in question have appropriate templates.
If you change a document version's class, and both the new class and the old class
have different default security policies, the permissions applied by the old security
policy are immediately removed and the permissions of the new security policy are
immediately applied to the version. The permissions already applied by the old
document class' Default Instance ACL are not changed. In other words, the new
document class does not apply its Default Instance permissions to the document.
If you change a document version's class, and the version has a policy that does
not match the previous class, the software assumes that the version has a security
policy that was applied by a user and leaves it as is.
Authorization
115
If you change a document's class, and the old class has a security policy and the
new class does not, the permissions applied by the old security policy are
immediately removed. Since the new class has no security policy, the permissions
on the document would come from the other usual sources: from being directly
applied, from the Default Instance ACL of the new document class, and from a
security parent, if there is one.
Related information:
Change document class
Rules of association
Security policies have several rules of association which affect their behavior.
Here are the rules of association for security policies:
v A security policy can contain both versioning and application templates.
v A security policy can contain zero or more application security templates and
from zero to four versioning security templates. Although it is permissible for
security policies to have no templates, it is effectively only a placeholder until
you add one or more templates. Workplace and Workplace XT require you to set
at least one template.
v A security template can have zero or many permissions assigned to it. A
template containing no permissions is allowed programmatically and by
Enterprise Manager's security policy wizard. The security policy wizard
provided by Workplace and Workplace XT require that you add at least one
permission to a template.
v A security policy can be assigned to zero or many folders, zero or many
documents, or zero or many custom objects, or any combination of the three
object types.
v Documents, folders, and custom objects can have zero or one security policy.
v The class definitions for documents, folders, custom objects, and their
sub-classes can each have zero or one default security policy associated with
them. When instances of the class are initially created, the instance will take the
default security policy if there is one. In the case of documents, the default
security policy will be passed to subsequent versions, unless a different security
policy is explicitly provided. In this case, the new security policy is passed to
subsequent versions; it will not automatically revert to the class default.
v A single security policy can be associated with many document, folder, and
custom object classes.
v A single security template cannot be shared between security policies. Each
security template belongs uniquely to the security policy it is associated with.
v The versioning security templates in one security policy have no relationship
with those in another security policy, even though they have the same default
names (Released, In Process, Reservation, Superseded). These default names can
be changed.
Changes to an existing security policy do not propagate to existing documents
until the version state changes or the next version is created. If, however, you
change the document's current policy to some other security policy by directly
changing the document version's property sheet, then these changes are
immediately applied to the version and the permissions applied by the former
security policy are immediately removed.
116
Security Extract
Related information:
Edit a security policy
Rename a security template
117
v Fixed storage area, requiring a fixed content device provided by one of the
supported providers.
v Content cache areas, which deliver better performance by providing local storage
of frequently accessed documents without having to request them over the
network.
File storage area security
Content Engine on UNIX, file storage on Windows on page 121
Content cache area security on page 121
118
Security Extract
Authorization
119
or
umask 0007
NFS Sharing
The root folder must be exported via NFS on the server side (meaning the
computer that hosts the file system) and mounted (via NFS) on the client
side. Once the root folder has been properly shared via NFS, security is
enforced via the user and group identifiers of the client (as if the client
logged on locally to the server computer). The client in this case is the
Content Engine server running on a remote computer.
120
Security Extract
Make sure you prevent non-local root access to a folder that has been
exported via NFS, as allowing non-local root access has serious
implications for security. For example, in Linux the no_root_squash option
must not be included in the export options.
Authorization
121
Consider the following code snippet that illustrates assigning the value of
an instance of class B to an instance of class A's OVP_B property:
Dim IA as A
Dim IB as B
Set IA = ObjectStore.ConnectObject("A", guidIA)
Set IB = ObjectStore.ConnectObject("B", guidIB)
IA.OVP_B = IB
In this example, the target object is IB; therefore the caller must have
Modify All Properties access on IB or the assignment will fail.
Example 2
Suppose there are two additional classes, C and D. Class C includes an
object-valued property named OVP_D. The definition for OVP_D specifies
that its required class is "D"; however the Target Access Required is not
specified. This means that the value of C.OVP_D, when it is set, must
always be an instance of class D; however, since the Target Access
Required on the definition for OVP_D is not specified, the caller only
needs to be granted View properties by the instance of D.
Consider the following code snippet that illustrates assigning the value of
an instance of class D to an instance of class C's OVP_D property:
Dim IC1 as C
Dim ID1 as D
Set IC1 = ObjectStore.ConnectObject("C", guidIC1)
Set IC1 = ObjectStore.ConnectObject("B", guidIB)
IC.OVP_D = ID
In this example, the target object is IC. There is no Target Access Required
on the property definition for OVP_D therefore it defaults to View
properties which means that the caller must have Read access to IB or the
assignment will fail.
122
Security Extract
v When you change the inheritable permissions on a parent object, the change
applies to all versions of a security child that is inheriting those permissions.
v Inherited permissions are a lower precedence than other sources (default, direct,
or template) and so can be overridden by them. This is an issue only when
using deny permissions, since using only allow permissions causes them all to
be combined, no matter what their source.
v Security children can have multiple parents, and parents can themselves have
parents. The effect of more than one parent is to combine all their permissions
into a set of inherited denies and a set of inherited allows (the denies take
precedence).
v Normally, inherited access rights also apply to the parent object itself, for
example when you use This object and all children. However, to apply
inherited access rights only to children and not to the parent, use All children,
but not this object or Immediate children, but not this object. This is
particularly useful for access rights like Delete, where you want to allow the
children to be deleted, but not the parent.
v For more information, see Configure a folder's security inheritance and the
Configure security inheritance.
v To enable inheritance on folders, use the Inherit parent permissions check box,
on the folder's General tab.
Inheritable depth (Apply to)
Each ACE has an inheritable depth setting that is invoked if the ACE is
configured to be inherited by a child object. The inheritable depths are:
This object only
This ACE would not be inherited even if it were configured for
inheritance.
This object and immediate children
This ACE applies to the object and would be inherited by the
parent object's children, but not by the child object's children. After
inheritance takes place, the child ACE will have an inheritable
depth of This object only.
This object and all children
This ACE applies to the object and would be inherited by every
generation of the parent object's child objects. After inheritance
takes place, the child object's ACE will have an inheritable depth of
This object and all children.
All children but not this object
This ACE would be inherited by every generation of the parent
object's child objects, but does not affect the parent object itself.
Immediate children only, but not this object
This ACE would be inherited only by the parent object's immediate
children, but not by further generations, and does not affect the
parent object itself.
The Enterprise Manager security editor lets you set inheritable depth in its Apply
to section. See Configure inheritable depth for more information.
Important: The setting for inheritable depth does not apply to situations where the
ACE is being applied in non-inheritance conditions. For example, an ACE on a
Default Instance Security ACL of a class will be applied to an instance of that class,
Authorization
123
even if the ACE has an inheritable depth of This object only, because the
application of security from a Default Instance ACL is considered default security
and not inherited security.
Security Parent, Security Folder, Security Proxy Type
You can configure the relationship between a parent and child object in
several ways.
Security Parent
Restriction: This feature has been deprecated as of 4.0.1, although
it is still available for compatibility with earlier versions. Any
existing applications that use this feature will continue to work as
before, without change.
When a folder's Security Parent property is configured, that folder
becomes a Security Parent for the documents and custom objects
contained within it. That is, inheritable permissions are inherited
by the Security Parent folder's documents and custom objects.
Internally, setting the SecurityParent property on a RCR or DRCR
will be transformed into setting the SecurityFolder property on the
object that is the head of the RCR/DRCR (a document or custom
object) to its tail (the folder). You can see the Security Parent
property on all documents and custom objects: in Enterprise
Manager, right-click the document or custom object, select
Properties, then click the Properties tab and scroll down the list of
properties.
Security Folder
A Security Folder is a folder from which an object inherits security,
but there is no requirement that its security children be filed in the
folder. You can see the Security Folder property on all documents
and custom objects: in Enterprise Manager, right-click the
document or custom object, select Properties, then click the
Properties tab and scroll down the list of properties.
Security Proxy Type
Content Engine provides extensible security parent relationships by
means of the Security Proxy Type property placed on the metadata
of custom object-valued properties. This property would be added
to a security child's class and the values set into it establish that
child's security parent. You can add this property to any class of
objects as required by your security design. An object can have
many such Security Proxy Type properties, that is, many security
parents with the inherited ACEs from each being merged together
and contributing with equal priority to the access check that
produces the final security mask.
You can apply the Security Proxy Type property to objects other
than folders. For example, you could add a Security Proxy Type =
Inheritance property to the class of a document and then later set
that property in the document (the security child) to a custom
object (the security parent). You can see the Security Proxy
property on all objects: in Enterprise Manager, right-click the
object, select Properties, then click the Properties tab and scroll
down the list of properties.
Configuring inheritance
124
Security Extract
Inheritance or
copy?
Source = Default
Source = Default
Copy
Source = Direct
Source = Inherited
Source = Inherited
Source = Inherited
Not applicable
Source = Inherited
Inherited
Source = Direct
Source = Inherited
Inheritance
Inheritance
Inherited
Authorization
125
Object
Folder
The
DefaultInstancePermissions
of its class, or directly set
when creating.
Security policy, if
configured.
Document
The
DefaultInstancePermissions
of its class, or directly set
when creating.
Security policy, if
configured.
Custom
object
The
DefaultInstancePermissions
of its class, or directly set
when creating.
Custom object-valued
properties with Security Proxy By other objects (document, custom
Type set.
object, folder) through a Security Proxy
Type property and acting as security
parent.
Security folder, if configured
using Security Parent or
Security Folder properties.
Custom object-valued
properties with Security Proxy By other objects (document, custom
object, folder) through Security Proxy
Type set to "Inheritance". See
Configure security inheritance. and acting as security parent.
Same as Document.
Security policy, if
configured.
Annotation
The
DefaultInstancePermissions
of its class, or directly set
when creating.
None.
Other
Classes
Related information:
Folder properties (General tab)
Inheritance between classes
126
Security Extract
127
128
Security Extract
Group support
FileNet P8 supports groups that can include any number of users
and other nested groups. Also, it honors any account states and
restrictions (such as whether disabled and login hours) defined by
the directory server.
Configuration Overview
Directory configuration for Content Engine is conducted in the following two
areas: authentication and authorization. Content Engine does not support different
types of directory servers in the same Content Engine domain.
Directory Configuration for Authentication
Directory configuration for authentication, including configuring login
formats, occurs in the application server's authentication providers and is
done using FileNet P8 Configuration Manager.
Content Engine server does not implement its own authentication module.
Instead, it uses a J2EE application server's authentication mechanism.
Directory Configuration for Authorization
A GCD administrator (gcd_admin) can log in to Enterprise Manager and
configure the direct connection between Content Engine and the directory
service.
Third-party developers can also directly call the Content Engine APIs to
automatically configure it.
CA Directory
IBM Tivoli Directory Server on page 133
Novell eDirectory on page 138
Oracle Internet Directory on page 142
Oracle Directory Server Enterprise Edition on page 146
Windows Active Directory on page 150
Windows Active Directory Lightweight Directory Services (AD LDS) on page
160
Directory service performance on page 166
CA Directory
IBM FileNet P8 supports CA Directory for providing directory services.
Overview (CA Directory)
Support matrix (CA Directory) on page 130
Directory Configuration Properties (CA Directory) on page 131
Get and search operations (CA Directory) on page 133
129
One instance of CA Directory can have multiple data naming contexts. Because
each CA Directory data naming context is mapped to a Content Engine realm, one
CA Directory can be mapped to multiple Content Engine realms. For each realm,
you need to create an application server authentication provider and a
DirectoryConfigurationCA object, so that there is a one-to-one relationship between
Realm object and authentication provider, and also a one-to-one relationship
between Realm object and DirectoryConfigurationCA object. For each
DirectoryConfiguration object, FileNet P8 extracts the realm name from the
specified UserBaseDN property value by comparing it with each data naming
context. For example, if the UserBaseDN for this DirectoryConfiguration object is
"ou=people, o=isp ", and there are two data naming contexts: "o=isp" and
"dc=filenet,dc=com", then you know the realm name for this
DirectoryConfiguration object is "o=isp".
Important: It is an IBM best practice to configure TLS or SSL between your
application server that hosts Content Engine and your directory server. This will
include making changes to the Content Engine DirectoryConfigurationCA object
that was created while running Configuration Manager. Consult your application
server's documentation for instructions.
One-way SSL
Yes
Two-way SSL
No
No
Static Groups *
Yes
Nested Groups
Yes
Universal Groups
No
inetOrgPerson
groupOfUniqueNames, groupOfNames
No
Yes
Chaining
Yes
Roles
No
Directory aliases
No
No
Yes
Yes
No
130
Security Extract
Table of CA Directory features that are supported or not supported by Content Engine.
Features
Sorting
Yes
Paging/Continuation
member, uniqueMember
* Static groups
Static groups are useful when the members do not change often. Users and
other entries can be grouped using a static group entry. A static group
entry contains a list of members DNs. The static group entry usually has
an object class of "groupOfNames" and an attribute "member" that has one
value for each of the members in the group. If a user is removed from the
directory, then you must manually remove the user's member DN from
each group that the user belonged to.
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
Specifies the name of the host that is running the directory server
product.
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
Specifies the port number of the directory server. The value of this
property defaults to port 389 for all supported directory server types.
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
DynamicGroup
MemberAttribute
Yes
Specifies the directory server attribute that holds the static members of a
dynamic group.
DynamicGroup
QueryAttribute
Yes
Specifies the attribute in the dynamic group that holds the dynamic
LDAP query. The Content Engine server runs this query to retrieve the
dynamic members of the group.
DynamicGroupObjectClass
Yes
GroupBaseDN
Yes
131
List of properties for the DirectoryConfigurationCA class, whether it can be edited, and a description for each property.
Property Name
Editable?
Description
GroupDisplayNameAttribute
Yes
GroupMembership
SearchFilter
Yes
GroupNameAttribute (also
called
GroupShortNameAttribute)
Yes
Defines the directory server attribute to be used as the short name for a
group.
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
The directory service attribute that serves as the security identifier (SID)
for each group. Select an attribute whose values are unique and do not
change over time. Typically, this attribute is the same as the
UserUniqueIDAttribute.
You must use only those LDAP attributes that return Java String in the
LDAP Java API.
Id
No
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
SearchDynamicGroup
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserNameAttribute (also
called
UserShortNameAttribute)
Yes
The directory service attribute that has been configured as the Logon
Attribute.
UserSearchFilter
Yes
UserUniqueIDAttribute
Yes
The directory service attribute that serves as the security identifier (SID)
for each user. Select an attribute whose values are unique and do not
change over time. Typically, this attribute is the same as the
GroupUniqueIDAttribute.
You must use only those LDAP attributes that return Java String in the
LDAP Java API.
132
Security Extract
133
Yes
Two-way SSL
No
No
Static Groups
Yes
Dynamic Groups
No
Nested Groups
Yes
inetOrgPerson
groupOfUniqueNames, groupOfNames
Roles
No
No
Yes
Chaining
Yes
Directory aliases
No
Yes
Yes
Sorting
134
Security Extract
Table of IBM Tivoli Directory Server features that are identified as being supported or not supported by Content
Engine.
IBM Tivoli Directory Server Features
Paging/Continuation
uniqueMember, member
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
135
List of properties for the DirectoryConfigurationIBM class, whether it can be edited, and a description for each
property.
Property Name
Editable?
Description
GroupDisplayNameAttribute
Yes
GroupMembershipSearchFilter
Yes
GroupNameAttribute
Yes
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
Id
No
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
136
Security Extract
List of properties for the DirectoryConfigurationIBM class, whether it can be edited, and a description for each
property.
Property Name
Editable?
UserSearchFilter
Yes
Description
Specifies search filter for users. Example:
(&(objectclass=user)(cn={0}))
where cn has been set as the short name.
UserSearchFilter and UserNameAttribute
must use the same LDAP attribute.
UserUniqueIDAttribute
Yes
137
Novell eDirectory
IBM FileNet P8 supports Novell eDirectory for providing directory services.
Overview (Novell eDirectory)
Support matrix (Novell eDirectory)
Directory Configuration Properties (Novell eDirectory) on page 139
Get and search operations (Novell eDirectory) on page 141
Yes
Two-way SSL
No
No
Static Groups
Yes
Nested Groups
Dynamic Groups
No
Person
138
Security Extract
Table of Novell eDirectory features that are identified as being supported or not supported by Content Engine.
Novell eDirectory Features
groupOfNames
Roles
No
No
Yes
Chaining
Yes
Directory aliases
No
Yes
Yes
Yes - If you set this property as the user short name, you
must create an index for the eDirectory Internet Email
Address attribute.
Do not use email for group short name
Sorting
Paging/Continuation
member
139
List of properties for the DirectoryConfigurationNovell class, whether it can be edited, and a description for each
property.
Name
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
GroupDisplayNameAttribute
Yes
GroupMembership SearchFilter
Yes
GroupNameAttribute
Yes
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
Id Property
No
IsSSLEnabled
Yes
140
Security Extract
List of properties for the DirectoryConfigurationNovell class, whether it can be edited, and a description for each
property.
Name
Editable?
Description
RestrictMembershipTo
ConfiguredRealms
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
UserSearchFilter
Yes
UserUniqueIDAttribute
Yes
141
Yes
Two-way SSL
No
No
Static Groups
Yes
Nested Groups
Yes
Dynamic Groups
No
person,organizationalPerson,inetOrgPerson
groupOfUniqueNames, groupOfNames
No
Yes
Chaining
No
Roles
No
Directory aliases
No
Yes
142
Security Extract
Table of Oracle Internet Directory features that are identified as being supported or not supported by Content Engine.
Oracle Internet Directory Features
Yes
Yes
Sorting
Paging/Continuation
uniqueMember, member
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
143
List of properties for the DirectoryConfigurationOID class, whether it can be edited, and a description for each
property.
Name
Editable?
Description
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
GroupDisplayNameAttribute
Yes
GroupMembership SearchFilter
Yes
GroupNameAttribute
Yes
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
Id Property
No
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
UserBaseDN
Yes
144
Security Extract
List of properties for the DirectoryConfigurationOID class, whether it can be edited, and a description for each
property.
Name
Editable?
Description
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
UserSearchFilter
Yes
UserUniqueIDAttribute
Yes
145
One-way SSL
Yes
Two-way SSL
No
No
Static Groups
Yes
Nested Groups
Yes
146
Security Extract
Table of Oracle Directory Server Enterprise Edition features that are identified as being supported or not supported by
the Content Engine.
Oracle Directory Server Enterprise Edition Features
Dynamic Groups
No
Universal Groups
No
inetOrgPerson
groupOfUniqueNames
No
Restriction: Earlier releases of FileNet P8 were able to
follow referrals, but this is not supported in the present
release due to problems with how Oracle Directory Server
Enterprise Edition performs sorting. Use Oracle Directory
Server Enterprise Edition server chaining instead of
referrals.
Yes
Chaining
Yes
Roles
No
Directory aliases
No
Yes
Yes
Sorting
Paging/Continuation
uniqueMember, member
147
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
GroupDisplayNameAttribute
Yes
GroupMembership SearchFilter
Yes
GroupNameAttribute
Yes
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
Id
148
No
Security Extract
List of properties for the DirectoryConfigurationSunOne class, whether it can be edited, and a description for each
property.
Property Name
Editable?
Description
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
UserSearchFilter
Yes
UserUniqueIDAttribute
Yes
149
One-way SSL
Yes
Two-way SSL
No
Universal Groups
Yes
Security Groups
Yes
Distribution Groups
Yes
Nested Groups
Yes
Builtin Groups
No
Yes
user
group
No
Roles
No
Directory aliases
No
Yes
Yes
150
Security Extract
Table of Active Directory features that are identified as being supported or not supported by Content Engine.
Active Directory Features
Yes
No
Yes
Yes
If true: [email protected]
If false: full DN
DNS Site
Sorting
Paging/Continuation
No
Yes
member
151
Editable?
AllowEmailOrUPNShortNames
Yes
Description
Set this property to Y to allow the at sign (@) in
user names. This property is available only in
Enterprise Manager.
Set this property the same way on all Active
Directory directory configurations.
ClassDescription
No
ConnectionTimeout
Yes
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
GroupDisplayNameAttribute
Yes
GroupMembershipSearchFilter
Yes
GroupNameAttribute
Yes
152
Security Extract
List of properties for the DirectoryConfigurationAD class, whether it can be edited, and a description for each property.
Property Name
Editable?
GroupSearchFilter
Yes
Description
Specifies search filter for groups. Example:
(&(objectclass=group)(samAccountName={0}))
where samAccountName will serve as the short
name. GroupSearchFilter must use the same LDAP
attribute as GroupNameAttribute.
GroupUniqueIDAttribute
Yes
Id
No
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
ReturnNameAsDN
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
153
List of properties for the DirectoryConfigurationAD class, whether it can be edited, and a description for each property.
Property Name
Editable?
UserSearchFilter
Yes
Description
Specifies search filter for users. Example:
(&(objectclass=user)(samAccountName={0}))
where samAccountName will serve as the short
name. UserSearchFilter must use the same LDAP
attribute as UserNameAttribute.
UserUniqueIDAttribute
Yes
Domain
A
Domain
B
Domain Local
Group
Global
Group
Universal
Group
To summarize:
v Group membership in the same domain is two-way, regardless the group scope.
154
Security Extract
v If the cross-domain group membership does not involve a Domain Local Group,
it is two-way in the Global Catalog.
155
can be either a short name such as dc1 or a fully-qualified DNS name such as
dc1.mydomain.com. Although you can specify only one pair in the failover list, you
should have two or more pairs to create a true failover sequence.
When Content Engine is started, it attempts to connect to each pair in order from
left to right until it finds a working pair. Content Engine then uses this pair for
LDAP access until the server that is specified by this pair becomes unavailable for
some reason. Content Engine then starts the failover process again by going back
to the beginning of the failover list and trying each pair from left to right. If it
cannot connect to any pair in the list, various types of errors can be generated on
the client, depending on the point of failure. For example it might be a DNS error
such as UnknownHost, a network error, or a connection refused error.
Specify a failover list in the DirectoryServerHost property of the
DirectoryConfiguration class. Because each pair contains a port number, Content
Engine ignores any value in the DirectoryServerPort property. Separate each pair
with a space character. The following table shows examples of a DC failover list:
Table 5. Failover configuration example that uses host:port pairs
Properties in Enterprise Manager
Value
Host
Port
GCHost
GCPort
156
Security Extract
my_dc that will associated with three local domain controllers: 9.39.50.155,
9.39.50.157, and 9.39.50.159. Content Engine pings these domain controllers until
one is available.
In some cases, this method is preferable to the host:port pairs method. For
example, if you have many applications communicating with many directory
servers and a directory server is decommissioned or its host name is changed, you
remove it from the DNS server and all applications will use the updated DNS data
to perform failover. No application restart is necessary.
You can maintain a list of directory servers that is associated to a DNS name on
your DNS server. All applications point to this DNS name instead of specific server
names. The DNS name can be either an AD domain name or an arbitrary host
name that is associated to multiple IP addresses of AD servers.
Content Engine follows these general steps during failover when the failover
support is configured to use domain name or multiple IP addresses:
1. Retrieves the AD domain name or a multiple-IP address host name from GCD.
If Content Engine finds only one host name in the Host field and not a pair or
several pairs and if this host name resolves to more than one IP in DNS server,
then Content Engine interprets it as a domain name or multiple-IP host name
and not as a host:port configuration.
2. Searches DNS server for all A records whose name is this domain name or
multiple-IP address host name.
3. Gets back a list of IP addresses and pings them all at the same time.
4. Uses the first IP address that responds and ignores the others.
The following table provides examples of domain names that are configured for
failover and set in Enterprise Manager. The examples are based on the following
assumptions:
v The Active Directory domain name is mydomain.com.
v More than one domain controller (in this domain) has Global Catalog server
running on it.
v Port 3268 is used for the global catalog server.
In Enterprise Manager, you would set the following fields.
Table 6. Failover configuration example that uses domain names
Properties in Enterprise Manager
Value
Host
mydomain.com
Port
389
GCHost
mydomain.com
GCPort
3268
157
Value
Host
localAD
Port
389
GCHost
localAD
GCPort
3268
For more information about DNS A records, see your Active Directory
documentation.
If more than one user or group is found, Content Engine will log an error
and return the first user found. Content Engine requires that short names
be unique across domains and forests.
Get User or Group by DN
v Resolve the domain name from the DN.
v Connect to the domain and search for the user or group by DN.
v If group membership is asked for, FileNet P8 searches for it in the local
domain first; then searches for it again in the Global Catalog. In the end,
FileNet P8 combines the results.
v If the multi-forest support flag is turned on and the group membership
is asked for, FileNet P8 searches all forests.
Get User by UPN when AllowEmailOrUPNShortNames is disabled
v
v
v
v
158
Security Extract
159
Application server
IBM FileNet Content Engine
GCD directory
configuration objects
Object
store
Authorization
Application server
authentication
configuration
Authentication
AD LDS
Native AD LDS user objects
(IBM FileNet Content Engine supports AD LDS-only
authentication if user login credentials are found in a
native AD LDS user object)
160
Security Extract
Directory. When a user logs in using an ID found in a the AD LDS object, AD LDS
redirects authentication to Active Directory.
Login
GCD
Application server
IBM FileNet Content Engine
GCD directory
configuration Objects
Object
store
Application server
authentication
configuration
Authorization
Authentication
AD LDS
Native AD LDS user objects
AD to AD LDS
Synchronizer
Active Directory
AD User accounts
Proxy objects
(IBM FileNet Content Engine supports use of AD
LDS proxy objects to map to regular AD accounts)
Authentication
redirect
You can optionally use the Synchronizer tool, a built-in feature of AD LDS, to pull
user account information from Active Directory. In this scenario, AD LDS user
accounts are proxy users. P8 provides support for native and proxy users in AD
LDS as follows:
v If a user class is based on userProxyFull, which stores the user ID in AD LDS
while the account password remains in Active Directory, AD LDS will re-direct
bind requests to Active Directory.
v If a class lists msds-BindProxy as its auxiliary class, then it is a proxy user, and
AD LDS will re-direct bind requests to Active Directory.
v If a class such as organizationalPerson lists msds-bindableObject as its auxiliary
class, then AD LDS processes the bind request directly as a native AD LDS user.
v P8 does not support users based on userProxy, which does not contain the
required e-mail address attribute.
When properly configured this provides one-way data flow from Active Directory
to AD LDS. You could continue to provision AD LDS-only accounts in AD LDS,
and both types of accounts could authenticate to a FileNet P8 application,
following normal configuration of Content Engine classes' Default Instance Security
tabs in Enterprise Manager. The application does not need to be aware of this
Active Directory interaction.
Consult your AD LDS documentation for how to use the userProxyFull object and
the msds-bindableObject auxiliary class.
Important: It is a best practice to configure SSL between your application server
that hosts Content Engine and your AD LDS servers. This will include making
changes in the application server to the authentication provider's
DirectoryConfigurationADAM object that was created while running Configuration
Manager. Consult your application server's documentation for instructions.
161
Yes
No
Yes
Nested Groups
Yes
Dynamic Groups
Not applicable
Universal Groups
Not applicable
Roles
No
No
Chaining
No
Directory aliases
No
Not applicable
Not applicable
Not applicable
Not applicable
Not applicable
Yes
Yes
162
Security Extract
Table of Active Directory LDS features that are identified as being supported or not supported by Content Engine.
AD LDS Features
MaxTempTableSize
Yes
No
Yes
member
Editable?
Description
ClassDescription
No
DirectoryServerHost
Yes
DirectoryServerPassword
Yes
DirectoryServerPort
Yes
163
List of properties for the DirectoryConfigurationADAM class, whether it can be edited, and a description for each
property.
Property Name
Editable?
Description
DirectoryServerProviderClass
Yes
DirectoryServerType
No
DirectoryServerUserName
Yes
DisplayName
Yes
GroupBaseDN
Yes
GroupDisplayNameAttribute
Yes
GroupMembershipSearchFilter
Yes
GroupNameAttribute
Yes
GroupSearchFilter
Yes
GroupUniqueIDAttribute
Yes
Id
No
IsSSLEnabled
Yes
RestrictMembershipTo
ConfiguredRealms
Yes
UserBaseDN
Yes
UserDisplayNameAttribute
Yes
UserShortNameAttribute
Yes
164
Security Extract
List of properties for the DirectoryConfigurationADAM class, whether it can be edited, and a description for each
property.
Property Name
Editable?
UserSearchFilter
Yes
Description
Specifies search filter for users:
(&(objectClass=person)(cn={0}))
where cn has been set as the short name. This
filter finds both native AD LDS accounts and
Active Directory accounts referenced by the
userProxyFull object or objects configured with
msDS-bindableObject as a static auxiliary class.
UserSearchFilter must use the same LDAP
attribute as UserNameAttribute.
UserUniqueIDAttribute
Yes
Related information:
Directory configuration (FileNet P8 domain properties)
165
3. If found, return.
Search Users or Groups in a Given Realm
1. Connect to the host corresponding to the specified realm.
2. Search for the users or groups by the search criteria.
166
Security Extract
Consult the Sun Java System Directory Server documentation for more
information on the features mentioned here, particularly the chapter on
Directory Server Indexing in the Administration Guide.
v There is a performance cost associated with a wide range search such as
using a single character search pattern or no-pattern. When possible, use
a narrowed search pattern. For example, use a more complete
searchPattern string: stan instead of s.
v Create substring indexes for the uid and cn fields that typically map to
Content Engine's UserShortNameAttribute, GroupShortNameAttribute,
UserDisplayNameAttribute, and GroupDisplayNameAttribute
properties. (To view these properties in Enterprise Manager, right-click
the Root Domain node, select Properties, and then click the Directory
Config tab.).
v Increase the All Ids Threshold from its default of 4000, as appropriate.
For example, if its value is 4,000 and if there are more than 4,000 entries
in the Directory Server that start with sys, then the Directory Server
will no longer maintain that index. This means that Directory Server will
return an error if you do a sorted query for StartsWith sys, even if you
set the maximum results parameter to less than 4,000. According to Sun's
documentation, you should try to maintain this threshold at no less than
5% of your total directory. That is, the default of 4,000 assumes an
authentication directory containing approximately 80,000 entries. If your
directory contained 150,000 entries, you would probably want to increase
the All Ids Threshold to at least 7500.
v Increase the Look Through Limit from its default of 5000 to -1 (no limit)
so that there is no maximum number of accounts that will be checked in
any given search. An alternative would be to set this value to such a
large number that virtually no search would reach the maximum.
Important: The Directory Server might return an error when the
Directory Server entry count is over this limit, regardless of whether the
query is sorted.
v Increase the Size Limit parameter (default of 2000) to a value larger than
the maximum-results entry set for any associated FileNet P8 user
interface (for example, the FileNet P8 Workplace Site Preference setting
called Group and User Maximum Filter Size). This ensures that the
expected maximum number of results will be returned. Otherwise, users
could get back the number of records determined by the size limit
parameter and not be aware that there are in fact more entries that meet
the search criteria.
v Set a browsing index in your Sun Java System directory to improve the
performance of a no-pattern query.
Important: Queries without a search pattern are used to retrieve all
entries. if there is no matching browsing index and the resultant entries
count is greater than the All IDs Threshold Limit, Directory Server
returns an error such as:
[LDAP: error code 12 - Sort Response Control]
167
This could happen when searching using a broad search scope such as
with a single-character search pattern .
v All substring queries work as long as the All IDs Threshold is greater
than the Directory Server entry count.
v If you do not use a substring index, the search might complete without
error because the entries are within the limit, but you might experience
poor search performance.
168
Security Extract
Recommendation
v Change sizeLimit at the global config entry (dn: cn=config) to -1 (no
limit).
v Change nsslapd-lookthroughlimit to -1 (no limit).
v Set the All IDs Threshold to a value no less than 5% of the Directory
Server entry count, but monitor and test user and group account
searches carefully to determine whether a higher value might be more
appropriate.
How to create a browsing index on Sun One Directory Server (For Sun Java
System Directory Server, see procedure below.)
The substring index does not help queries without pattern. A query
without pattern returns an error when the Directory Server entry count is
over the All IDs Threshold value. You can avoid this error by creating a
browsing index for that specific search.
Consult the Administration Guide for Sun One Directory Server for more
details on managing browsing indexes.
Here are steps to create a browsing index. The following example uses the
following assumptions:
v dc=eng,dc=filenet,dc=com is a Directory suffix and is the base DN
v eng is the database name for this Directory suffix.
v the Short name and Display name of user entries is uid
v the Short name and Display name of group entries is cn
1. Create a file BrowsingIndex.txt with the following contents:
dn: cn="dc=eng,dc=filenet,dc=com:(objectClass=person)",
cn=eng,cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvSearch
cn: "dc=eng,dc=filenet,dc=com:(objectClass=person)"
vlvbase: dc=eng,dc=filenet,dc=com
vlvscope: 2
vlvfilter: (&(objectClass=person)(uid=*))
dn: cn=sort uid,cn="dc=eng,dc=FileNet,
dc=com:(objectClass=person)", cn=eng, cn=ldbm database,
cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: sort uid
vlvSort: uid
dn: cn=rev sort uid, cn="dc=eng,dc=filenet,
dc=com:(objectClass=person)", cn=eng, cn=ldbm database,
cn=plugins, cn=config
objectClass: top
objectClass: vlvIndex
cn: rev sort uid
vlvSort: -uid
dn: cn="dc=eng,dc=filenet,
dc=com:(objectClass=groupOfUniqueNames)", cn=eng,
cn=ldbm database, cn=plugins, cn=config
objectClass: top
objectClass: vlvSearch
Directory service providers
169
cn: "dc=eng,dc=filenet,dc=com:(objectClass=groupOfUniqueNames)"
vlvbase: dc=eng,dc=filenet,dc=com
vlvscope: 2
vlvfilter: (&(objectClass=groupOfUniqueNames)(cn=*))
dn: cn=sort cn,cn="dc=eng,dc=filenet,
dc=com:(objectClass=groupOfUniqueNames)", cn=eng,
cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: sort cn
vlvSort: cn
dn: cn=rev sort cn,cn="dc=eng,dc=filenet,
dc=com:(objectClass=groupOfUniqueNames)", cn=eng,
cn=ldbm database, cn=plugins, cn=config
objectClass: top
objectClass: vlvIndex
cn: rev sort cn
vlvSort: -cn
dn: cn=sort_users_cn,cn="dc=eng,dc=filenet,
dc=com:(objectClass=person)", cn=eng,
cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: sort_users_cn
vlvSort: cn
dn: cn=rev_sort_users_cn,cn="dc=eng,dc=filenet,
dc=com:(objectClass=person)", cn=eng,
cn=ldbm database, cn=plugins, cn=config
objectClass: top
objectClass: vlvIndex
cn: rev_sort_users_cn
vlvSort: -cn
The first three entries are browsing-index entries for querying users.
The next three entries are browsing- index entries for querying
groups. The last two are sort indexes on objectClass=person, based
on cn instead of uid. Each vlvSearch entry is tied to a specific base
DN and a specific filter.
The vlvBase must be the same as specified in the User/Group Base
DN in Enterprise Manager's Directory Configuration. The vlvFilter
must match the User/Group Search Filter as well. For instance, if the
following User Search Filter is specified in Directory Configuration:
(&(objectClass=person)(uid={0}))
170
Security Extract
and the filter as a unique name. For the user case, one vlvIndex is
named "sort uid" and the second one is named "rev sort uid". It is
assumed that the user Short name attribute and Display name
attribute are the same attribute: uid. If they are not the same, then two
more vlvIndex entries should be added for another attribute. In this
example, these vlvSearch and vlvIndex entries are specific to the base
DN dc=eng,dc=filenet,dc=com. If there are more realms on the server,
a new set of entries should be added for each realm.
2. Run the ldapmodify utility to create vlvSearch and vlvIndex entries
using the above file as input:
<SUNONE_INSTALL_DIR>\shared\bin\ldapmodify -a -h
<SUNONE_HOST_NAME> -p <SUNONE_PORT_NUMBER> -D
<USER_ID> -w <PASSWORD> -f <full path of BrowsingIndex.txt>
For example,
Ldapmodify -a -h hq-sunds -p 1389 -D "cn=Directory Manager"
-w -Directory Manager" -f C:\temp\BrowsingIndex.txt
Repeat the process above if there are more indexes added to the
BrowsingIndex.txt file.
Note that <DB_NAME> is the cn name under cn=idbm
database,cn=plugins,cn=config. For example,
Slapd db2index -D "C:\Program Files\Sun\MPS\slapd-myserver"
-n eng -T "sort uid"
171
172
Security Extract
The first three entries are browsing-index entries for querying users.
The next three entries are browsing- index entries for querying groups.
The last two are sort indexes on objectClass=person, based on cn
instead of uid. Each vlvSearch entry is tied to a specific base DN and a
specific filter.
The vlvBase should be the same as specified in the User/Group Base
DN in Enterprise Manager's Directory Configuration. The vlvFilter
should match the User/Group Search Filter as well. For instance, if the
following User Search Filter is specified in Directory Configuration:
(&(objectClass=person)(uid={0}))
173
For example,
Ldapmodify -a -h hq-sunds -p 1389 -D "cn=Directory Manager"
-w -Directory Manager" -f C:\temp\BrowsingIndex.txt
use ConsoleOne:
In ConsoleOne, right-click the Server object.
Click Properties > Indexes > Add
Enter the Index Name. If you do not enter an index name, the attribute is
automatically assigned as the index.
4. Select an attribute.
5. Select the index rule.
v Value matches the entire value or the first part of the value of an attribute.
For example, value matching could be used to find entries with a LastName
that is equal to "Jensen" and entries with a LastName that begins with "Jen".
v Presence requires only the presence of an attribute rather than specific
attribute values. A query to find all entries with a Login Script attribute
would use a presence index.
174
Security Extract
175
176
Security Extract
177
178
Security Extract
WebLogic 10.x
BEA_Home/bea/wlserver_10.0/server/bin/
startWLS.sh or start WLS.cmd
BEA_home/bea/user_projects/domains/
domain_name/config/config.xml
JBoss
JBOSS_home/bin/run.sh or run.bat
JBOSS_home/server/default/conf/loginconfig.xml (on both Content Engine and
Application Engine servers)
179
BEA_home/bea/user_projects/domains/
domain_name/config/config.xml
WebLogic 10.x
BEA_Home/bea/wlserver_10.0/server/bin/
startWLS.sh or start WLS.cmd
BEA_home/bea/user_projects/domains/
domain_name/config/config.xml
JBoss
JBOSS_home/bin/run.sh or run.bat
JBOSS_home/server/default/conf/loginconfig.xml (on both Content Engine and
Application Engine servers)
180
Security Extract
BEA_home/bea/user_projects/domains/domain_name/config/
config.xml
JBoss
JBOSS_home/bin/run.sh or run.bat
JBOSS_home/server/default/conf/login-config.xml (on
both Content Engine and Application Engine servers)
181
182
Security Extract
Unique identifier
ce_os_user
Description
An operating system account you must log on as to create and
configure the shared root directory of a file storage area or content
cache area.
The operating system user who logs on to the Content Engine
server and starts the local application server process is the account
that must be used to secure the folders and files in a file storage
area. From a practical standpoint, the account that is used to install
the application server should be the same account that is used to
start the application server process. As an administrator, you will
always log in using the same ce_os_user account to secure the
folders and files in the file system that Content Engine will use for
a file storage area.
Minimum required permissions
Windows
For Windows-based Content Engine and file storage areas,
ce_os_user must reside in the same Windows domain or in
trusted Windows domains as the servers that host Content
Engine and the file storage area.
For Windows-based file storage areas and using
WebSphere: you must set the WebSphere service to logon
as the ce_os_user.
UNIX For UNIX-based Content Engine and file storage areas,
configuring security requires the use of NFS.
183
Content Engine user account for DB2 for Linux, UNIX and
Windows
An operating system account on the database server that Content Engine uses to
access DB2 for Linux, UNIX and Windows.
Content Engine database user (DB2 for Linux, UNIX and Windows)
Unique identifier
ce_db_user
Description
This user account is granted database permissions for Content
Engine access to the DB2 database. Separate accounts can be used
for each object store, but are not required.
184
Security Extract
185
Description
An operating system user account you log on as to run the Process
Engine installation program.
Minimum required permissions (Windows)
Use your Windows administrative tools to grant this account at
least the following permissions:
v Read, write, and execute permissions to the device or location
where Process Engine is to be installed, by default C:\Program
Files\IBM\FileNet\ProcessEngine.
v Read, write, and execute permissions to the device or location
where Process Engine common files are to be installed, by
default C:\Program Files\IBM\FileNet\Common Files
v Write permission on the .\Common Files\taskmaninstances.xml
file, if the P8TASKMAN_HOME environment variable exists.
v Write permission on the %tmp% directory
If you install as a non-administrative user you must log on after
the installation as an administrator to run a script to edit the
registry and create the Process Engine Manager service.
Minimum required permissions (UNIX)
Use your UNIX administrative tools to grant this account at least
the following permissions:
v Read, write, and execute permissions to the device or location
where Process Engine is to be installed, by default
/opt/IBM/FileNet/ProcessEngine.
v Read, write, and execute permissions to the device or location
where Process Engine common files are to be installed, by
default /opt/IBM/FileNet/CommonFiles.
v Write permission on the ./CommonFiles/taskmaninstances.xml
file, if the P8TASKMAN_HOME environment variable exists.
v Write permission on the %tmp% directory
If you want to configure Process Engine to automatically start, this
user must also have root permission to modify the /etc/inittab
file.
Process Engine database user for DB2 for Linux, UNIX and
Windows
A database account on the database server that Process Engine uses to access DB2
for Linux, UNIX and Windows. This account is initially created as an operating
system account.
Process Engine database user for DB2 for Linux, UNIX and Windows
Unique identifier
pe_db_user
Description
This user is required to configure the Process Engine database. The
IT administrator (ITA) creates this operating system account, after
which the database administrator (DBA) grants it additional
database permissions.
In a farmed or cluster configuration, each Process Engine must be
configured to use the same database user name.
186
Security Extract
187
188
Security Extract
189
190
Security Extract
191
192
Security Extract
GCD administrator
A directory service account that has Full Control access to the Content Engine
domain object.
GCD administrator
Unique identifier
gcd_admin
Description
The gcd_admin is able to create, modify, and delete Content Engine
domain resources.
The gcd_admin account must reside in the directory service realm
specified in Configuration Manager's Configure LDAP task.
A GCD administrator can grant Full Control rights to additional
users and groups, thereby making them GCD administrators as
well. Being a GCD administrator does not automatically make you
an object_store_admin, which is assigned on the object store's own
property sheet.
Log on to Enterprise Manager as gcd_admin in order to:
v Create the GCD by launching the Configure New Domain
Permissions wizard the first time you start Enterprise Manager
to establish the FileNet P8 domain.
v Carry out administrative tasks for the FileNet P8 domain.
Minimum required permissions
Use Enterprise Manager to grant Full Control access to the Content
Engine domain object.
193
194
Security Extract
Unique identifier
ce_service_user
Description
Provide the fully qualified distinguished name of ce_service_user as
the directory service bind user name while running Configuration
Manager and also when you run the Enterprise Manager Directory
Configuration Wizard.
ce_service_user performs the following roles:
v Acts as the bind user specified by the application server to
search through realms to authenticate a user when the user logs
in to a Content Engine client such as Workplace.
v Acts as the user account that searches other users and groups in
the directory server for Content Engine authorization.
Provide the fully qualified distinguished name of ce_service_user as
the LDAPBindDN while running Configuration Manager and also
when you run the Enterprise Manager Directory Configuration
Wizard. Available for viewing and modifying in the Enterprise
Manager's Directory configuration tab.
The Directory Service User cannot be accessed using referrals.
Minimum required permissions
Use Active Directory tools to grant ce_service_user at least the
following minimum rights to all entries (including user and group
entries) in each security realm that is configured for your FileNet
P8 domain:
v Read access rights (specifically the Read All Properties
permission) to the forest-wide configuration directory partition
and the domain directory partition in each desired domain in
the Active Directory forest. Because Authenticated Users by
default is a member of the Pre-Windows 2000 Compatible Access
group which has these permissions, you will need to assign the
permissions to ce_service_user only if the default is modified or
Authenticated Users access rights are restricted.
195
v Acts as the user account that searches other users and groups in
the directory server for Content Engine authorization.
Provide the fully qualified distinguished name of ce_service_user as
the LDAPBindDN while running Configuration Manager and also
when you run the Enterprise Manager Directory Configuration
Wizard. Available for viewing and modifying in the Enterprise
Manager's Directory configuration tab.
The Directory Service User cannot be accessed using referrals.
Minimum required permissions
An AD LDS user account that Content Engine uses to connect to a
single Microsoft AD LDS partition. To configure this, perform the
following steps:
1. Start ADAM ADSI Edit under Start > All Programs > ADAM.
2. Connect to the partition. Expand partition in left-hand pane
and click the CN=Roles node.) Be sure you have selected the
CN=Roles container in the partition not under the
CN=Configuration.)
3. In the right-hand pane right-click the CN=Readers group and
select Properties.
4. In the Attributes list double-click the member attribute.
5. Click Add ADAM Account.
6. Enter the full DN of the user to be designated as the service
user while running the Content Engine installation program,
and click OK.
7. Click OK and click OK again.
Related information:
Use ADSI Edit to Manage an AD LDS Instance
196
Security Extract
197
Unique identifier
ce_service_user
Description
Provide the fully qualified distinguished name of ce_service_user as
the directory service bind user name while running Configuration
Manager and also when you run the Enterprise Manager Directory
Configuration Wizard.
ce_service_user performs the following roles:
v Acts as the bind user specified by the application server to
search through realms to authenticate a user when the user logs
in to a Content Engine client such as Workplace.
v Acts as the user account that searches other users and groups in
the directory server for Content Engine authorization.
Provide the fully qualified distinguished name of ce_service_user as
the LDAPBindDN while running Configuration Manager and also
when you run the Enterprise Manager Directory Configuration
Wizard. Available for viewing and modifying in the Enterprise
Manager's Directory configuration tab.
The Directory Service User cannot be accessed using referrals.
Minimum required permissions
Use your directory server's tools to grant ce_service_user at least the
following minimum rights to all entries (including user and group
entries) in each namingContext that is configured for your FileNet
P8 domain: Read, Search, Compare.
198
Security Extract
199
200
Security Extract
Database accounts
The database accounts required by FileNet P8 components are listed here.
Accounts are referred to in documentation in the following ways:
201
202
Security Extract
Related tasks:
Configuring the JDBC distributed transaction components
v SELECT on DUAL
v SELECT on product_component_version
v SELECT on USER_INDEXES (Upgrade CE only)
In addition:
v On Oracle 10.2.0.4, Oracle 11.1.0.6.0 or later (where both the
JDBC client and the database server are at those levels), grant
the following:
EXECUTE on dbms_xa
v For Oracle releases earlier than 10.2.0.4, see Oracle Metalink
document ID 436362.1 for required patches, or grant this instead:
EXECUTE on dbms_system
Several of these permissions are required by Content Engine JDBC
XA transactions.
203
Description
The IT administrator (ITA) creates this operating system account,
after which the database administrator (DBA) grants it additional
database permissions. Separate accounts can be used for each
object store, but are not required.
Do not create databases with the RESTRICTIVE option.
Minimum required permissions
Use your database tools to grant the following database
permissions to this user account:
v CONNECT ON DATABASE
v
v
v
v
v
CREATETAB
USE OF TABLESPACES
SELECT on SYSIBM.SYSVERSIONS
SELECT on SYSCAT.DATATYPES (Object Store creation only)
SELECT on SYSCAT.SYSINDEXES, SYSIBM.SYSDUMMY1
(Upgrade only)
GRANT
GRANT
GRANT
GRANT
GRANT
SYSADM TO ce_db_user
USE OF STOGROUP storagegroupname TO ce_db_user
USE OF BUFFERPOOL buffer_pool_name TO ce_db_user
SELECT ON SYSCAT.DATATYPES TO ce_db_user
SELECT ON SYSIBM.SYSVERSIONS TO ce_db_user
where:
ce_db_user
is the operating system user name created for the Content
Engine database user
204
Security Extract
storagegroupname
is the name of the storage group
buffer_pool_name
is the name of the buffer pool
Process Engine database user for DB2 for Linux, UNIX and
Windows
A database account on the database server that Process Engine uses to access DB2
for Linux, UNIX and Windows. This account is initially created as an operating
system account.
Process Engine database user for DB2 for Linux, UNIX and Windows
Unique identifier
pe_db_user
Description
This user is required to configure the Process Engine database. The
IT administrator (ITA) creates this operating system account, after
which the database administrator (DBA) grants it additional
database permissions.
In a farmed or cluster configuration, each Process Engine must be
configured to use the same database user name.
Do not create databases with the RESTRICTIVE option.
Minimum required permissions
Use your database tools to grant the following database
permissions to this user account:
v CONNECT ON DATABASE
v CREATETAB
v USE OF TABLESPACES
v SELECT on SYSIBM.SYSVERSIONS
v SELECT on SYSCAT.DATATYPES (Object Store creation only)
v SELECT on SYSCAT.SYSINDEXES, SYSIBM.SYSDUMMY1
(Upgrade only)
v USAGE on workload SYSDEFAULTUSERWORKLOAD
v IMPLICIT_SCHEMA on DATABASE
For added security in a shared database environment, you can
remove the Connect privilege from the Public group.
205
206
Security Extract
v SELECT on DUAL
v SELECT on product_component_version
In addition:
v On Oracle 10.2.0.4, Oracle 11.1.0.6.0 or later (where both the
JDBC client and the database server are at those levels), grant
the following:
EXECUTE on dbms_xa
v For Oracle releases earlier than 10.2.0.4, see Oracle Metalink
document ID 436362.1 for required patches, or grant this instead:
EXECUTE on dbms_system
207
Unique identifier
appserver_admin
Description
WebSphere Application Server
In Configuration Manager, when you run the Set Properties for
WebSphere Application Server task, enter the credentials of the
appserver_admin account in the field labeled Application server
administrator user name. Configuration Manager uses the
appserver_admin account to run configuration tasks.
WebSphere administrative security is enabled
You have two options for creating the appserver_admin user
account. You can use the local file-based account usually
defined while creating the WebSphere profile. Or, you can
use WebSphere tools to grant administrative rights to an
LDAP account and optionally remove the file-based
account created earlier.
The appserver_admin user account must have WebSphere
administrator permissions throughout the Content Engine
installation process. Afterwards, you can reduce the
account to a lesser role, such as Configurator.
WebSphere administrative security is not enabled
If you decide not to enable WebSphere administrative
security during profile creation, then no special credentials
are required to log in to the WebSphere admin console. You
can enter any string into the Configuration Manager field
labeled Application server administrator user name.
However, remember that to run Content Engine,
WebSphere administrative security must be enabled. When
you do enable it and the WebSphere admin console
requests an account to use as the admin user, enter the
appserver_admin.
Oracle WebLogic Server
In Configuration Manager, when you run the Set Properties for
Oracle WebLogic Server task, enter the credentials of the
appserver_admin account in the field labeled Application server
administrator user name. Configuration Manager uses the
appserver_admin account to run configuration tasks.
This user is defined when you create a new WebLogic domain.
The WebLogic Configuration wizard requires you to enter the
Administrator user name and password. This user is created as
an internal WebLogic application, file-based account. (It is not
an LDAP or operating system account.) Use the
appserver_admin account to log in to the Oracle WebLogic
Server administration console.
JBoss
JBoss does not require an administrative account.
208
Security Extract
PSConsole
Access role whose members can access Simulation Console from the Advanced
Author page.
PSConsole
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
You can restrict the ability to run Simulation Console by assigning
a group to the corresponding role in the Access roles preferences. If
a group is assigned to the role, only members of that group can
run Simulation Console.
Related concepts:
About workflow security
Related information:
Access roles preferences
PSDesigner
Access role whose members can access Simulation Designer from the Advanced
Author page.
PSDesigner
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
You can restrict the ability to run Simulation Designer by assigning
a group to the corresponding role in the Access roles preferences. If
a group is assigned to the role, only members of the group can run
Simulation Designer.
209
Related concepts:
About workflow security
Related information:
Access roles preferences
PWAdministrator
Access role whose members can access Process Administrator from the Admin
page in Workplace or the Tools menu in Workplace XT.
PWAdministrator
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
Must belong to the Process Engine Administrator Group
pe_admin_group. You can restrict the ability to run Process
Administrator by assigning a group to the corresponding role in
the Access roles preferences. If a group is assigned to the role, only
members of the group can run Process Administrator.
Related concepts:
About workflow security
Related information:
Access roles preferences
PWConfiguration
Access role whose members can access Process Configuration Console from the
Admin page in Workplace or the Tools menu in Workplace XT.
PWConfiguration
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
Must belong to the Process Engine Configuration Group
(pe_config_group). You can restrict the ability to run Process
Configuration Console by assigning a group to the corresponding
role in the Access roles preferences. If a group is assigned to the
role, only members of the group can run Process Configuration
Console.
Related concepts:
About workflow security
Related information:
Access roles preferences
PWDesigner
Access role whose members can access Process Designer in design and diagram
mode and the Workflow Subscription wizard from the Advanced Author page in
Workplace or the Tools menu in Workplace XT.
210
Security Extract
PWDesigner
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
You can restrict the ability to run Process Designer in design and
diagram mode by assigning a group to the corresponding role in
the Access roles preferences. If a group is assigned to the role, only
members of the group can run Process Designer.
Related concepts:
About workflow security
Related information:
Access roles preferences
PWDiagram
Access role whose members can access Process Designer in diagram mode from
the Advanced Author page in Workplace or the Tools menu in Workplace XT.
PWDiagram
Description
Created while defining site privileges. Access roles are stored as
values in custom objects in the object store.
Minimum required permissions
You can restrict the ability to run Process Designer in diagram
mode by assigning a group to the corresponding role in the Access
roles preferences. If a group is assigned to the role, only members
of the group can run Process Designer.
Related concepts:
About workflow security
Related information:
Access roles preferences
#AUTHENTICATED-USERS
A Content Engine logical group whose members are any authenticated user
principal. Any user account that who can successfully log in belongs to this group.
#AUTHENTICATED-USERS
#AUTHENTICATED-USERS is similar to the special groups Everyone in
Windows NT 4 and Authenticated Users in Windows 2000. It does not
have specific memberships that you can modify, and it does not include
anonymous users or guests.
If you specify #AUTHENTICATED-USERS to be a default user or group of
an object store, then all users who log in to the FileNet P8 domain are
automatically made members of this group. It will appear on the Default
Instance Security ACL of all classes. Therefore each instance of the class
will include #AUTHENTICATED-USERS on its own ACL. If you do not
change the default, the net effect will be that any user who can log in to
the FileNet P8 domain will be able to:
v View all object stores (default level = Use stores and services)
Users and groups required by FileNet P8
211
#CREATOR-OWNER
The special Content Engine account granted to the user who creates an object.
#CREATOR-OWNER
#CREATOR-OWNER is a placeholder in an access control entry (ACE) and
is used for copying a defined set of permissions to the individual user who
is creating a new object. This copying takes place:
v When applying default instance security from a class to an instance of
the class.
v Whenever a security template places ACEs on an object.
v When performing inheritance propagation to a target ACE (such as from
a parent folder to a child folder).
By default, #CREATOR-OWNER appears on the Security and Default
Instance Security tabs of all instantiable classes, and is granted Full
Control, with an inheritable depth of This object only. This account
functions just like a normal user account, and its default permissions can
be edited according to normal rules (that is, by users with appropriate
permission).
When the ACE is inherited, the permissions granted to the
#CREATOR-OWNER become the permissions granted to the object's
current owner. For example, when a user creates a document based on a
document class, that user takes on the #CREATOR-OWNER's permissions.
Actually, two target ACEs result whenever the #CREATOR-OWNER is
copied onto an object - a substituted ACE and a non-substituted ACE:
v The substituted ACE is always created but is forced to be non-inheritable
(its inheritable depth becomes This object only regardless of the source
value).
v The unsubstituted ACE is a complete copy of the source ACE except that
if performing inheritance propagation the inheritable depth value can be
decremented (if it is not 0 or -1), and in all cases the unsubstituted ACE
will be suppressed if the (resulting) inheritable depth is zero.
Windows Authentication: the user attribute used is the samAccountName.
212
Security Extract
213
214
Security Extract
Comments
Enterprise Manager
Site Preferences
Enterprise Manager
215
Related information:
Start Enterprise Manager
Create a security policy
Assign a security policy
Site preferences
216
Security Extract
Definition
CipherKeyLength
Username
DigestAlgorithm
GCDConnection
EncryptedPassword
CipherAlgorithm
-b bits
Cryptographic key length (in bits)
Security tools and procedures
217
-c algorithm
Cryptographic cipher algorithm
-e file
Filename and optional path of the EAR file
-f Forces the utility to ignore warnings
-g name
Cryptographic message digest provider
-h Displays this help message
-i name
Cryptographic cipher provider
-j file
File path of the EAR file to be patched with bootstrap info
-k key
Optional. The seed string used to generate the Master cryptographic key. Using
a seed is not FIPS-140 compliant. If there is no seed string the key will be
generated randomly.
-l Lists the current configuration
-m algorithm
Cryptographic message digest algorithm
-n Forces the utility to store a plaintext password
-o Boolean
Forces master key safe mode
-p password
Password associated with username
-q Suppresses text output
-r Restores the configuration to default values
-s name
JNDI datasource name (non-XA)
-t filepath
Inserts the specified file into the EAR file
-u name
Username of an app server administrator
-v Displays version and copyright information
-w port
HTTP Port for WSI (wasp.servlet.httpport)
-x name
JNDI datasource name (XA)
-y class
Keystore handler class name (with package)
Example
The following example shows how you would upgrade a new
CEMPBoot.properties file by copying the CEMPBoot.properties file from a source
218
Security Extract
(old) EAR file's props.jar file to a target (new) EAR file. The properties in the
target will be overwritten. (The example shows WebSphere as the application
server.)
java -jar BootstrapConfig.jar -e /opt/FileNet/ContentEngine/lib/
bootstrap_path/Engine-ws.ear -j /temp_device/Engine-ws.ear.
where:
-e introduces the source (old) EAR file
-j introduces the target (new) EAR file
ws denotes WebSphere
wl denotes WebLogic
jb denotes single JBoss
jbc
denotes the cluster installation of JBoss
If the props.jar or CEMPBoot.properties files do not exist in the target, they will
be created based on the source. Creating the files can fix some cases of malformed
target EAR files.
To run the example command, perform the following steps:
1. Backup the old EAR file (the file referenced by the -e switch in the above
example).
2. Run the command shown in the example.
3. Copy the new EAR file (the file referenced by the -j switch in the example) in
the temp_device. Paste it so that it overwrites the old EAR file in the current
bootstrap directory.
4. Use the Configuration Manager tool to create a new profile, or open an existing
profile, that includes the Deploy Application task. Run that task to re-deploy
the updated EAR file. Alternatively, you can manually redeploy the EAR file.
Digital signing
Java applets are digitally signed using an IBM certificate recognized by all
supported browsers.
When that certificate is periodically renewed, an Application Engine fix pack is
made available with newly signed applets. If you do not install that fix pack to
refresh the digital signatures, users will see additional confirmation dialog pop-ups
warning them of problems with the expired certificate.
Displaying security
Security is displayed in various ways by various FileNet P8 components.
Enterprise Manager security editor on page 220
Enterprise Manager's Select Users and Groups dialog box on page 221
Workplace and Workplace XT security editor on page 221
Site and user preferences on page 221
219
v
v
v
v
v
220
Security Extract
For Active Directory: The user principal name (UPN), for example,
[email protected].
For other directory service providers: The distinguished name (DN), for
example, uid=shawking,cn=users,dc=filenet,dc=com.
Source: ACEs can have different source types. If an ACE is editable (which is the
case if the permissions are Direct), you can tell because the various regions are
not disabled. An ACE whose Source is Template or Inherited are not editable,
and when selected the rest of the security editor becomes disabled.
Level: The possible levels for the object type are listed with radio buttons. The
users and groups who are specified as object store administrative groups while
running the object store wizard appear on all ACLs with Full Control. You can
change the level by selecting one of the radio buttons associated with the Levels.
Apply to: Also called inheritable depth, you can change the value using the
Apply to control box if the ACE is editable.
Type: Displays whether the ACE is allowed or denied, and also lets you change
the value if the ACE is editable.
(list of) Levels: List of security levels appropriate to the object. Different objects
have different sets of security levels. For documents, it includes such things as
the ability to publish and to create minor and major versions. A folder would
have a different set of security levels. When Full Control is selected all the other
lower levels are marked with an asterisk. The asterisk next to a Level means
that it is included in the Level currently selected; this behavior is the meaning of
all required bits are set.
(list of) Rights: When Full Control is selected as the Level, all Rights are
selected. If you were to clear just one of them, View all properties, for example,
the Level would automatically be changed to Custom, which means that the
collection of all selected Rights does not exactly match the requirements of the
predefined Levels. If you were to reselect View all properties so that all the
Rights were selected, the Full Control level would again be automatically
selected.
Add: Click to add users and groups.
Remove: Click to remove the selected ACE from the ACL. This does not remove
the user or group from the directory server or from any other ACL the ACE
might be present on.
Active Marking/Owner: Click to view or edit the ownership of this object.
Related information:
Security tab
Select users and groups
Access control settings (Owner tab)
221
Table that lists the site preferences for security and the associated security options that can be set.
Site Preference
Security options
Allow guests
Security info
Keep-alive interval
Related information:
Site preferences files
Guest info
Security info
General settings for Author
Access roles preferences
Keep alive interval
222
Security Extract
When Enterprise Manager loads and tries to read connection information from
EMDomainConfig.xml, it looks first in the user's ...\Application Data\ directory. If
the file is not found, then EMDomainConfig.xml is copied from Enterprise Manager
installation area to the user's ...\Application Data\ directory where it is read
from the new location.
Important: EMDomainConfig.xml also stores configuration settings for FileNet
Publishing Style Template Manager which also supports roaming logins.
Related information:
Log on to a domain
Specify object store administrators
Log on to the object store
Network security
The security of your FileNet P8 installation on your corporate network is the
responsibility of the security administrator and is not described here.
The topics in this help section are only intended to explain what the relationship of
FileNet P8 technology is in regard to issues like firewalls, digital signing, and SSL,
and do not fully explain how to configure and maintain these important security
components.
223
Encryption
IBM FileNet P8 provides methods for encrypting the credentials and network
communications.
Content Engine credential encryption
Encrypting Credentials
Resetting keys on page 226
Content encryption on page 227
Encrypting Credentials
FileNet P8 provides methods for encrypting credentials that are passed over an
internet connection.
|
|
224
Security Extract
Content Engine
|
|
|
|
|
Content Engine uses a single 128-bit Master Key for encrypting and decrypting all
credentials. The Master Key is generated while running Configuration Manager's
Configure Bootstrap Properties task, using a FIPS 140-compliant key generation
algorithm. The Master Key is stored in the Content Engine EAR file where it can
be used by the Content Engine server, but is not available via any API.
|
|
|
Content Engine uses symmetric key encryption to encrypt sensitive password data
at rest in the GCD. It uses a single encryption algorithm and strength using the
FIPS-140 compliant 128-bit AES encryption.
|
|
|
|
|
|
The Master Key is a part of the bootstrap properties that are encoded into an EAR
file by Configuration Manager's Configure Bootstrap Properties task. As long as the
original bootstrapped EAR file (or a backup of it) is available, Configuration
Manager's Configure Bootstrap Properties task (or the Bootstrap Configuration
Utility) can be used to transfer these properties to a new EAR file, when installing
a Content Engine patch or upgrade.
|
|
|
|
|
However, if the bootstrapped EAR file is lost and no backup exists, it is not
possible to generate a new version with the same Master Key. A new EAR file with
a different Master Key would have to be generated, and all passwords (as well as
the Isolated Region key) would have to be reset. For this reason, it is important to
keep a backup of your EAR file once it has been bootstrapped.
|
|
|
All EAR files deployed across all servers in a FileNet P8 domain must use the
same Master Key. It is a best practice to use TLS or SSL when deploying the
Content Engine EAR file.
Process Engine
|
|
|
|
|
|
The default transport for Process Engine is IIOP. However, by using a FIPS-140
certificate, you can configure the Process Engine API to communicate with Process
Engine using the HTTPs protocol. HTTPs signals the browser to use an added
encryption layer of SSL (also called TLS) to protect network traffic.The 140 series of
Federal Information Processing Standards (FIPS) are United States government
computer security standards that specify requirements for cryptography modules.
|
|
|
|
|
|
|
|
Here are some examples of the Process Engine API communicating with Process
Engine:
|
|
|
|
|
The Process Engine installer automatically generates a default SSL certificate, using
the ktgen script. This script is located in the Process Engine installation directory. It
generates a self-signed certificate stored in the data directory, JPEDATA_DIR\
p8pekeys. When HTTPS is enabled, the certificate is sent to the Process Engine API
which uses it to secure the communications channel. The certificate lasts 3650 days.
|
|
To enable FIPS, the startpesvr script must contain the following line:
-Djpeserver.useHTTPTunneling=true -Djpeserver.httptunnel.ssl=true
Security tools and procedures
225
|
|
|
|
|
|
|
To generate a new self-signed certificate and private key, delete the existing
p8pekeys file and then run the ktgen script. The ktgen script accepts an optional
argument for the keystore password. If you do not specify a keystore password, it
will use the default value of P8PESSLTOKEN. If the ktgen script was invoked with
a password parameter, you should modify the startpesvr script to reflect that
password by adding the following JVM system property:
|
|
To encrypt the password, run the genseed script located in the Process Engine
install directory, as shown in the following example:
install_path/FileNet/ProcessEngine/genseed password_string
|
|
The script will encrypt the password string. Use the encrypted password for the
-Djpeserver.httptunnel.ssl.storepass command previously mentioned.
||
|
|
|
|
ktgen
mynewstorepw
|
|
|
genseed.bat
mynewstorepw
mynewstorepw=encrypted_password
|
|
|
-Djpeserver.httptunnel.ssl.storepass=@encrypted_password
-Djpeserver.httptunnel.ssl.storepass=@encrypted_password
Resetting keys
If the Master Key is lost or corrupted, the credentials stored in the GCD must be
reset by the GCD administrator (gcd_admin).
Resetting the keys must be done by someone who knows the existing passwords
(for Verity, Liquent, Directory service user, fixed storage devices, and so on) or who
has the ability to reset those passwords. When the Master Key is lost, corrupted or
changed, follow these basic steps:
1. Rerun Configuration Manager's Configure Bootstrap Properties task (or the
bootstrap utility, BCU) to re-encrypt the credentials of the Bootstrap user (also
called the Content Engine System User, or ce_bootstrap_admin) that are stored in
the CEMPBoot.properties file.
2. Preferably using TLS or SSL, redeploy this EAR file to each Content Engine
server in the FileNet P8 domain.
3. Log in to Enterprise Manager as a GCD administrator (gcd_admin). Reset the
passwords for each of the following items:
v Each Directory Service Configuration.
v Each IsolatedRegion.
v Each CFS-IS or CFS-CS fixed device.
v Each Verity domain configuration.
226
Security Extract
Content encryption
Content Engine does not provide features for encrypting the data contained in
content files being transmitted between Content Engine and the fixed content
storage device or file storage area. You should therefore consider whether and how
to provide this type of security.
Content Engine also does not provide for encryption of the content data at rest. See
the IBM FileNet P8 Hardware and Software Requirements for information about
support of third-party encryption solutions for data at rest
Also see File storage area and content cache area access rights.
227
228
Security Extract
How to...
tbd
In addition to the security procedures in this section, the following security-related
procedures are covered elsewhere in Help:
v Creating security policies.
v Using Enterprise Manager's security editor.
v Specifying object store administrators and users and administrators in the Object
Store wizard.
Add users and groups to a class
Add users and groups to a single object on page 230
Add or remove a GCD administrator on page 231
Add or remove an object store administrator on page 231
Allow or disallow security inheritance on page 232
Allow users to add items to a folder on page 232
Change Bootstrap admin password on page 232
Configure a folder's security inheritance on page 235
Configure security inheritance on page 236
Configure Content Engine to use email or UPN for login on page 239
Configure inheritable depth (Apply to) on page 243
Configure multiple authenticating attributes on page 243
Configure multiple realms on page 245
Deny an object store administrator access to a document on page 248
Modify an object's security on page 250
Restrict access to the root folder on page 250
Set security on workflow queues and rosters on page 250
Take or change ownership on page 251
Update object store with new users and groups on page 251
Related information:
Create a security policy
Security editor
Create an object store wizard
229
v The Security tab governs the security of the class itself (who can subclass it,
delete it, change its properties, etc.). New users and groups who will be
administrators of the class should be added to the Security tab of the class.
To add new users/groups to the Default Instance Security ACL of a class:
1. Log on to Enterprise Manager as an object store administrator
(object_store_admin).
2. Use Enterprise Manager to open the property sheet of the class and go to the
Default Instance Security tab. Use the Add button and use the Select Users or
Groups dialog box. Click OK to close the dialog box.
3. Use the security editor to examine and if necessary change the default
permissions of the new grantees.
Important: The default security level of a new user or group is View
Properties. Full administrative control is conferred by having the Full Control
level. Make sure you should grant the new user or group the permissions they
will need.
4. Click OK when you are done. New instances of the class will include the
newly added grantee with the default access permissions you selected.
Remember: Modifying a class does not affect existing objects that are instances of
that class. For example, adding users to the Default Instance Security ACL of a
document class does not add those new users to existing documents based on that
class.
Related information:
Select users and groups
Security tab
230
Security Extract
Related information:
Select users and groups
Security tab
How to...
231
232
Security Extract
Engine bootstrap file. When Content Engine starts up, it uses the account and
password to authenticate against the user registry defined in the application server.
Here are the characteristics of the ce_bootstrap_admin account:
v It must reside in Content Engine's configured LDAP directory server.
v Configuration Manager's Configure Bootstrap Properties task places it in the
Content Engine's bootstrap file. In this location ce_bootstrap_admin is called the
Content Engine system user.
v During the initial P8 Domain creation and configuration, it is automatically
added to the Enterprise Manager's domain security property sheet as the default
GCD admin user (gcd_admin). After initial P8 domain configuration, it is a best
practice to replace it with a different gcd_admin account.
v Many installations will also enter this account into Configuration Manager's
Configure LDAP task as the Directory Service User account (sometimes known
as the bind user, or ce_service_user), the account that Content Engine's application
server uses to bind to the directory server. The Configure LDAP task places the
account into the application server's authentication configuration location.
v This account is sometimes also used as the LDAP bind user during P8 Domain
creation, by entering the account name and password in the Directory Service
User field in Enterprise Manager's Directory Configuration property sheet.
Changing ce_bootstrap_admin's password in the directory server means that you
must at the same time change it in these locations. If you do not, the bootstrap file
will not be able to authenticate to the LDAP and Content Engine will not be able
to start. You can also lock yourself out from Enterprise Manager. Follow this
procedure carefully to avoid this scenario.
This procedure requires access to the Content Engine location, to the application
server console, and to the directory server. Because of the relative complexity of
this procedure, unless there is an overriding reason to change the password of this
important account, you can consider exempting the Content Engine system user
account from your password change policy if this still meets your security
requirements.
Some steps below will be different for installations using JBoss, as JBoss does not
have an administrative console or the need to log in as an administrator.
To change the Content Engine system user password:
1. Backup the Engine-##.ear file, where ws denotes WebSphere, wl denote
WebLogic, and jb denotes JBoss. You can then revert to last good known EAR
file in case changing the password fails.
2. On the server containing Content Engine, start the Configuration Manager.
a. Load the Configuration Manager profile that describes your installation.
b. Click Configuration Bootstrap Properties. Do not change anything yet.
The Bootstrap user password is the field you will change later in this
procedure.
c. Leave this window open while doing the following steps.
3. Log in to Enterprise Manager as GCD administrator gcd_admin.
a. In Enterprise Manager, right-click the Root Folder, and then click
Properties
b. Click the Directory Configuration tab.
How to...
233
c. Select the row that represents the configuration parameters pointing to the
LDAP location that the Content Engine system user belongs to, and click
Edit.
d. When the Modify Directory Configuration dialog box opens, view the
value for the Directory Service User account.
v If this account is the same as the Content Engine system user
(ce_bootstrap_admin) identified in step 2, then continue with the next
step.
v If it is different, then continue but skip the steps that deal with changing
the Directory Service User (that is, Steps 5, 7, 8.
e. Do not change anything yet. Leave the dialog box open while doing the
remaining steps.
4. (WebLogic and WebSphere) Log in to your application server console and
search all the user registries for the Content Engine system user. Verify that
the Content Engine system user is defined in the directory server where the
password change will take place. This is to ensure that the application server
is indeed using the directory server for authentication, and not some other
custom authentication provider (WebLogic) or user registry repository
(WebSphere).
5. Locate the value for the Directory Service User account. This should be the
same value as described in step 3d.
a. Navigate to the authentication provider panel containing the ID and
password for the Directory Service User account.
v WebLogic: this will be the value of the Principal field in the
Authentication Provider for the WebLogic domain containing Content
Engine.
v WebSphere: this will be the bind user account in the Profile containing
Content Engine.
v JBoss: the Directory Service User account is contained in the
login-config.xml file.
b. Do not change anything yet. Leave the console open while doing the
remaining steps.
6. Log in to your directory server.
a. Navigate to the location containing the account for the Content Engine
system user.
b. Change its password.
c. Save and apply.
7. Return to your application server console.
a. Change the password of the Directory Service user account (also known as
the bind account) to the new password .
b. Save and apply.
c. Do not restart the application server until instructed to do so below.
8. Return to Enterprise Manager dialog box.
a. Change the Directory Service User's password to the new password.
b. Click Apply and OK to close the dialog box.
9. Return to the window containing Configuration Manager.
a. In the Configure Bootstrap Properties task, set the Bootstrap Operation
property to Modify Existing.
b. Confirm that the Bootstrapped EAR file property contains the path to the
bootstrap file you need to edit.
234
Security Extract
How to...
235
236
Security Extract
How to...
237
238
Security Extract
e. Scroll down and find the Property Default Object row and click its
Property Value cell. If you have not yet set the value, you will get a dialog
box asking you to select OK to set the value. Click OK and the Select
Object from Paste Buffer will appear.
f. Select the object that will be supplying the inherited security and click OK.
Click Close and OK to close the class property sheet.
If the object you need is not in the list, click Cancel and start this procedure
again, being careful to follow the step describing how to copy the object
reference of the object whose security will be inherited.
If the Propagate Metadata Changes dialog box opens, you must decide,
based on the requirements of your security design, whether the new
property you just added to a class should be propagated down to all
subclasses. We will not propagate for this procedure; therefore in the
Updated Property Definitions box do not select the property definition we
just created. Click OK to return to Enterprise Manager.
6. Create a new document using the class we have been using in this procedure.
(If you have not assigned a default value as optionally described above, you
will be prompted for an object reference. Set the reference using the object
reference you copied.)
7. Examine the new document's Security tab and confirm that it has inherited
ACEs from the security parent object. The inherited ACEs will show a Source
type of Inherited. In order to change the access rights of this inherited ACE,
you would change it on the source document; the changes will automatically be
updated on the target document.
8. Repeat this procedure as many times as required by your security design.
Related information:
Copy object reference
Create a property template
Assign properties to a class
How to...
239
WebLogic
Login Properties:
uid
Active Directory
User from name filter:
(&(mail=%u)(objectclass=user))
User name attribute:
mail
All other directory servers
User from name filter:
(&(mail=%u)(objectclass=person))
User name attribute:
mail
JBoss
To configure multiple JBoss Authentication Providers,
refer to Configure multiple realms to modify each
Authentication Provider entry.
240
Security Extract
b. Use Configuration Manager to Save and Run the Configure LDAP task.
c. (Websphere Federated Repositories only) Search the WebSphere application
server profile for wimconfig.xml. Edit wimconfig.xml in the following way:
1) Search for the propertyName="uid" entry (samAccountName in the
example is for Active Directory; other directory servers have values
such as cn or uid). (If the search does not find this entry, you might
have to create the following):
<config:attributes name="samAccountName" propertyName="uid">
<config:entityTypes>PersonAccount</config:entityTypes>
</config:attributes>
3) Save wimconfig.xml.
3. (Active Directory only) To use UPN for the short name:
a. Depending on your application server type, set the following properties to
configure the short name for UPN:
Table of attributes and values to set for UPN for the listed Application Server types.
Application Server type
User Filter:
(&(userPrincipalName=%v)(objectClass=user))
User ID map:
user:userPrincipalName
Login Properties:
uid
WebLogic
JBoss
Base Filter:
(userPrincipalName={0})
b. Use Configuration Manager to Save and Run the Configure LDAP task.
c. (Websphere Federated Repositories only) Search the WebSphere application
server profile for wimconfig.xml. Edit wimconfig.xml in the following way:
1) Search for the propertyName="uid" entry (If the search does not find
this entry, you might have to create the following):
<config:attributes name="samAccountName" propertyName="uid">
<config:entityTypes>PersonAccount</config:entityTypes>
</config:attributes>
3) Save wimconfig.xml.
How to...
241
7.
8.
9.
10.
Table of properties to set when running the Directory Configuration wizard for either email or UPN.
If running the Directory Configuration wizard for this
attribute ...
email
12. Repeat #11 for any additional directory configurations that are required by
your installation.
242
Security Extract
Typical shortname
equivalent
Typical longname
equivalent
Active Directory
sAMAccountName
userPrincipalName or DN
sAMAccountName
userPrincipalName or DN
uid
DN
Novell eDirectory
cn
DN
cn
DN
cn
DN
243
When using JBoss 4.0.5, if CN=Users is missing from the rolesCtxDN tag, you
will not be able to log on to Enterprise Manager, which will throw an
incorrect user name/password exception.
5. Restart the application server.
6. Log in to Enterprise Manager as a GCD administrator (gcd_admin).
a. Right-click the Enterprise Manager root folder, and then select Properties.
244
Security Extract
245
246
Security Extract
How to...
247
248
Security Extract
i. Click OK to close the Select Users and Groups dialog box and return to the
Create New Marking property sheet's Security tab.
j. Click Next to proceed to the Completing the Create a Marking Set Wizard
page.
k. Click Finish to complete and close the wizard. Click OK if a dialog box
pops up to confirm that you have successfully created a Marking Set. The
marking set you just created shows up in the P8 domain property sheet's
Markings Set tab.
l. Click OK to close the property sheet return to the default view of Enterprise
Manager.
2. Create the Property Template.
a. Create a new property template. Right click Enterprise Manager's Property
Template node and select New Property Template. This opens the Create a
Property Template wizard.
b. In the Wizard's Welcome page, click Next.
c. In the Name and Describe the Property Template page, enter a name and
optional description. For example, you could enter "Marking Deny Admin
Access". Click Next.
d. In the Select the Data Type page, select String type. Click Next.
e. In the Select a Choice List page, select Assign marking set and pick the
marking set you created from the list. Click Next.
f. In the Single or Multi-Value? page, select Single for the purposes of this
sample. Optionally, you could click More and use the More tab to specify
the desired marking value as the default value of the string property, rather
than having to set it on each new document
g. Click Finish to complete and close the wizard. Click OK if a dialog box
pops up to confirm that you have successfully created a Property Template.
The property template you just created shows up in Enterprise Manager's
list of property templates.
3. Assign the property template to a class.
a. Select and expand Enterprise Manager's Document Class node. Select the
document class that should be associated with the new marking set and
select Add properties to class. This opens the Add Properties to a Class
Wizard which will let you add a property based on the new property
template you just created. The new custom property shows up on the right
side of Enterprise Manager when you select the class.
4. Create a document based on the class.
a. Run the Create a New Document wizard to create a document based on
that document class. Unless you set a default value for the property as
described above, the wizard you use to create the object will not set the
marking value for the marking-enabled property. You have to do that in the
next step.
b. Set the markings on the document (but see the Note below):
v Right-click the document and select Properties. Select the Properties tab.
v In the property grid's Property Name column, find the property you
added to the class in the step above.
v Click either the Property Value cell or the cell's arrow. Any markings that
have already been set as values for the property will appear in the list.
You will also see Edit List.
How to...
249
v Click Edit List to open the Add/Remove List Items window, which you
can use to add or remove markings. Note that you will only be able to
see those markings that you have permissions to apply.
v When you are done setting values, click OK to close the object's property
sheet. The object store administrators whose names were added to the
first marking above will be able to run Enterprise Manager but will not
be able to see the documents.
Tip: If you created a single marking and if you set the default value as
described above, you will not have to explicitly set the value as described in
this step.
Related information:
Create a marking set
250
Security Extract
You set access rights on workflow queues and rosters using Process Configuration
Console, from the Admin page in Workplace or the Tools menu in Workplace XT.
To use Process Configuration Console, you must be a member of the group defined
by the Access Role PWConfiguration. To make configuration changes to queues
and rosters, you must be a member of the Process Engine Configuration Group.
See Set security levels in Process Configuration Console online help for detailed
instructions.
251
252
Security Extract
Security example
This example describes a business process, analyzes the work performed by
various users, and describes how to create groups, document classes, and folders
to achieve appropriate security.
Imagine a credit card approval process where:
Clerk
A clerk adds new credit card applications to the object store. For each
application, the clerk selects the document class CCAppls and files the new
document in the /NewAppls folder. (The administrator has configured a
subscription to launch a workflow for each new document in the CCAppls
document class.) The workflow routes the application, as an attachment, to
an applications processor.
Applications processor
An applications processor reviews the application and approves it, denies
it, or refers it to the analyst for further review. The decision is noted in the
document properties. Depending on the decision, the workflow (using the
processor's access rights) refiles the application in the appropriate
/Approved, /Denied, or /Pending folder.
Analyst
The analyst investigates all applications filed in the /Pending folder. The
analyst updates the application information as needed, approves or denies
the application, and returns it to the approval representative.
Manager
The manager writes and updates procedures from time to time and
publishes them to the /Procedures folder. The manager spot-checks
processed applications and keeps an eye on the work in the /NewAppls
and /Pending folders.
Everyone
Everyone must be familiar with department procedures.
Analysis
Setup on page 255
Analysis
Analyzing the environment requires several steps.
The analysis requires these steps:
Describe the work
List the operations performed by the various users.
Table of users and typical operations performed by them.
User/Function
Operation Performed
Clerks
253
Operation Performed
Processors
Participate in a workflow
Display credit card applications
Set status (a document property) to
approved, denied, or pending
Move documents from /NewAppls to
/Approved, /Denied, or /Pending folder
Analyst
Participate in a workflow
Display credit card applications
Set status (a document property) to
approved or denied
Manager
Administrator
254
Security Extract
Folder Operations
Users
Clerks
View Properties
Add to Folder
View Properties
Processors
View Properties
Add document to
/Approved, /Denied,
/Pending folders
Processors
Add document to
/ProceduresSource folder
Manager
Publish document to
/Procedures folder
Manager
Display contents of
/NewAppls and /Pending
folders
Manager
Add to Folder
View Properties
Add to Folder
View Properties
Add to Folder
View Properties
Add to Folder
View Properties
Table of document operations performed by users and the access rights required to do
them.
Document Operations
Users
Display applications
Processors
View Properties
Manager
View Content
Analyst
Update application status
(document property)
Processors
Modify Properties
Analyst
Modify Properties
Modify Content
Manager
View Properties
View Content
Modify Properties
Publish
Manager
View Content
Administrator
View Properties
View Content
Setup
Creating LDAP accounts is the first step in this example.
To set up security for the credit card approval process, the administrator will:
1. Create users and groups in the configured authentication provider's directory
service.
To simplify maintenance, create a group for each function, even if only one
person performs the function. You then update the group membership when
job assignments change. For this example, we'll create the following groups:
v CC_ApplsEntry
v CC_Processing
v CC_Analyst
v CC_Manager.
Security example
255
CC_ApplsEntry
View Properties
CC_Processors
Modify Properties
CC_Analyst
Modify Content
CC_Manager
View Properties
CC_ApplsEntry
View Properties
CC_Processors
View Properties
CC_Analyst
View Properties
CC_Manager
Modify Properties
Publish
3. Define the workflow using Process Designer. Define the workflow used by
applications processors and analysts.
Table of access rights to assign to the listed groups for the workflow definition CCAppls
Group
CC_Processors
View Properties
CC_Analyst
View Properties
CC_Manager
View Content
256
Security Extract
Table of access rights to assign to the listed groups for the folder NewAppls
Group
CC_ApplsEntry
Add to Folder
CC_Processors
Add to Folder
CC_Analyst
View Properties
CC_Manager
View Properties
Table of access rights to assign to the listed groups for the folders Approved and Denied
Group
CC_Processors
Add to Folder
CC_Manager
View Properties
Table of access rights to assign to the listed groups for the folder Pending
Group
CC_Processors
Add to Folder
CC_Analyst
View Properties
CC_Manager
View Properties
Table of access rights to assign to the listed groups for the folder ProceduresSource
Group
CC_Manager
Add to Folder
Table of access rights to assign to the listed groups for the folder Procedures
Group
CC_Manager
Add to Folder
View Properties
Optionally, a folder can be the security parent for the contained objects
(subfolder, documents, and custom objects). This requires configuration of the
parent folder and each contained object.
Security example
257
258
Security Extract
259
260
Security Extract
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 grant 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.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
Intellectual Property Licensing
Legal and Intellectual Property Law
IBM Japan, Ltd.
1623-14, Shimotsuruma, Yamato-shi
Kanagawa 242-8502 Japan
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.
261
IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Corporation
J46A/G4
555 Bailey Avenue
San Jose, CA 95141-1003
U.S.A.
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement or any equivalent agreement
between us.
Any performance data contained herein was determined in a controlled
environment. Therefore, the results obtained in other operating environments may
vary significantly. Some measurements may have been made on development-level
systems and there is no guarantee that these measurements will be the same on
generally available systems. Furthermore, some measurements may have been
estimated through extrapolation. Actual results may vary. Users of this document
should verify the applicable data for their specific environment.
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.
All statements regarding IBM's future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
All IBM prices shown are IBM's suggested retail prices, are current and are subject
to change without notice. Dealer prices may vary.
This information is for planning purposes only. The information herein is subject to
change before the products described become available.
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
illustrate programming techniques on various operating platforms. You may copy,
262
Security Extract
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. The sample
programs are provided "AS IS", without warranty of any kind. IBM shall not be
liable for any damages arising out of your use of the sample programs.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of
International Business Machines Corporation in the United States, other countries,
or both. If these and other IBM trademarked terms are marked on their first
occurrence in this information with a trademark symbol ( or ), these symbols
indicate U.S. registered or common law trademarks owned by IBM at the time this
information was published. Such trademarks may also be registered or common
law trademarks in other countries. A current list of IBM trademarks is available on
the Web at http://www.ibm.com/legal/copytrade.shtml (www.ibm.com/legal/
copytrade.shtml).
Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Oracle and/or its affiliates.
Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation in
the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
Linux is a registered trademark of Linus Torvalds in the United States, other
countries, or both. Other company, product, and service names may be trademarks
or service marks of others.
Notices
263
264
Security Extract
Index
Special characters
.NET client 53
#AUTHENTICATED_USERS
#CREATOR-OWNER 212
211
A
access rights 71, 87
annotation 98
class 91
compound document 95
custom objects 99
deny access to document 248
document 93
document entry template 103
document lifecycle 97
Enterprise Manager UI 220
event and subscription 100
folder 92
for document operations 109
mapped to permissions 243
object stores 90
overview 63
publishing 100
script 100
search 102
workflow 99
workflow roster and queue 103
Workplace and Workplace XT security
editor 221
ACE security levels 68
ACE source 67
ACE type and order of evaluation 68
activate new users and groups 230
Active Directory Lightweight Directory
Services 160
AD LDS 160
ADAM 160
admin account Workplace XT 191
admin accountApplication Engine 191
Allow ACE 68
annotation access rights 98
applets 219
Application Engine admin account 191
Application Engine deploy account 180
Application Engine installation
account 178
application server
LDAP user account 190
application server accounts 207
application server administrator 207
application server installation
administrator Content Engine 181
application server installation group
Content Engine 181
appserver_admin 207
authentication
AD LDS 160
ADAM 160
CA Directory 129
Copyright IBM Corp. 2006, 2011
authentication (continued)
IBM Tivoli authentication 133
Novell eDirectory 138
Oracle Directory Server Enterprise
Edition 146
Oracle Internet Directory 142
Windows Active Directory 150
B
Bootstrap admin 192
bootstrap administrator
change passsword 233
bootstrap properties 216
browser security settings 70
C
CA Directory 129
directory configuration
properties 131
get and search 133
overview 130
support matrix 130
ce_bootstrap_admin 233
ce_db_user 202, 203, 204
ce_service_user
Active Directory 194
AD LDS 195
CA Directory 199
IBM Tivoli 197
Novell eDirectory 197
OID 198
Oracle Directory Server Enterprise
Edition 196
CFS for IS user 201
classes security 73
Clear Text 225
client connection 70
client session 70
configure multiple 245, 246, 247
content encryption 227
Content Engine application server
installation administrator 181
Content Engine application server
installation group 181
Content Engine directory service
account 193
Content Engine installation account 182,
183
Content Engine instance accounts for DB2
for z/OS 185
Content Engine operating system user
account 182, 184
Content Engine operating system user
account for DB2 for Linux, UNIX and
Windows 184
Content Engine operating system user
account for DB2 for z/OS 185
D
DB2 for Linux, UNIX, and Windows
database user 203
DB2 for z/OS database user 204
Default ACE 67
default security
security 68
Deny ACE 68
deploy account Application Engine 180
digital signing 219
Direct ACE 67
directory service providers
overview 127
document access rights 93
document security 76
E
eForms security 71
email attribute for login 239
encoding 225
encryption 224, 225, 227
Enterprise Manager
security 222
F
failover support
using domain names 155
failover support, Active Directory
using host:port pairs 155
FAQs about security 259
folder
add documents and subfolders 232
configure to be security parent 235
folder security 74
folder security parent
configure 236, 237, 238
folders
root folder 250
265
RC4-HMAC Security 48
realms 245, 246, 247
redirect to SSL 221
Rendition Engine user account
root folder
restrict access to 250
securable objects
security 86
security
database security 70
installing third-party fixes and service
packs 69
users and groups 177
security example
analyze security requirements 253
credit care approval process 253
set up security sequence 255
Security identifier (SID) 63
security inheritance 122
security policies 112
assigning 114
custom objects and folders 117
effects of change 115
overview 113
preserve direct ACE 115
rules of association 116
templates 114
Workplace and Workplace XT 117
security tools 215
security:
users and groups 211, 212
select users and groups 221
session key 70
show or hide security page 221
SID 63
site preferences 221
SQL Server database user 202
SSL 227
storage area security 117
content cache area 121
file storage 118
UNIX 121
Sun Java System Directory Server
configure sorting 166
get and search 149
overview 146
symmetric encryption 225
I
IBM Content Search Services installer
account 189
IBM Content Search Services operating
system account 189
IBM Content Search Services security 70
IBM Enterprise Records search
security 71
IBM Legacy Content Search Engine 70
IBM Legacy Content Search Engine
operating system user 187
IBM Legacy Content Search Engine
security group 188
IBM Legacy Content Search Engine
security user 189
IBM Tivoli authentication
directory configuration
properties 135
get and search 137
overview 133
support matrix 134
IER search security 71
inherit from folder 235
inherit security from folder 236, 237, 238
inheritable depth
configure 243
inheritance
allow or disallow 232
Inherited ACE 67
install 185
install Application Engine 178
install Content Engine 183
install Rendition Engine 201
install Workplace XT 178
installation account Content Engine 182
K
K2 search security 70
k2_os_user 187
k2_sec_group 188
k2_sec_user 189
Kerberos 53
Kerberos on the client 50
M
Markings 79
Add, Remove, Use 81
administration 85
Allow and Deny 83
constraint mask 82
Copy to Reservation 82
hierarchical and non-hierarchical
overview 80
Master Key
resetting 226
266
Security Extract
84
object security
modify 250
object store
add new users 251
object store administrator 194
add or remove 231
object store security 72
object_store_admin 194
operating system accounts 177
Oracle database user 203
Oracle Directory Server Enterprise
Edition
configure sorting 166
directory configuration
properties 148
support matrix 146
Oracle Internet Directory
directory configuration
properties 143
get and search 145
overview 142
support matrix 142
other object security 78
ownership 105, 251
P
P8 domain root security 72
parent folder 236, 237, 238
passwords 225
pe_admin_group 200
pe_config_group 200
pe_service_user 199
Process Engine administrator group 200
Process Engine configuration group 200
Process Engine database user for DB2 for
Linux, UNIX and Windows 205
Process Engine database user for DB2 for
z/OS 187, 205
Process Engine database user for
Oracle 206
Process Engine database user for SQL
Server 207
Process Engine installation account 185
Process Engine installer account 186
Process Engine region administrator 200
Process Engine service user 199
property modification access 107
PSConsole 209
PSDesigner 209
PWAdministrator 210
PWConfiguration 210
PWDesigner 211
PWDiagram 211
201
T
take ownership 251
target access required
Template ACE 67
TLS 227
121
U
UPN attribute for login 239
user credentials 225
users and groups
add to a class 229, 230
V
Verisign 219
Verity search security
70
W
Windows Active Directory
directory configuration
properties 152
failover support 155
get and search 158
realm configuration 154
support matrix 150
Windows Active Directory Lightweight
Directory Services
directory configuration
properties 163
get and search 165
overview 160
support matrix 162
workflow queues and rosters 251
Workplace XT admin account 191
Workplace XT installation account 178
Index
267
268
Security Extract
GC19-3234-03