LDAP Authentication For IBM DS8000 Systems
LDAP Authentication For IBM DS8000 Systems
Bjoern Wesselbaum
Claudio Di Celio
Bert Dufrasne
Connie Riggins
Robert Tondini
Alex Warmuth
Redpaper
IBM Redbooks
March 2021
REDP-5460-01
Note: Before using this information and the product it supports, read the information in “Notices” on
page vii.
This edition applies to IBM DS8900F storage systems that are available with IBM DS8000 Licensed Machine
Code (LMC) 7.9.10 (bundle version 89.10.xx.x), referred to as Release 9.1 or later.
© Copyright International Business Machines Corporation 2018, 2021. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Chapter 8. Migrating from IBM Copy Services Manager based LDAP authentication to
native LDAP authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Appendix C. Exporting secure certificates by using the Google Chrome and Microsoft
Edge web browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Exporting a certificate on Microsoft Edge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Exporting a certificate on Google Chrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Contents v
Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
This information was developed for products and services offered in the US. This material might be available
from IBM in other languages. However, you may be required to own a copy of the product or product version in
that language in order to access it.
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, MD-NC119, Armonk, NY 10504-1785, US
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 websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without
incurring any obligation to you.
The performance data and client examples cited are presented for illustrative purposes only. Actual
performance results may vary depending on specific configurations and operating conditions.
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.
Statements regarding IBM’s future direction or intent are subject to change or withdrawal without notice, and
represent goals and objectives only.
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 actual people or business enterprises 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, 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.
The following terms are trademarks or registered trademarks of International Business Machines Corporation,
and might also be trademarks or registered trademarks in other countries.
DS8000® IBM Z® Tivoli®
FlashCopy® Insight® WebSphere®
IBM® RACF® z/OS®
IBM Security™ Redbooks®
IBM Spectrum® Redbooks (logo) ®
The registered trademark Linux® is used pursuant to a sublicense from the Linux Foundation, the exclusive
licensee of Linus Torvalds, owner of the mark on a worldwide basis.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
The IBM® DS8000® series includes the option to replace the locally based user ID and
password authentication with a centralized directory-based approach.
This IBM Redpaper publication helps DS8000 storage administrators understand the concepts
and benefits of a centralized directory. It provides the information that is required for
implementing a DS8000 authentication mechanism that is based on the Lightweight Directory
Access Protocol (LDAP).
Starting with the DS8000 Release 9.1 code, a simpler, native LDAP authentication method is
supported along with the former implementation that relies on IBM Copy Services Manager
(CSM) acting as a proxy between the DS8000 and external LDAP servers.
The examples and operations that are shown in this paper refer to the DS8000 R9.1 SP1
code release bundle 89.11.33.0.
Authors
This paper was produced by a team of specialists from around the world:
Bjoern Wesselbaum is a certified IT Specialist in Germany who joined the IBM Storage
Division in 1998. He has worked in different positions for IBM Storage Systems within EMEA
Advanced Technical Support, Remote Technical Support, and DS8000 Development at the
EMEA Storage Competence Center in Kelsterbach, Germany. With his DS8000 and IT
expertise, he supports clients in various pre- and post-sale projects, and teaches
client-tailored workshops about the DS8000 system. Bjoern holds a degree in information
technology / electrical engineering from the Technical University of Luebeck, Germany.
Claudio Di Celio has been with IBM Brazil in Rio de Janeiro since May 2003 working in the
Mainframe area as an L1 certified IT specialist. His focus is on DS8000, IBM TS7700, and
SAN systems for designing replication solutions for high availability (HA) at local and remote
distances. Before joining IBM, Claudio worked for 22 years in IT for a telecommunications
company. He holds degrees in computer science from FIAA University in Brazil, and has more
than 40 years if experience in the IT area.
Bert Dufrasne is an IBM Certified IT Specialist and Project Leader for IBM System Storage
disk products at the ITSO San Jose Center. He has worked at IBM in various IT areas. He has
written many IBM Redbooks® publications and has developed and taught technical
workshops. Before joining the ITSO, he worked for IBM Global Services as an Application
Architect. He holds a master’s degree in electrical engineering.
Connie Riggins is a DS8000 Copy Services and CSM subject matter expert (SME) with the
DS8000 Product Engineering group. She started working at IBM in 2015. Before joining IBM,
starting in 1991, Connie worked at Amdahl Corp. as a systems engineer and later at Softek
Storage Solutions as Product Manager of IBM Transparent Data Migration Facility for
IBM z/OS®.
Special thanks to the following people for their contributions to this project:
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our papers to be as helpful as possible. Send us your comments about this paper or
other IBM Redbooks publications in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an email to:
[email protected]
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface xi
xii LDAP Authentication for IBM DS8000 Systems
1
To simplify the user ID management and comply with industry or company internal security
regulations, the DS8000 system can access a centralized directory service to perform user
authentication by using the Lightweight Directory Access Protocol (LDAP).
Starting with Licensed Machine Code (LMC) 7.9.10 (bundle version 89.10.92.0), referred to
as Release 9.1, the DS8900 system includes a native LDAP authentication function in
addition to the previous implementation by using an IBM Copy Services Manager (CSM)
LDAP proxy.
With the native LDAP implementation, you can directly configure the remote user
authentication with the DS Storage Manager GUI.
The remote authentication method that was previously supported by various models of the
DS8000 family uses Storage Authentication Service (SAS) and requires one or two CSM
instances. In this former implementation based on CSM, the DS8000 system relies on the
CSM authentication components to authenticate DS8000 users against the configured LDAP
directory server. This method is still supported, and is referred to in this paper as the LDAP
proxy.
The CSM LDAP proxy method requires at least one CSM instance that is running, and is
configured for LDAP authentication. For redundancy purpose, deploy two operational CSM
instances, with one instance as active and the other one as a standby CSM server.
Figure 1-1 on page 3 shows a typical remote authentication setup that uses the CSM server
that is provided with the DS8000 HMC. The embedded CSM on HMC is available starting with
the DS8000 LMC bundle 88.10.x for DS8880 and on all DS8900 systems. For redundancy, a
second CSM instance is used. This second instance can be also an embedded CSM instance
on another DS8880 or DS8900 system or a stand-alone instance. All supported DS8000
systems before the DS8880 system require CSM instances to be installed on separate
servers.
When using the LDAP authentication through CSM, the DS8000 user authenticates through
the DS Storage Manager GUI or DS Command-Line Interface (DS CLI). The authentication
request is sent to the Enterprise Storage Network Interface (ESSNI) server that is running on
the HMC.
To authenticate the user, the ESSNI server connects to the CSM authentication module.
Then, the CSM authentication module converts the request into LDAP and queries and
authenticates against the configured directory server.
From a high level, the configuration requires the following two actions:
Configure the TLS secured SAS connection between the DS8000 system and the CSM
server.
Various manual steps are required to create a certificate truststore that is used to ensure
an encrypted and secured connection.
Configure LDAP on CSM.
Various manual steps are required to ensure that the communication between the
directory server and the CSM server is secure.
For more information, see Chapter 9, “Implementing LDAP through IBM Copy Services
Manager” on page 99.
Figure 1-2 shows the authentication mechanism for the DS8900 native LDAP authentication.
The DS8900 ESSNI server on the HMC can now directly authenticate the user against the
directory server. The ESSNI Server uses either the LDAP or LDAPS (TLS secured LDAP)
protocol to communicate with the directory server.
This native implementation is simpler and preferred, when possible, over the CSM based
implementation.
Figure 1-2 DS8900 remote authentication environment that uses native LDAP authentication
When you want to set up remote authentication, follow the wizard guided setup in the DS GUI
or issue a set of DS CLI commands. The setup through the wizard does not require the
creation of a truststore file. All relevant information to set up a secure LDAP (LDAPs) to the
directory server can be specified through the wizard.
To establish a secure connection, the DS8900 system needs the public key of the directory
server to encrypt the authentication request. To prevent man-in-the-middle attacks, the
DS8900 system stores the certificate or certificate chain on both of its HMCs.
Starting with the DS8900 LMC 89.10.92.0, you can choose between direct authentication or
using CSM as a proxy.
For new installations, it is a best practice to use the native LDAP authentication described in
1.3, “Remote authentication by using the native implementation” on page 4. The setup and
cloning of the configuration to other DS8900 systems are easy. You should adjust your remote
authentication strategy for your new DS8900 systems toward native remote authentication. If
you want to migrate from the CSM based authentication to the native LDAP implementation,
see Chapter 8, “Migrating from IBM Copy Services Manager based LDAP authentication to
native LDAP authentication” on page 89.
For older DS8000 models or if your DS8900 system is not at Release 9.1, you must use
remote authentication through CSM, as described in 1.2, “Storage Authentication Service by
using CSM as an LDAP proxy” on page 2.
In computer terms, a directory is a specialized database, also called a data repository, that
stores typed and ordered information about objects. Directories allow users or applications to
find resources that have the characteristics that are necessary for a particular task. A
directory can also be used to store user IDs, passwords, and other credentials of system
users. For example, the World Wide Web cannot function without a directory of available
websites. This directory is what is referred to as a Domain Name Service or Domain Name
System (DNS). The DNS allows users to search the web for servers without any knowledge of
the network address, hostname, or IP address.
A directory is often described as a database, but a specialized one that has characteristics
that set it apart from general-purpose relational databases. One special characteristic of
directories is that they are accessed (read or searched) more often than they are updated
(written). Hundreds of people might look up an individual’s phone number or thousands of
print clients might look up the characteristics of a particular printer, but the phone number or
printer characteristics rarely change.
Because the number of different networks and applications has grown, the number of
specialized directories of information has also grown. This process results in islands of
information that are difficult to share and manage. The ability to maintain and access all of
this information in a consistent and controlled manner can provide a focal point for integrating
a distributed environment into a consistent and easily accessed system.
LDAP is an open industry standard that evolved to meet these needs. LDAP defines a
standard method to access and update information in a directory. LDAP gained wide
acceptance as the directory access method of the internet, so it is widely used within
corporate intranets.
LDAP defines a communication protocol that defines the transport and format of messages
that are used by a client to access data in an X.500-like directory. LDAP does not define the
directory service itself. When people talk about “the LDAP directory,” they are referring to the
information that is stored and can be retrieved by the LDAP protocol.
All LDAP servers share many basic characteristics because they are based on the Request
for Comment (RFC) industry standard. However, because of implementation differences, they
are not all compatible with each other when a standard is not defined. For more information
about RFCs, particularly regarding LDAP RFC 4510-4533, see the Requests for Comments
page at the IETF.org website.
Examples for LDAP servers implementations or products include the following ones:
IBM Security™ Directory Server.
Microsoft Active Directory (AD).
OpenLDAP.
The IBM z/OS Resource Access Control Facility (IBM RACF®) provides an LDAP
interface.
Although there are many other LDAP servers that are available, this paper mostly addresses
the ones that are in the above list.
In Example 2-1 on page 9, you can see that an LDAP entry contains many attribute-value
pairs:
dn: The distinguished name
The DN of the directory entry. The DN is unique in the directory tree structure. The DN is
assembled by multiple Relative Distinguished Name (RDN) components. An RDN can
contain one or multiple attribute-value pairs.
The components of the DN string are defined by the setup of the directory server, and
consist of the following items:
– uid1
Represents the user ID. The uid contains the computer login names for an object.
– ou1
Represents the organizationalUnitName. An organizationalUnit is the piece of an
entry that represents a piece of an organization.
– dc1
Represents the domainComponent. It is one component of the DNS domain name.
objectClass: A collection of one or more attributes
The collection of attributes describes one or multiple characteristics of an object. An object
class contains the required and optional attributes. Also, object classes can be inherited
by other object classes. The object classes are described in various RFCs.
– objectClass: person1
Represents a human being. It must contain the CommonName (cn) and Surname (sn),
and it might contain the userPassword.
– objectClass: organizationalPerson1
Represents the base entry that describes a person in relation to an organization.
– objectClass: inetOrgPerson2
Is inherited by the objectClass organizationalPerson and extends the class for internet
and intranet directory services requirements.
– objectClass: posixAccount3
Defines user attributes to map directory entries to UNIX systems.
2.2.2 Groups
Section 2.2.1, “Directory entry” on page 9 shows an example of a directory entry for a single
user.
Managing authentication at a user level only level is challenging. To make management less
granular, you can group users with similar roles or functions into a group.
1
https://tools.ietf.org/html/rfc4519
2
https://tools.ietf.org/html/rfc2798
3 https://tools.ietf.org/html/rfc2307
There are different object classes for groups. RFC519 specifies the object classes
groupOfName and groupOfUniqueNames. But, there are also exceptions, such as in
Microsoft AD, where the object class is group. The members of a group are represented with
the attribute member or uniqueMember.
When you run an LDAP query against the group, you can determine the members of this
group. However, when you want to find out to which group or groups a user belongs, it can
become more challenging:
For example, Microsoft AD does provide the attribute memberOf in each user directory
entry, which indicates of which groups the user is a member.
For OpenLDAP, you must enable an overlay that is called memberOf . The overlay queries
for that specific attribute4, but the attribute itself is not visible when you query the user
itself.
4 https://www.openldap.org/doc/admin24/overlays.html
When you query the members of the group DS8k_Administrator, the result returns the DN for
Piet Pietersen and Erika Mustermann and the DN for the group
DS8k_Admin_Development_Environment, but you do not get the DN for Jane Bloggs and
John Doe. Also, when you query the memberOf attribute from Jane Bloggs and John Doe, the
result is DS8k_Admin_Development_Environment but not DS8k_Administrator.
However, some LDAP servers provide an extension that allows the query of all members from
the group, including all nested groups. For example, the IBM Security Directory Server and
Microsoft AD provide such a server-side query.
In the real world, the DIT is much more complex and can contain other entities, such as PCs
and printers.
With the DS8000, you can specify the user and the group search base. By specifying the
search base, you limit the area that you search.
In the blue frame in Figure 2-3, you can see the result that is returned from searching the DIT
when limiting the group search base to group search base
ou=Groups,dc=ds8ksme,dc=ibm,dc=com.
Both search base and filters can be used to reduce the search scope: The search base
reduces the scope in the DIT height, and the filters reduce the width of the scope in the DIT.
You can define a filter for exact matches, substrings, greater or equal, less or equal, present,
and approximate match for any attribute in the directory entry. You also can use Boolean
operations like AND and OR.
You can also expand the filter to have multiple filters that are extended by Boolean operations.
Typically, you find the expression {0} as a placeholder in filters. When the LDAP directory is
queried, this placeholder is replaced by the user ID or LDAP group name.
Example 2-3 shows an illustration of the LDAP filter for the username in Microsoft AD. This
filter is a suggestion that is pre-filled when you configure Microsoft AD on a DS8000 system.
The expected result of this usernamefilter is the directory record of the user that is trying to
authenticate. The filter must be an exact match of the attribute sAMAccountName6 and the user
ID that is entered into the Storage Manager GUI or DS Command-Line Interface (DS CLI).
Also, the record must hold the attributes of the objectcategory user or objectclass user.
5
https://tools.ietf.org/search/rfc4515
6 sAMAccountName is the attribute that is used in Microsoft AD as the logon name.
Going back to the user John Doe in Example 2-1 on page 9, to allow the direct bind, you must
look at the user DN of John.
Now, you must change John Doe’s DN and replace his user ID value with the placeholder {0}
or {USERNAME} so that it can be used later for the direct bind.
When you want to map LDAP groups, you must account for some additional considerations.
In this scenario, you must verify whether the authenticating user is also a member of a
specific group. This check is usually done by the application in the background. There are
different methods to accomplish this task:
You can do a search to list the users and configured groups for validating the membership
of the user.
You can run a compare operation to check whether a given group has a specific member.
In some LDAP environments, users might not be allowed to search the directory or even their
own group, or the response size is limited by the server. In this case, a ldapcompare operation
must be performed. Because an compare operation compares only specific values and
returns a limited reply like true or false or an error message, you must configure a DN
placeholder for the LDAP groups.
To configure the authentication for users that are members of a mapped group, you must
configure a group DN placeholder in addition to the user DN. To do so, go back to the
administrator group that is shown in Example 2-6.
The password of the admin and secadmin users must be changed on first login to make these
users operational. The DS GUI forces you to change the password when you log in for the
first time.
If you try to log in for the first time by using a DS Command-Line Interface (DS CLI) client
instead, the login with the default password is successful, but you cannot run any other
command until you change the password. To change the password, use the chuser command
that is shown in Example 3-1. This example is for the admin user ID and the new password is
passw0rd.
Use the same chuser command to change the default password for the secadmin user ID.
Whenever a new user is added, an initial password is assigned by the storage or security
administrator.
At the first signon of any newly added user ID, the default/initial password must be changed.
The user ID is locked if an invalid password is entered multiple times, that is, if the number of
attempts is more than the limit that is defined by the administrator as part of the security
settings.
The password for each user account must adhere to the following rules:
Must be at least the minimum length that is set by an administrator and no longer than
64 characters.
Must contain at least two types of characters from the three groups: alphabetic, numeric,
and symbols.
Allowable characters are: a-z, A-Z, 0-9, and the symbols !, @, #, $, %, &, *,(, and ).
Cannot contain the user ID of the user.
Cannot be a previous password.
General password settings include the time in days after which passwords expire and a
number that identifies the number of failed logins that are allowed.
To discover all the DS8000 predefined roles, go to the DS GUI main menu and select
Access → Roles, as shown in Figure 3-1.
You can see for each user role how many user roles are local (basic) and remote (LDAP) user
mappings.
For more information about each user role, select a role and then click Actions. As shown in
Figure 3-3, you can modify remote mappings, check the actual permissions, or view the
overall properties of a user role.
Predefined user roles cannot be deleted, and the roles permissions cannot be modified. If you
need a user role with specific permissions (for example, a mix of two or more predefined
roles), then you can create customized user role, as described in 3.2.1, “Creating a
customized user role by using the DS GUI” on page 27.
Figure 3-4 on page 21 shows permissions for the Administrator user role. Expand each
section to get more information about the permissions.
For a more detailed authorization level description for each associated predefined user role,
see Table 3-1.
Administrator This user role has the highest level of authority. It allows a user to add or
remove user accounts. This role has access (view, create, and delete) to all
service functions and DS8000 resources. However, this user role cannot
initiate recovery key operations, which are used for data at rest encryption.
Users in this role may not be assigned to the Security administrator and IBM
Service roles.
Security This user role allows users to initiate recovery key operations and add other
administrator users to this role. Users in this role may not be assigned to any other role, and
users in any other role may not be assigned to this role.
Logical operator This role has access (view, create, and delete) to resources that relate to
logical volumes, hosts, host ports, logical subsystems, and volume groups,
excluding security functions.
Monitor This role has access to all read-only, nonsecurity service functions and all
DS8000 resources.
Physical operator This user role allows access to resources that are related to physical
configuration, including storage complexes, storage units, storage images,
management consoles, arrays, ranks, and extent pools. The physical operator
role does not have access to security functions.
Copy Services This role has access to all Copy Services service functions and resources,
operator excluding security functions.
Logical operator and This role provides the authority of both the logical operator and Copy Services
Copy Services operator.
operator
IBM engineering This user role is typically assigned to IBM support personnel that perform all
service functions and other functions that might be needed. This role does not
have access to the logical configuration or data on the storage system.
IBM service This user role is typically assigned to IBM support personnel that service the
hardware (install or repair) and update firmware. This role does not have
access to the logical configuration or data on the storage system. Users in this
role cannot be assigned to any other role, and users in any other role cannot
be assigned to this role.
Only users with the Administrator and Security administrator roles can add, remove, or modify
users. However, a user with the Administrator role can manage users in any role except users
with the Security administrator role. Therefore, only users with the Security administrator role
can manage users with the Security administrator role, and they cannot create or modify a
user in any other role.
Note: Users with the Security administrator role cannot be assigned to any other user role,
and users in any other user role cannot be assigned to the Security administrator role. This
situation is applicable to both basic or remote (LDAP) authentication policies.
Figure 3-5 Accessing the user management window by using the DS GUI
3. To create a user, in the Users window, click Add User (see Figure 3-6).
After the required role is selected, provide the temporary password as based on
predefined password rules and click Add to continue (Figure 3-8).
After the user is created, you can modify it by selecting the user ID and selecting the required
option from the Actions drop-down menu. As shown in Figure 3-10 on page 25, you can do
the following actions:
Map a new role if required (only one role at a time can be assigned when you use the DS
GUI).
Reset the password if the user lost it or if it was compromised.
Forcefully disconnect an already connected and active user.
Remove a user.
Check the user connection details, which display the application type (such as IBM Copy
Services Manager (CSM) or IBM Spectrum® Control) and the server TCP/IP address from
where the user is connected.
View user properties.
Note: With the IBM service and IBM engineering roles, there is the Modify Access
Settings option, which you can use to restrict IBM support from accessing your DS8000
system through the DS GUI and DS CLI systems remotely (they would be accessible only
locally from the DS8000 HMC). Alternatively, you can allow for both local and remote DS
GUI and DS CLI access for IBM support users.
The option for the local DS GUI and DS CLI access does not impact IBM support’s ability
to access remotely the DS8000 HMC by using Assist on Site (AOS) for problem
determination and “business as usual” support activities.
Note: Use DS CLI commands for user management when you need to assign a specific
user resource scope.
The user resource scope is matched to one or more resource group IDs that are assigned
to resource groups. If the resource group ID of a resource group matches the user
resource scope, the user is authorized to issue Copy Services requests to a logical
volume, LSS, or LCU that is assigned to the resource group.
Resource groups provide an enhanced security capability that supports the hosting of
multiple customers with Copy Services requirements that is equally suitable for a single
client with requirements to isolate the data of multiple operating system environments,
such as IBM Z, IBM i, and other open systems platforms.
For more information about user resource scope and groups, see DS8000 Copy Services,
SG24-8367.
In Example 3-2, the mkuser command creates a user with the name mynewuser that is
assigned to the Physical operator, Logical operator and Copy operator user group roles.
Unlike the DS GUI, where only one user role can be assigned to each new user, you can use
the DS CLI mkuser command to assign more than one role (group parameter).
After the user is successfully created, run the lsuser -l command, as shown in
Example 3-3. The output lists all users with the associated access authority levels.
You can get more information about each user by running the showuser command. As shown
in Example 3-4, mynewuser is the newly created user ID, and the command output provides
more information about this user, such as DaysToExpire = 9999 (it means that the password
expiration function is disabled).
The DS8000 storage administrator can create custom user roles with a fully customized set of
permissions by using the DS GUI. This set of permissions helps to ensure that the
authorization level of each user on the system exactly matches their job role in the company,
making the system more robust against internal attacks or mistakes.
Note: Only users with the Administrator and Security administrator roles have the authority
to create a customized role.
The only way to create a customized user role is by using the DS GUI.
The DS CLI can only list all user roles that are defined on a DS8000 system, as shown in
Example 3-5, which shows a list of all predefined user roles.
4. Provide a meaningful name for this user role, and from the Select Role drop-down menu,
select the role that is like the new customized role that you are about to create. As shown
in our example in Figure 3-13 on page 29, we are going to create a storage administrator
role that will have permission to create and modify only IBM Z CKD volumes. Therefore,
the Administrator role is selected because most of the permissions remain the same.
Click Apply to copy all the default Administrator permissions.
5. Now, you can modify the default permissions according to the new customized user role
requirements. As shown in Figure 3-14, the Open Systems Volumes and IBM i Volumes
and LSSs permissions are clear, and all other permissions remained unchanged.
Figure 3-14 Modifying the permissions according to the new customized user role requirements
The new customized role is now created and listed with the other predefined authorization
roles.
To verify all permissions for this newly created user role, select the user role, click the
Actions drop-down menu, and click Permissions (see Figure 3-16).
Figure 3-16 Verifying the permissions for the newly created user role
Furthermore, you can modify remote mappings, or delete or display user role properties.
In an environment with two or more DS8000 systems, when defining and activating a new
remote authentication policy on one DS8000 system (either by using Microsoft Active
Directory (AD), open LDAP, or IBM Resource Access Control Facility (RACF)), there is an
option to export a defined authentication policy and import it into the other DS8000 systems,
as described in 4.4, “Exporting and importing the configuration” on page 54.
The exported remote authentication policy is a compressed file that contains all the LDAP
definitions, including users and user groups mapping to the roles that are defined in the
DS8000 system. The predefined users roles are identical in each DS8000 system, but the
customized user roles must be manually created on each DS8000 system.
Even if you import the remote authentication policy to the target DS8000 system that does not
have customized user roles that are identical to the source DS8000 system, the import will be
successful. However, you must create an identical customized user role on the target DS8000
system and manually map it to the LDAP user group.
Therefore, a best practice is to create all customized user roles on each target DS8000
system before importing the new remote authentication policy.
However, if a custom role is not yet defined in the DS8000 system, importing the remote
policy creates a custom role with monitoring authority. If an authority different than monitoring
is required, the storage administrator must change it manually.
The DS8000 storage administrator should plan the DS8000 user management with the LDAP
administrator.
This administrator user ID is the only one that can disable remote authentication whenever
you must do so. Therefore, you must plan carefully who should be responsible for it.
Therefore, rather than using the security recovery utility tool, use the DS CLI chuser
command with the pol parameter, as shown in Example 3-6.
If the local administrator user ID is accidentally locked, you can unlock it (reset its password)
by logging in to the DS8000 DS CLI with another LDAP user ID with the Administrator role
and running the chuser command, as shown in the Example 3-6. The pol parameter is
mandatory and should include the name of a Basic policy type. In our example, the Basic
policy is initialPolicy. You can use the lsauthpol command to list all authentication policies
that are defined in your DS8000 system.
Important: The remote connection to the DS8000 HMC WUI is not supported for admin
password reset. You must be locally (on site) logged in to the DS8000 HMC WUI to reset
the admin password by using the security recovery utility tool.
In a situation where you cannot access the data center (due to logistics or it is
time-consuming process), you can contact IBM support and open a support ticket for
resetting the admin password. IBM support can do it remotely by using AOS or the Remote
Support Center (RSC) connection.
2. In the DS8000 WUI login window, enter the credentials for the default user ID customer
and the initial default password cust0mer (see Figure 3-18).
4. In the Storage Server HMC Tasks section, click Start/Stop ESSNI, as shown in
Figure 3-20.
If your DS8000 system has enabled data at rest encryption and you created a recovery key
during the initial setup, then you must use a user with the Security administrator role. This
recovery key is an emergency key that is used only if the defined encryption key servers are
temporarily or even permanently not accessible (planned or unplanned outage) during a
DS8000 power-on cycle.
To prevent one person from gaining access to the data, the handling of a recovery key
requires two people (separate roles):
Security administrator user ID
Storage administrator user ID
For more information about encryption on a DS8000 system, see IBM DS8000 Encryption for
data at rest, Transparent Cloud Tiering, and Endpoint Security (DS8000 Release 9.0),
REDP-4500.
At a bare minimum, a storage administrator user group should be created in an LDAP server.
Alternatively, you can create as many user groups as you have defined user roles in each
DS8000 (predefined and customized user roles).
Table 3-2 includes a list of LDAP user groups that are commonly used for DS8000
authentication.
Table 3-2 LDAP groups that are used for DS8000 authentication
User/User group Comments Service or user ID
Copy Services Managing DS8000 Copy Services (that is, all Service ID for
disk replication topologies, IBM FlashCopy®, CSM
and Safeguarded copy). User ID for Copy
CSM to connect to a DS8000 system. Services
Users in this group cannot be defined in the operators
Security administrator and IBM Service user
groups.
To illustrate the configuration, we use Microsoft Active Directory (AD) as the directory service
in our example, but the configuration flow remains the same for other LDAP products.
Important: The configuration wizard works with the authentication policy GUILDAPPolicy
when listing the policies in DS Command-Line Interface (DS CLI) or it uses the active
policy if you selected to modify the active policy.
The Remote Authentication window opens. Start the wizard by clicking Configure Remote
authentication, as shown in Figure 4-2. The Configure Remote Authentication button
appears only when the DS8900 system is configured for the local authentication mode.
The Welcome window opens, as shown in Figure 4-3 on page 41. This window lists the
prerequisites for enabling remote authentication. Verify that you satisfy all the prerequisites,
and then click Next.
Figure 4-4 LDAP remote configuration wizard: Select the configuration task
For redundancy proposes, configure two LDAP servers. For added security, select the TLS
1.2 checkbox for encrypting LDAP traffic. If you do not select TLS 1.2, the LDAP network
traffic remains non-encrypted.
Make sure that the correct port is specified. The default port for a non-encryption connection
is 389 and 636 for an encrypted connection. In any case, check with your LDAP administrator
about which port number to use.
After you verified that the certificate details are okay, click Accept.
Figure 4-7 LDAP remote configuration wizard: Show the retrieved certificates
The dialog that is shown in Figure 4-8 on page 45 appears. You must supply the truststore file
name and password, and then click Accept. For more information about how to create a
truststore file, see 5.2, “Creating a truststore for a secure LDAP connection” on page 60.
Figure 4-9 LDAP remote configuration wizard: LDAP Server authentication methods
Simple authentication
With simple authentication, you must specify a functional user ID that is known as the bind
user. Usually, you do specify the user ID in the full Distinguished Name (DN). For a
Microsoft AD environment, you can specify the UPN or userPrincipalName. You also need
to provide the password for that user ID.
When selecting Direct authentication, specifying the Group DN placeholder is optional. The
Group DN placeholder is required when an LDAP user is not allowed to perform a search
operation on the directory server. By specifying the Group DN placeholder, the DS8900
performs a compare operation to validate a group membership for the authenticating user. If
no Group DN placeholder is specified, an LDAP search operation is performed.
The values for the Group membership attribute, the Username filter, and the Groupname filter
are populated with a preset value that fits most of the LDAP Server types that are specified in
4.1.3, “LDAP server type” on page 42. Those values can be adjusted to comply with any
specifics of your environment.
If you do not want to use filters, clear the Filters checkbox. Different entry fields, as shown in
Figure 4-12, then appear. You must provide the User name attribute and the Group name
attribute.
Figure 4-12 LDAP remote configuration wizard: Configure Lookup Method with filter disabled
We strongly advise that you provide a local administrator as a fail-back solution if the LDAP
environment becomes unavailable.
The storage administrator should work with the directory server administrator to configure or
identify the groups to be mapped. These groups might be existing or new ones.
Use the + or - icons to add or delete a mapping definition, as shown in Figure 4-14 on
page 49. Ensure that the spelling of the group or username exactly matches the definitions on
the LDAP server. The matching is case-sensitive.
Note: The setauthpol command is not supported in the embedded DS CLI client.
With this verification, the DS8000 system ensures that a remote user is mapped to an
Administrator role and can access the DS8000 system after the remote authentication policy
is active.
Clicking Next opens a summary window, which is shown in Figure 4-16. Review your choices
(you might need to scroll down to see all the configured options). If everything looks fine, click
Finish. Otherwise, click Back to correct any information.
Now, you can click Finish because you completed all the necessary steps. If any information
is incorrect, you receive an error message.
Figure 4-17 on page 51 illustrates the error for a wrong password that is supplied for the Bind
user. You should go back and review your configuration.
If all the correct values are supplied, the configuration completes successfully, and you get a
Task Completed status with a green check mark, as shown in Figure 4-18.
Now, you can log in to the DS8900 system by using the user that you defined in the LDAP
server. In our example in Figure 4-20, user jdoe logs in.
Figure 4-22 Modifying the users and group mapping in an active remote authentication policy
You can click the ⊕ icon to add users or groups. To modify the role assignment or remove a
user or group, use the Actions drop-down menu.
Note: Disabling the remote authentication policy activates local authentication with the
policy name initalPolicy and all the configured user IDs.
When you click Disable in the Remote Authentication window, you are prompted to enter the
login details of a local user with the Administrator role, as shown in Figure 4-23. This
procedure ensures that you are able to log in as an administrator after local authentication is
activated.
The configuration can be downloaded by using the GUI and stored on your local system. You
also can automate the download of the configuration by using DS CLI, as explained in 5.5,
“Managing remote authentication policies by using the DS CLI” on page 67.
The compressed file contains a truststore file with the LDAP servers public certificates and a
JSON file describing the LDAP configuration.
While starting the remote authentication configuration wizard, select Import Configuration,
as shown in Figure 4-24.
Figure 4-25 LDAP remote configuration wizard: Specify the config file and bind password
Click Next.
To activate the imported configuration, you must supply a user ID that is mapped to the
administrator role to ensure that you can log in as n administrator after activating this policy,
as shown in Figure 4-26.
When you click Finish in the Summary window of the configuration wizard, a task dialog
appears, as shown in Figure 4-28, where you can monitor the activation of the import task.
After the task is finished, the policy becomes active and you are logged out.
Figure 4-28 LDAP remote configuration wizard: Task Monitor for a policy import
This chapter also describes where the GUI and DS CLI configuration differ from each other
and the additional methods that are provided by the DS CLI to manage more than one remote
authentication configuration.
Note: We explain how to implement and manage LDAP authentication with numerous
examples. However, it is beyond the scope of this publication to describe all available
commands and options. For more information, see the DS CLI inline help or go to at
IBM Knowledge Center.
Here are the main functional differences between the DS GUI and DS CLI:
LDAP server certificates cannot be retrieved through the DS CLI directly. You must create
a keystore file and provide it with the definition of the LDAP server through the DS CLI.
You can configure and manage multiple remote authentication policies (LDAP
configurations):
– You can have one active policy and multiple inactive policies.
– You can duplicate and rename LDAP policies by using the DS CLI.
– DS CLI supports importing and exporting remote authentication policies.
– You can import and export policies that you created with the DS CLI in the DS8900F
GUI and vice versa.
Note: If you do not have access to the tools that are used in the example, there are other
methods to retrieve SSL certificates from a server and package them into a keystore file.
Refer to the security administrators in your organization to find a suitable method.
The resulting text file contains all the certificates from the certificate chain of the LDAP server.
Use the command that is shown in Example 5-2 to extract all the certificates from the text file
and store them in individual files that are distinguished by numbers. The parameters that are
in bold must be adapted to your configuration:
out=”cert file prefix” The stem of the file names for the resulting individual certificate
files.
< input_file The name of the text file containing the certificates, as
generated in Example 5-1.
In our example, the text file contains two certificates, as you can see in the second command
in Example 5-2, which lists the resulting certificate files.
Example 5-3 show the keytool command that you use to create the JKS file that you use to
establish trust for your LDAP server in your remote authentication policy. Again, you must
adjust the parameters that are in bold for your configuration:
-keystore The name of the keystore file that you want to create.
-storepass A password for your new keystore file. You need this password later
whenever you want to use (list or modify) the keystore.
-alias An alias (name) for the entry you are adding to your keystore.
-file The name of the certificate file you want to add to the keystore.
Continue until you added all the certificates for all the LDAP servers that you are planning to
add to your remote authentication policy.
Note: The parameters in some of the commands are specific for a connection to AD. Other
LDAP implementations might require different parameters in the DS CLI commands.
2. Configure the policy by running the setauthpol command. You must issue the command
multiple times until your policy definition is complete. The command can change only one
configuration setting at a time. The parameter of the -action keyword determines which
setting is being changed. Extra keywords and parameters might be required. Each
command is completed by specifying the policy name.
Note: The LDAP parameters that are used here are the ones that are offered as default
values when you create a Microsoft LDAP policy by using the DS8900F GUI. In the
same way, you can use the GUI defaults for LDAP implementations.
Example 5-6 shows the command to add the LDAP servers to the policy. We specify the
LDAP servers by using a full URL, including the protocol and port definition with the action.
In this case, we connect to the LDAP servers by using SSL. Therefore, the ldaps protocol
is specified and the port number is 636.
In Example 5-7, we add the SSL keystore to the policy. We provide the name and location
of the keystore file and the password that is required to open it.
Example 5-7 Adding the SSL keystore to the remote authentication policy
dscli> setauthpol -action settruststore -loc /home/user/msad_servers.jks -pw
xxxxxxxx ldap_dscli_ad
CMUC00366I setauthpol: The authentication policy ldap_dscli_ad has been
modified.
In Example 5-8, we add th LDAP bind information to the policy. We want to use the simple
bind method, so we must provide a bind user and password. We need two commands:
One to add the user, and another one to provide the password.
Example 5-8 Adding the LDAP bind credential for simple binding
dscli> setauthpol -action setbinduser -binduser
"CN=bind,CN=Users,DC=ds8ksme,DC=local" ldap_dscli_ad
CMUC00366I setauthpol: The authentication policy ldap_dscli_ad has been
modified.
Note: If you want to use direct binding, you do not have to specify a bind user and
password. Instead, you provide a bind Distinguished Name (DN) placeholder by using
the setuserbasedn action keyword. You can determine the placeholder from your User
Search Base DN. Use the same DN, but replace the username in the CN field with a
placeholder that can be either {0} or {USERNAME}. The LDAP client replaces it with the
user ID that tries to authenticate. For anonymous binding, no bind information must be
specified. For more information about LDAP binding, see 2.3, “LDAP binding and
authentication” on page 14.
3. In the next step, we add the LDAP search base definitions to our new policy. We need a
setauthpol command for both the user search base and the group search base definitions,
as shown in Example 5-9.
In Example 5-10, we set the user and group name filters, and the group membership
attribute.
Example 5-10 Setting the username, group name, and group membership attributes
dscli> setauthpol -action setusernamefilter -usernamefilter
"(&(sAMAccountName={0})(|(objectcategory=user)(objectclass=user)))"
ldap_dscli_ad
CMUC00366I setauthpol: The authentication policy ldap_dscli_ad has been
modified.
Note: For other LDAP implementations, you might have to set the additional LDAP
attributes username attribute or group name attribute. If so, you can use the
setusernameattr and setgroupnameattr parameters of the setauthpol command.
It is a best practice to add an existing local user ID with admin access to a remote
authentication policy. This ID is not intended for every day use, but for specific situations.
For example, using this ID enables you to log on to the DS8900F system even when the
remote authentication servers are unavailable. Example 5-11 show the definition of a local
admin user ID.
4. The basic definition of the remote authentication policy is complete, and we must add the
user and group mappings to the policy. In Example 5-12, we define two users and two
groups. For recommendations and best practices regarding the definition of users and
groups, see Chapter 3, “IBM DS8000 user management” on page 17.
The user and group IDs that you specify with the -extuser or -extgroup keywords must
exist in the LDAP directory. The DS8000 system queries the LDAP service for them when
users try to log on. You specify an access group with the -dsgroup keyword. Here you can
use either DS8000 predefined groups or customer-defined groups. The predefined groups
(or user roles) are the same ones that you can use when you define local users:
admin Administrator
op_storage Physical operator
op_volume Logical operator
op_copy_services Copy Services operator
monitor Monitor
auditor Auditor
no_access No Access
ibm_service IBM service representative
ibm_engineering IBM DS8000 product engineer
secadmin Security administrator
For more information about predefined and custom user roles, see IBM DS8900F
Architecture and Implementation Release 9.1, SG24-8456.
Note: User IDs with secadmin access require special considerations. For more
information, see 5.5, “Managing remote authentication policies by using the DS CLI” on
page 67.
You can also add more than one access group to an LDAP group or user. To do so, run a
setauthpol command for each DS8000 access group that you want to map to an external ID.
In Example 5-13, we map an external group to two DS8000 access groups.
Example 5-13 Defining external group mapping with more than one access role
dscli> setauthpol -action addmap -extgroup DS8k_Logical_and_copy_operator -dsgroup
op_volume ldap_dscli_ad
CMUC00366I setauthpol: The authentication policy ldap_dscli_ad has been modified.
With the testauthpol command, you can also verify whether the policy maps the specified
user to one or more DS8900F access groups. To do so, add the -group keyword together with
the respective access groups. Example 5-15 shows such a command that is issued against a
group mapped user whose LDAP group is mapped to two different DS8000 access groups
(see group mapping in Example 5-13 on page 65).
Example 5-15 Testing a remote authentication policy for access group mapping
dscli> testauthpol -username lcuser4 -pw xxxxxxxxx -group
op_copy_services,op_volume ldap_dscli_ad
CMUC00371I testauthpol: The authentication policy ldap_dscli_ad has been
authenticated on location ldaps://9.155.112.113:636.
CMUC00371I testauthpol: The authentication policy ldap_dscli_ad has been
authenticated on location ldaps://9.155.112.114:636.
If all your policy tests where successful, you can finally activate your new policy by using the
chauthpol -activate command, as shown in Example 5-16. For policy activation, you must
also provide a user ID with its password. This user must exist in the LDAP directory that must
be mapped to the DS8900F admin access group in the new remote authentication policy. The
command asks for a confirmation before activating the policy.
After you activate a remote authentication policy, the DS8900F automatically logs you out
because your local user authentication became invalid. You must log on again with a user ID
that the DS8900F can authenticate against the LDAP service, as shown in Example 5-17.
After login, we run the whoami command. It confirms that we logged on by using the new
policy.
Example 5-17 Logging on again and verifying the user after activating the remote authentication policy
[user@linux ~]$ /opt/ibm/dscli/dscli -cfg
/home/user/tools/dscli/profile/lah81.profile -user admuser0 -passwd xxxxxxxx
In the following sections, we explain some of the most useful commands and options.
With the lsauthpol command, you can request a list of all remote authentication policies that
are defined in a DS8900F system. As shown in Example 5-18, the command tells the listed
policies type, and whether they are active or inactive.
When you specify the -l flag with the lsautpol command, the command also shows the
hostname or IP addresses of the defined authentication servers in the list.
If you want to get more information about a policy, you can use the showauthpol command.
Without an additional flag, it lists all policy definitions except for the user and group mappings.
If you add the -map flag, the mappings are displayed, as shown in Example 5-19.
With the -map flag, the command lists the mappings grouped by the DS8000 access roles. In
some cases, it can be useful to have the mappings grouped by the external (LDAP)
definitions. You can get the mappings listed in this reverse grouping by running the following
command:
showauthpol -revmap
If you want to change an existing policy, rub the setauthpol command. The command works
for both active and inactive policies. After you have a working policy, the most likely changes
you will make to it is the mapping of users and groups. In that context, the setauthpol
command provides the following actions:
addmap Create an external user or group mapping, or add another access role
to an existing user or group.
setmap Replace the mapping for an existing external user or group. Works as
addmap for non-existing user or groups.
rmmap Remove individual access roles from one or more existing external
users or groups.
rmallmap Remove all access roles from one or more existing external users or
groups.
For examples of the setauthpol command, see 5.3, “Creating a remote authentication policy”
on page 62.
Note: Be careful when changing the currently active policy. You might lock yourself out of
the storage system user interface.
For examples of the mkauthpol, testauthpol, lsauthpol, and chauthpol commands, see 5.3,
“Creating a remote authentication policy” on page 62 and 5.4, “Testing and activating a
remote authentication policy” on page 66.
When you want to export a remote authentication policy as a backup or to use it in another
DS8900F system, you must provide the name of an existing directory on your local
workstation (the system on which your DS CLI runs), as shown in Example 5-20.
The exportauthpol command places a compressed file that is called settings.zip into the
specified directory. It contains at least two files:
A JSON file that is named security.json that contains the definitions of the policy, except
for the passwords that were provided with the policy. This file applies to the local
administrator, bind user, and keystore passwords.
The keystore file that you prepared and provided for the policy. There is no keystore file if
you specified your policy without SSL (LDAPS) support.
You can rename the file after exporting it to distinguish different policies.
Note: You cannot run the offloadauthpol command from the DS CLI that is embedded in
the DS8000 GUI.
To import a previously exported policy, run the mkauthpol command with the -import option.
You must provide the name and location of a compressed archive that contains the policy
definitions and optional keystore file, as shown in Example 5-21.
Note: When you export a remote authentication policy (offload), the bind user password
that you might have specified is not included in the exported JSON file. You must provide it
again after importing the policy and before you can test and activate it.
If you want to map secadmin user IDs or groups in your LDAP remote authentication policy,
you must take special considerations. A user with admin access can perform almost any
configuration and administration task on a DS8000 system. The only exception is that it
cannot manage secadmin users.
To map a secadmin user or group in your policy, an existing secadmin user must log on to the
DS8900F by using the DS CLI and create the policy mapping that is shown in Example 5-12
on page 64.
When you use resource groups in your DS8000 configuration, you can limit certain users’
access to one or more resource groups by specifying a user resource scope (scope) for the
user. The scope is an attribute of a user ID. With local users, you specify the scope when you
create or change a user ID.
With remote authentication, you can specify user resource scopes in the user or group
mappings. Scopes that are defined in a remote authentication policy have the same effect as
local user scopes. The difference is that you can assign a scope to a group of users.
Example 5-23 shows two commands that set the user resource scope of an existing user and
group mapping.
Example 5-23 User and group mapping with user resource group scope definition
dscli> setauthpol -action setmap -extgroup DS8k_Logical_and_copy_operator -scope
tenantA ldap_dscli_ad
CMUC00366I setauthpol: The authentication policy ldap_dscli_ad has been modified.
Example 5-24 shows a showauthpol command that issued to the policy after setting the
scope. It contains new sections that list the user and group mappings that have a use
resource scope that is assigned.
6.1.1 Overlays
With OpenLDAP, make sure that MemberOf overlay is installed.
The MemberOf overlay provides a reverse group membership relationship. The memberOf
attribute is an optional attribute, and it must be requested.
Example 6-1 shows the output of the memberOf query and the groups that UID jdoe is a
member of.
This overlay is required if you want to map Lightweight Directory Access Protocol (LDAP)
groups to the DS8000.
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
6.2.1 Binding
By default, for Microsoft environments, Microsoft disabled anonymous binding since Windows
2003 and later.
With Microsoft AD, you can use direct binding with the userPrincipalName. No bind user is
required in this case.
You can also specify the bind user in the UPN or DN format if you want to work with a bind
user.
The given member and memberOf attribute trigger the Microsoft server to return the results of
recursive searches of the group membership or member user DNs.
6.3.1 Binding
The IBM Security Directory Server supports anonymous binding. Therefore, you do not need
to have a bind user ID to query the Directory Information Tree (DIT).
The given attribute triggers the IBM Security Directory Server to return the results of recursive
searches of the group membership or member user DNs.
For more information about how to set up the LDAP server with the SDBM back end, see IBM
Tivoli Directory Server for z/OS, SG24-7849, or IBM Knowledge Center.
Note: In the following sections, you learn much RACF terminology. If you are unfamiliar
with this terminology, refer to your RACF administrator for discussion and implementation.
In the following sections, we assume that you already have LDAP on z/OS running and
configured to use the SDBM back end. We provide details for creating only a DS8000 remote
authentication policy that is specific to z/OS or RACF.
For a detailed walk-through of the steps that are required to set up a DS8000 remote
authentication policy by using the GUI, see Chapter 4, “IBM DS8000 GUI implementation” on
page 39. If you plan to create your policy by using the DS CLI, see Chapter 5, “Implementing
LDAP by using the DS Command-Line Interface” on page 59.
Note: In the z/OS environment that we used to create the examples in this paper, the
LDAP configuration files are stored in the members of a partitioned data set (PDSE) with
the name GLD.CEBCPLEX.CNFOUT. We use this name throughout this chapter. The name will
be different in your environment.
Note: The steps in this section might have to be performed by the LDAP and RACF
administrators in your organization.
To configure the LDAP server for SSL / TLS client communication, complete the following
steps:
1. Change two LDAP configuration files. You must add the supported SSL and TLS versions
to the file that contains the LDAP server environment variable definitions. Use a text editor
in z/OS and open the GLD.CEBCPLEX.CNFOUT(DSENVVAR) file. Add or uncomment the
statements as shown in Example 7-1.
Example 7-1 Defining SSL and TLS support in the DSENVVAR member
GSK_PROTOCOL_SSLV3=ON
GSK_PROTOCOL_TLSV1=ON
GSK_PROTOCOL_TLSV1_1=ON
GSK_PROTOCOL_TLSV1_2=ON
2. Configure the LDAP server to listen for secure LDAP (LDAPS) requests. Add an extra
listen statement for LDAPS and the LDAPS IP port 636 to the general LDAP
GLD.CEBCPLEX.CNFOUT(DSCONFIG) configuration file, as shown in Example 7-2.
Example 7-2 Configuring LDAP to listen to LDAPS requests in the DSCONFIG member
...
listen ldap://:389
listen ldaps://:636
...
3. You must make the SSL certificate and the key ring file accessible to the LDAP server. In
the example configuration, we use a simple method. With RACF, we create a self-signed
certificate for the LDAP servers and connect it to a RACF key ring, which we made
available to the LDAP server. The following steps explain this process. The terms in bold
match the ones in Example 7-3.
a. Generate the self-signed certificate that the LDAP server will use, as shown in
Example 7-4.
b. Create the key ring for the LDAP server and add the new certificate to it, as shown in
Example 7-5.
c. Refresh the RACF certificate repository to make these changes to effective, as shown
in Example 7-6.
4. Restart the LDAP server address space. The LDAP server picks up the new settings.
Note: If you have redundant LDAP servers, you must provide a separate certificate for the
second server and add it to the LDAP key ring. You also must check whether both servers
use the same configuration files. If not, you must change both configurations.
In the SDBM section of the z/OS LDAP server configuration (the DSCONFIG member), you must
specify a suffix. This suffix acts as the LDAP search base for the remote authentication policy.
You can find the suffix in the LDAP server configuration file following the setting that enables
the use of the SDBM back end, as shown in Example 7-7.
Example 7-7 Finding the SDBM suffix in the LDAP for z/OS configuration file
# SDBM-specific CONFIGURATION SETTINGS
#----------------------------------------------------------------------
...
database SDBM GLDBSD31/GLDBSD64
...
#----------------------------------------------------------------------
# suffix <dn-suffix>
#
# Description:
# The suffix option specifies the root of a subtree in the namespace
# managed by this server within this backend.
#
# Example:
# suffix "sysplex=sysplex1"
#
# Notes:
# This option is required when using the SDBM backend.
#----------------------------------------------------------------------
suffix "sysplex=CEBCPLEX"
Note: This explanation is simplified. In fact, each user login attempt results in multiple
LDAP queries.
This set of minimum definitions allows a user ID be queried through LDAP, but does not
provide any kind of access to any resources that are managed by RACF, for example, to log in
to the z/OS system.
Tip: To make user management easier, it can be useful to add attributes. In our example,
we defined a group that is called DS8KUSER, which is the default group and owner of all
users that we use for DS8000 remote authentication. Then, we gave the owner of this
group the authority to change and reset the passwords of the users within the group. This
way, the group owner can manage some DS8000 remote user attributes without having to
involve the RACF administrator every time.
Example 7-8 shows the relevant parts of the RACF profile of one of our DS8000 users. The
terms that are marked in italic indicate the necessary attributes: non-revoked user ID, and a
valid, non-expired password. The terms in bold indicate our environment-specific group
assignment.
Again, this set of minimum definitions allows a user ID to be queried through LDAP for a
group membership, but it does not provide any kind of access to any resources that are
managed by RACF, for example, to log in to the z/OS system.
Tip: To make user and group management easier, it can be useful to add attributes. In our
example, we use the group that owns all DS8000 remote users (as described in 7.3.1,
“RACF user definitions” on page 81) also as superior group (SUPGROUP) and owner of all
remote authentication groups. Then, we give the owner of this group the authority to define
subgroups and change user to group mappings, all within the SUPGROUP. This way, the group
owner can manage the DS8000 remote user and group definitions without having to
involve the RACF administrator every time.
In Example 7-9, we show the relevant parts of the RACF profile of one of our remote
authentication groups. The terms that are marked in italic indicate the necessary attributes:
Non-revoked user ID, and a valid, non-expired password. The terms in bold indicate our
environment-specific group attributes.
Note: Nested groups are not supported by LDAP for z/OS and the SDBM back end, which
means that a user must be directly connected to a group that is mapped in the DS8000
remote authentication policy. You cannot connect a user through an intermediate group.
For more information about these methods, see 2.3, “LDAP binding and authentication” on
page 14.
With LDAP on z/OS and the SDBM back end, you cannot use anonymous binding. Even if the
LDAP server is configured to allow anonymous binding, RACF does not allow access to user
and group information without authentication.
In the following sections, we explain how to use the two supported binding methods.
In our example, the bind user DS8BIND is a member of the group DS8KUSER. This group
contains all user IDs that are used for DS8000 remote authentication, and it is the superior
group (SUPGROUP) for all DS8000 external groups that are defined in RACF. To query the
group, the bind user uses the AUDITOR attribute for it. Example 7-10 shows the relevant entries
in the RACF profile of this bind user.
Example 7-10 Group membership and attributes for the LDAP bind user
USER=DS8BIND ...
...
GROUP=DS8KUSER AUTH=USE CONNECT-OWNER=xxxxxxx CONNECT-DATE=20.176
CONNECTS= 00 UACC=READ LAST-CONNECT=UNKNOWN
CONNECT ATTRIBUTES=AUDITOR
...
There are other ways to provide the bind user with the necessary authorization, such as the
LISTUSER RACF command. For more information, see IBM Knowledge Center.
When you set up the DS8000 remote authentication policy, you need the bind user in LDAP
Distinguished Name (DN) format, as shown in Example 7-11. It contains the bind user’s
RACF user ID as racfid and the LDAP search base as determined in 7.2, “LDAP search
base” on page 80.
Note: If your LDAP server is not configured for secure communication between client and
server, the bind user password is transferred over the network in the clear. This is a high
security risk.
Example 7-12 shows the placeholders that we use in our example. They look like a normal
user or group DN, but instead of a discrete user or group ID, they contain the variable
expression {0}. The DS8900F LDAP client replaces this variable with the user or group ID it is
querying for. The placeholders also contain the LDAP search base, as determined in 7.2,
“LDAP search base” on page 80.
Note: You can also use the variable terms {USERNAME} and {GROUPNAME} instead of {0}.
For an example of a direct binding configuration in the Configure Servers tab of the remote
authentication wizard in the DS8000 GUI using the placeholders, see Figure 7-2 on page 85.
There was a limitation in the initial native LDAP implementation (DS8900F R9.1) that was
removed in the Release 9.1.1 code (bundle 89.11.5.0). This limitation required special
considerations for group mappings.
With a DS8900F release earlier than R 9.1.1, user to group mappings require that all DS8000
users that are defined in RACF have the authority to list the users in the RACF group that is
mapped in the policy. One way to provide this authorization is to give the user ID the AUDITOR
attribute for the mapped group, as shown in Example 7-13.
Example 7-13 User profile to allow group mappings with DS8900F before R 9.1SP1
USER=CSUSR0 ...
...
GROUP=DS8KCOPY AUTH=USE ...
...
CONNECT ATTRIBUTES=AUDITOR
...
Example 7-14 User search base for LDAP with SDBM back end
profiletype=user,sysplex=CEBCPLEX
Group search base: Specify the profile type as group and add the LDAP search base as
described in 7.2, “LDAP search base” on page 80 and shown in Example 7-15.
Example 7-15 Group search base for LDAP with SDBM back end
profiletype=group,sysplex=CEBCPLEX
Figure 7-3 Search base and group membership attribute for LDAP using the SDBM back end
Optionally, you can specify filters for user and group names. Filters might speed up the
background LDAP queries. For the recommended values in your organization, speak to your
LDAP administrator.
A possible simple filtering method for LDAP with the SDBM back end is to set both filters to
racfid{0}. This setting limits the searches to user and group names and omits other directory
entries. Figure 7-4 shows how you can enter these filters in the Configure Lookup window of
the DS8000 GUI.
Figure 7-4 User and group name filter examples for LDAP by using the SDBM back end
Figure 7-5 on page 87 shows the DS8000 Configure Authentication Mappings window with a
few example user and group mappings.
You can use the RACF back end together with IBM Z MFA for LDAP-based remote
authentication with a DS8900F system. We do not describe how to set up MFA with RACF in
this paper. For more information, see IBM Z Multi-Factor Authentication and IBM Knowledge
Center.
In the example that is used in this paper, we configure IBM Z MFA to provide a time-based
one-time password (TOTP) on a registered device, for example, a smartphone. RACF users
that are supposed to use MFA need some MFA-specific definitions in their RACF profile.
Example 7-16 shows a RACF command that enables MFA for an RACF user ID. The bold
parameters are (from left to right):
The user ID to change.
The extra authentication factor to use. In this case, it is AZFTOP1, which is a TOTP service.
The tag REGSTATE:OPEN sets the Registration State to Open. Registration is required before
the user ID can perform TOTP MFA.
The length of the passcode, the separation character, and which of the two credentials comes
first is defined in the IBM Z MFA configuration.
Note: Users that are configured for z/OS MFA cannot use the DS CLI that is embedded in
the DS8900F GUI. When you open the embedded DS CLI, it performs another
authentication with the DS8000 system, but your one-time token that confirms your second
authentication factor is not valid anymore. Using a stand-alone DS CLI client works. Here,
authentication, also with MFA, is performed once, and from then on the DS CLI uses it own
session tokens to secure the communication.
Important: The migration is possible only for a DS8900F with Licensed Machine Code
(LMC) 89.10.92.0 or later.
In this scenario, you change the configuration and use the new native LDAP authentication,
thus bypassing the CSM servers, as shown in Figure 8-2.
To switch to the native LDAP for the DS8000, changes are made only on the DS8000 system.
If the CSM servers are also used for Copy Services management and you still must log in to
CSM by using LDAP authentication, keep the LDAP configuration on the CSM servers intact.
2. After you obtain the name of your active SAS authentication policy, run the DS CLI
showauthpol -map command to get the mapping between the DS8900F user roles and
LDAP groups, as shown in Example 8-2.
Chapter 8. Migrating from IBM Copy Services Manager based LDAP authentication to native LDAP authentication 91
You need the Role Group Maps and the Role User Maps to re-creating the mapping later.
2. Write down all the mappings that you can see in the Remote Authentication Mappings
section. You might need to scroll down within that section. In the section header of
Figure 8-4, you can see the number of configured mappings.
Now, you have the mapping of the LDAP groups and users to the DS8900F roles.
Chapter 8. Migrating from IBM Copy Services Manager based LDAP authentication to native LDAP authentication 93
The LDAP Configuration window opens, as shown in Figure 8-7. From this window, you
can obtain the authentication server IP address or hostname, and the port in use for the
authentication service.
In addition, the window shows the bind user Distinguished Name (DN) or the User
Principle Name for ID that is used for the bind user.
If you are in a Microsoft Active Directory (AD) environment, you might not need the bind user
if you configure the DS8900F system with direct bind. (for more information, see 4.1.5,
“Configuring the access mode” on page 45).
Write down the searchbase. Even if there is only one searchbase in CSM for users and
groups, you might want to specify a more granular searchbase when configuring the native
LDAP authentication. For more information, speak to your LDAP administrator.
Important: During the migration, remote users cannot log in. This situation impacts the
automation and monitoring procedures that might be used by CSM, IBM Spectrum Control,
or other monitoring and management software.
2. In the Support menu, select the Troubleshooting tab, as shown in Figure 8-9. Click
Restart Remote HMC.
Chapter 8. Migrating from IBM Copy Services Manager based LDAP authentication to native LDAP authentication 95
3. After you click Restart Remote HMC, a dialog box opens and prompts you to confirm that
you want to restart the remote HMC, as shown in Figure 8-10. Click Yes.
Figure 8-10 Dialog box for the Restart Remote HMC action
The remote HMC restarts. Figure 8-11 shows that the state of the Remote HMC is “Offline
with redundancy”.
Wait until the status changes from “Offline with redundancy” back to “Online”.
4. When the state is “Online” again, click Restart local HMC. When restarting the local
HMC, you must wait approximately 5 minutes before you can access the system again.
Then, you can refresh your browser to point to the HMC login page and log in again.
The dialog box that is shown in Figure 8-12 opens after you click Restart local HMC.
After both HMCs restart, you can configure the native LDAP authentication.
Chapter 8. Migrating from IBM Copy Services Manager based LDAP authentication to native LDAP authentication 97
98 LDAP Authentication for IBM DS8000 Systems
9
Because the CSM-based method is not the preferred authentication method for the DS8900F
system, we show the configuration that is based on the DS8880 GUI, but this configuration
also applies to the DS8900F system.
Tip: There is no restriction on the number of DS8000 systems that may connect to a CSM
instance for remote authentication.
For remote authentication, you can use the HMC embedded CSM instance, which is available
with any DS8900 or DS8880 system, and a CSM instance that is installed on an independent
distributed server (also referred to as external CSM). You can mix the embedded and external
CSM servers in your configuration.
Figure 9-1 shows an example of a remote authentication implementation that is using two
CSM instances for the remote authentication when the login is done through the Storage
Manager GUI or DS Command-Line Interface (DS CLI). Only the two CSM servers are
connecting through the LDAP protocol to the directory server. All DS8000 HMCs
communicate with the CSM instance to authenticate the users.
For this implementation, you must set up LDAP in CSM and create a single version of the
keystores, which then can be deployed to all DS8000 systems in the environment. Using this
approach can reduce the administrative overhead to maintain several CSM servers that you
might use only for remote authentication.
Important: Make sure that you review the ports in use in accordance with your
configuration.
Table 9-1 shows the CSM IP ports that are required for configuring authentication.
Table 9-1 CSM IP ports that are required for configuring authentication
Tool Non-changeable port CSM on Default port CSM on a
the DS8900 / DS8880 HMC distributed system
The DS8900F and DS8880 security settings require that the CSM is reachable through port
443 only, as described in 9.1, “Architecture for remote authentication through CSM” on
page 100. For more information, see IBM Knowledge Center.
The port reassignment is done within the DS8000 HMC web server to serve different web
services through port 443 and provide one common TLS certificate for all available services.
You must take special care when you export the certificates for later use.
The truststore file contains the certificate of each CSM server that is used by the DS8000
system for the LDAP authentication. The certificates in the truststore are used to secure the
connection between the DS8000 HMC and the CSM server.
The truststore file is a Java KeyStore (JKS) file that is maintained by using the keytool
command, or iKeyman, which is available in the IBM Java distribution only. In the keystore file,
you store the certificates of the CSM servers that are used for remote authentication.
Important: If you reinstall the CSM server without a backup or if the HMC is rebuilt by
IBM Service personnel, new certificates might be created. In this case, you must create a
truststore file and import those certificates by using the DS GUI or DS CLI.
If you are using an external CSM server, complete the instructions in 9.3.1, “Obtaining the
truststore files for external CSM servers” on page 102. If you are using the HMC embedded
CSM server, go to 9.3.2, “Creating the truststore files for an embedded CSM server” on
page 104.
Synchronizing the truststore file when using two external CSM servers
Note: This step is required only if you have two external CSM servers. Otherwise, go to
9.3.2, “Creating the truststore files for an embedded CSM server” on page 104.
When you have two external CSM servers, you can use the CSM GUI or csmcli to copy the
certificate that is used for the authentication service from one CSM server to the other CSM
server.
2. In the Synchronize Server dialog box that is shown in Figure 9-3, enter the details of the
second CSM server. After you click Synchronize, the truststore for the remote
authentication is overwritten on the CSM server that is specified.
Figure 9-3 CSM GUI: Synchronize Server to specify the access information to your other CSM
server
3. To ensure that the synchronization of the truststore was successful, check the CSM
console log for an IWNR4980 message.
The synchronization of the truststore can also be performed running the CSMcli
syncauthservice command.
Attention: This step is required only if you work with one or two external CSM servers. Do
not perform those actions if you are using CSM on a DS8880/DS8900 HMC.
After you synchronize the truststore as described in “Synchronizing the truststore file when
using two external CSM servers” on page 102, you must perform the following steps on only
one CSM server, as though you were dealing with only one external CSM server.
You must export the truststore from your CSM server through the CSM GUI. The export
function is under the Settings → Advanced Tools menu. Figure 9-5 shows the Export
Truststore for Remote Connections section in the Advanced Tools window.
Figure 9-5 CSM GUI: Settings - Advanced Tools section to export the truststore file
After you click Export, the file dialog of your browser opens, and you can download the
truststore file to the system running the browser.
Use the truststore file that you downloaded as the truststore file to configure SAS-type remote
authentication on your DS8000. The password for the truststore file is passw0rd.
Attention: This section applies when you are using an embedded CSM server on the
DS8880 or DS8900 HMCs or you are working in a mixed setup of embedded and external
CSM servers.
The most convenient way is to use the openssl command. The openssl tool is part of the
most Linux and Unix distributions. On Windows systems, you can install an openssl port for
Microsoft Windows or use the web browser.
Copy each certificate block into a separate file, including the lines containing BEGIN
CERTIFICATE and END CERTIFICATE. Example 9-1 shows a single certificate block.
If you want to obtain the certificate from the external CSM server, you must use the same
openssl command, but you specify port 9562 instead:
openssl s_client -showcerts -connect CSM_Server:9562
2. Click the lock next to the URL. A new window opens, as shown in Figure 9-7 on page 107.
3. Click the arrow on the right. Figure 9-8 shows that the certificate is verified.
5. Click View Certificate. Information that is related to the certificates is displayed. There
also are links to download the PEM (cert) if the HMC is using a self-signed certificate, or to
download the PEM (chain) if the HMC is using a certificate that is signed by a CA.
The file must be downloaded and saved. Figure 9-10 shows a modified view of the
certificate page.
6. Verify that the PEM file successfully downloaded, as shown in Figure 9-11 on page 109.
If you must obtain the certificate for the CSM authentication service from your external CSM
server, use the following URL scheme:
https://my_external_CSM:9562
The browser might present a potential security risk due to a self-signed certificate that is
presented from the CSM server. This behavior is expected, so you can accept the risk for the
connection on port 9562.
The chain file has two or more certificates, and the file must be split with a text editor. Each
file should contain one certificate section, as shown in Example 9-1 on page 105.
After you obtain the certificate files in the PEM format, you must add each individual
certificate to the truststore by running the following command:
keytool -importcert -keystore [truststore_file_name].jks -noprompt -storepass
[tuststore_password] -alias [unique_alias] -file [PEM_FILE]
Important: The alias that is specified in the -alias option must be unique.
When you create the file while adding the first certificate, you are prompted for the password
of the keystore. This password is also required when you import the truststore to the DS8000
system later. Example 9-2 shows a certificate being added to a truststore file.
Example 9-2 Creating and adding the first certificate to the truststore file
% keytool -importcert -keystore myCSM_LDAP_truststore.jks -noprompt -storepass
XXXXXXXXXX -alias r9-hmc1 -file r9-hmc1.pem
Certificate was added to keystore
Run the same keytool command for all the certificate files that you created.
If you try to import a certificate that is already in the keystore, the keytool command issues a
message.
You can use the -list option of the keytool command to display the fingerprints of the
certificates in the keystore:
keytool -list -keystore [truststore_file_name].jks -storepass [tuststore_password]
After you add all the certificates, you create your truststore successfully.
From a web browser, open the CSM GUI and run the following commands:
For CSM that is embedded on the DS8880 or DS8900 HMC:
https://<HMC_IP_or_FQDN>/CSM/
For CSM stand-alone servers:
https://<server_IP_or_FQDN>:9559/CSM/
After the credentials are authenticated by CSM, select Settings → Administration, and then
click Modify. Figure 9-13 shows an example where we need to provide the following
information.
Authentication method:
– Select Active Directory if you use a Microsoft Active Directory (AD) Server.
– Select LDAP for any other server other than Microsoft AD.
Authentication servers
Specify the IP address or server name and the port. For redundancy, specify more than
one server.
Bind user ID
Specify the Bind user ID in the full Distinguished Name (DN) format. For Microsoft AD, you
also can specify the userPrincipleName of the Bind user ID.
Bind password
The LDAP password for the user that is entered in the Bind User ID field.
Figure 9-14 shows the complete configuration dialog box and the Load Certificate button
that you use to upload the certificate text file.
Example 9-4 illustrates the advanced LDAP configuration by using the Advanced tab. If you
must replicate the same LDAP configuration to another CSM server, you can use the Basic
tab to create the initial configuration. As soon as it is tested and saved, you can copy the
content of Advanced tab to paste it to all the other CSM servers on which you want to have
LDAP configured.
At this stage, the necessary configuration to make the CSM servers available to be used as
authentication servers by DS8000 is complete. Also, if you use CSM for Copy Services
management, it is ready for LDAP authentication.
To take advantage of this feature, you must add the configuration option
recursiveSearch="true" into the XML structure of the Advanced LDAP configuration tab or
modify ldapregistry.xml on an external CSM server.
If you want to use csmcli from a remote workstation or server, you must download it from
IBM Fix Central.
The process for csmcli installation and the initial configuration are described in
IBM Knowledge Center.
From the CSM command line, you can use two different commands for LDAP configuration
based on your LDAP server type:
mkadcfg: Used only to configure the Microsoft AD server-based authentication.
mkldapcfg: Used to configure any LDAP server other than Microsoft AD.
Note: If you want to enable SSL for a Microsoft AD server on CSM, you must use the CSM
GUI because that option is available only for the mkldapcfg command.
For more information about this process and each csmcli command, see IBM Knowledge
Center.
Example 9-5 Configuring an OpenLDAP server on CSM by using the csmcli tool
Enter a username for logging on to the server
csmadmin
Enter a password for logging on to the server
>
IBM Copy Services Manager Command-Line Interface (CLI)
Copyright 2007, 2015 IBM Corporation
CLI Client Version: 6.2.10, Build: a20200915-0935
Authentication file: csmcli-auth.properties
Connected to:
Server: yyyy.yy.ibm.com Port: 9560 UseREST: false
Server Version: 6.2.9.1, Build: a20200804-1704
csmcli> lsauthcfg
IWNR4962W [Oct 20, 2020 7:48:14 AM] No LDAP configuration found.
csmcli> mkldapcfg -server xxx.xx.ibm.com:636;xxx.xx.ibm.com:636 -baseDN
"DC=ds8ksme,DC=ibm,DC=com" -bindDN "CN=bind,DC=ds8ksme,DC=ibm,DC=com" -password
XXXXX -keyfilepath /home/master/cert.txt
IWNR4950I [Oct 20, 2020 7:48:14 AM] Successfully updated the LDAP configuration.
csmcli> lsauthcfg
Server Port Role Type
================================
xxx.xx.ibm.com 636 Primary LDAP
xxx.xx.ibm.com 636 Failover LDAP
csmcli>
2. From the left icon menu, select Settings → Security (Figure 9-17).
3. Select Remote Authentication and click Enable Remote Authentication (Figure 9-18).
5. Click Next to open the Authentication Servers tab to enter the authentication servers
configuration, as shown in Figure 9-20.
Note: Do not specify any port for using an embedded CSM. With HTTPS, the
standard port 443 is used because it is the only allowed port for the embedded
CSM instance.
Note: 9562 is the predefined port for the CSM Authentication Service. This port
might be different in your installation. To verify the correct port, speak to your
CSM admin.
• If you are planning to use embedded and external CSM servers, you might have an
URI that contains the CSM Authentication Service port and one URI without the
port.
– For Truststore File, click the Folder icon to select the truststore file where the CSM
secure certificates are stored. For more information about the truststore file, see 9.3,
“Creating a truststore” on page 102.
– For Truststore Password:
• If you created your truststore file by following the instructions in 9.3.1, “Obtaining
the truststore files for external CSM servers” on page 102, use the passw0rd (with a
zero instead of the letter O) password.
• If you created the truststore file by following the instructions on 9.3.2, “Creating the
truststore files for an embedded CSM server” on page 104, enter the password that
was defined when the truststore was created.
– For WebSphere User Name, enter an existing LDAP user ID to be used by the
DS8000 to authenticate on the CSM servers.
Note: You can use any existing LDAP user ID for authentication service. However, It
is a best practice to use the same CSM bind user ID that is defined in 9.4.1,
“Configuring LDAP by using the CSM GUI” on page 110. For example, if during the
CSM LDAP configuration you used bind user ID
CN=bind,DC=ds8ksme,DC=ibm,DC=com for the WebSphere User Name, use the user
ID bind.
– For WebSphere Password, enter the password that is defined for the WebSphere
User Name (in our example, it is the password for the LDAP user ID bind).
Figure 9-21 Example of a configuration that uses two stand-alone CSM servers for authentication
6. Click Next to display the Authentication Mappings window (Figure 9-22). You must assign
DS8000 roles to the LDAP remote users or groups that you want to grant access to log in
on the DS8000 system.
Click Add Remote Mapping to create an authentication mapping and to select the
DS8000 role that you want to map.
7. In the Create Authentication Mapping window (Figure 9-23 on page 119), complete these
fields:
a. Select the DS8000 user role to be mapped from the Select the user role on the
DS8000 to be mapped menu. If you need detailed information about each DS8000
user role, see Figure 3-5 on page 22.
b. For Mapping Type, select the LDAP object type (User or User Group) that you want to
use for mapping to a DS8000 role.
c. For User Name or Group Name, enter the name of user ID or group ID that exists in
the LDAP directory and for which you want to grant access to the DS8000 system.
d. Click Add. To add new mappings, repeat the steps from this section. For more
information about user groups and roles, see 3.1, “DS8000 basic user management
and access” on page 18.
9. In the Local Administrator window (Figure 9-25), you can define an existing DS8000 local
administrator that remains active for recovery if the remote authentication servers (LDAP,
CSM, or both) are not available.
Select the Allow checkbox to enable the local administrator feature. Then, select one of
the existing DS8000 local users with the administrator role to be used as the recovery
user. The current password that is configured for the local user that you selected is used.
Therefore, make sure that the correct password is configured before proceeding to the
next steps. After the remote authentication is enabled, you cannot change the password
for the recovery user.
Assigning an administrator role helps to avoid a situation where you activate remote
authentication with an LDAP server with no defined mapping for an administrator account.
If you activated remote authentication without a defined mapped administrator and then
log out, you cannot log back in to add remote authentication mappings.
.
Figure 9-25 Enabling the local default DS8000 user “admin” to be used for recovery
Note: As a best practice, use the default local DS8000 admin user as the recovery user
ID (local administrator). Also, note the password.
Note: Decide whether you need to map users to the secadmin role by following the
steps in 9.6, “Mapping LDAP users and groups to the DS8000 Security Administrator
role” on page 129.
Figure 9-26 LDAP user that is mapped to the DS8000 Administrator role to be used for verification
If remote authentication was successfully enabled, you get the status “Task completed”,
and the DS GUI automatically disconnects your session, which indicates that the
authentication policy changed (Figure 9-28). The default internal name for the remote
authentication policy that is created by the DS GUI is GUIRemotePolicy.
You can now log in to the DS GUI by using any LDAP user ID that you mapped during the
remote policy configuration.
If you need to add mappings to DS8000 roles, follow the steps in 3.1, “DS8000 basic user
management and access” on page 18.
Figure 9-28 Message that is received when remote authentication is successfully enabled
2. For Remote Authentication, select Disabled and provide the credentials of any existing
DS8000 local administrator user (it can be the recovery/contingency username itself or
any previous local administrator for which you know the credentials).
Click Enable to re-enable the DS8000 local authentication (Figure 9-30).
4. If remote authentication is successfully enabled, you see the status “Task completed”, and
the DS GUI automatically disconnects your session with the reason “Authentication Policy
Changed” (Figure 9-32).
Figure 9-32 Concluding the tasks for enabling DS8000 local authentication
You can now log in to the DS GUI by using any valid DS8000 local user.
4. Use the lsauthpol command to confirm that itsopolicy was correctly created
(Example 9-8).
5. Add the authentication servers to itsopolicy, as shown in Example 9-9. Enter the
setauthpol command with the -action setauthserver and -loc parameters, where -loc
contains the URI for the CSM servers. In this example, we add two CSM stand-alone
servers.
For the -loc parameter, you can add up to two authentication servers that the DS8000
system requests for LDAP authentication. The URI for each authentication server should
be provided. Which URI to use depends on where your CSM server is installed:
– If the CSM server is installed on the DS8000 HMC, use the following URI:
https://my_embedded_CSM_on_HMC/CSMAuth/TokenService
– If the CSM server is installed on a stand-alone server, use the following URI:
https://my_external_CSM:9562/CSMAuth/TokenService
Important: If one of your CSM servers is installed on a stand-alone server and one is
installed on the HMC, you must use the corresponding URI. For example:
URI for the primary CSM (a stand-alone server):
https://my_external_CSM:9562/CSMAuth/TokenService
URI for the secondary CSM (installed on HMC):
https://my_embedded_CSM_on_HMC/CSMAuth/TokenService
The only requirement for this configuration is that you must create the Java truststore
file containing the secure certificates from both CSM servers according to the
procedure in 9.3.2, “Creating the truststore files for an embedded CSM server” on
page 104.
7. Enter the credentials of an existing LDAP user that will be used by the DS8000 to
authenticate with the CSM servers by using the setauthpol command with the -action
setsasuser parameter, as shown in Example 9-11. In this example, we use an LDAP user
that is called csmldapuser (with the password LDAP$3cret).
Note: Although you can use any existing LDAP user ID for authentication, as a best
practice, use the same CSM bind user ID that is defined in 9.4.1, “Configuring LDAP by
using the CSM GUI” on page 110.
For example, if during the CSM LDAP configuration you used bind user ID
CN=csmldapuser,CN=Users,DC=itso,DC=ibm,DC=com, then use csmldapuser for the
WebSphere User Name.
8. Map existing users and user groups from the LDAP server to user groups on the DS8000
system by running the setauthpol -action setmap command with the -extuser or
-extgroup parameters that are associated to the specific DS8000 groups (-dsgroup), as
shown in Example 9-12.
9. Starting with code bundle 87.50.114.0, you can allow a local administrator to access the
system when a remote authentication policy is configured and the external LDAP servers
are inaccessible. If your code bundle supports this feature, run the setauthpol command
with the -action setlocaladmin parameter, as shown in Example 9-13.
In this example, the default DS8000 local user admin is configured as the recovery ID.
10.Now the policy is set up but still in inactive state, as shown in Example 9-14.
11.Test the configuration by running the testauthpol command and the credentials from one
of the LDAP users that you mapped as a DS8000 administrator in the previous steps, as
shown in Example 9-15.
12.If the test completes successfully, you can activate the policy by running the chauthpol
command with the -activate parameter and the credentials from one of the LDAP users
that you mapped as a DS8000 administrator, as shown in Example 9-16.
The basic authentication is inactive, and you see a command execution time-out message
after some time (about 5 minutes). This message is expected, and you must log off from
the DS CLI and reconnect by using the LDAP credentials.
3. To disable a remote authentication policy, enable the local authentication (the basic
initialPolicy). Run the chauthpol command with the -activate parameter for the
initialPolicy and provide the credentials from one DS8000 local administrator user, as
shown in Example 9-19. All remote users who are currently logged in are logged out.
dscli> lsauthpol
name type state
==============================
GUIRemotePolicy SAS inactive
initialPolicy Basic active
Tip: The commands cannot run on the embedded DS CLI. You must use an external
DS CLI session.
3. To see the existing authentication policies, run the lsauthpol command, as shown in
Example 9-20. In this example, the only available remote authentication policy
GUIRemotePolicy is inactive (disabled).
4. Map any existing users and user groups from the LDAP server to the DS8000 Security
Administrator group by running the setauthpol -action setmap command with the
-extuser or -extgroup parameters, as shown in Example 9-21.
In this example, the LDAP user ldapsecadminuser is associated to the DS8000 Security
Administrator role.
Example 9-21 Mapping an LDAP user to the DS8000 Security Administrator group
dscli> setauthpol -action setmap -extuser ldapsecadminuser -dsgroup secadmin
GUIRemotePolicy
CMUC00366I setauthpol: The authentication policy GUIRemotePolicy has been
modified.
5. If you must create any extra mappings to the DS8000 Security Administrator role, repeat
step 4. When you have create all the mappings that you need, disconnect from the DS
CLI.
6. Inform your DS8000 Storage Administrator that the remote authentication policy was
changed and that it can be activated. When the storage administrator activates the remote
authentication policy, all the LDAP users that were mapped in step 4 can log in to the
DS8000 system.
Work with your directory server administrator to complete the worksheet before you start the
configuration.
Native LDAP
This section describes the following topics:
Server details
Configuring LDAP servers
Configuring the lookup method for the LDAP servers
Server details
Document your server details in Table A-1.
LDAP server 1
LDAP server 2
The default port for non-encrypted LDAP is 389, and the default port for encrypted LDAP
(LDAPs) is 636.
Do you want to have a secured connection between the DS8900 HMC and the LDAP server?
Yes, I want to secure my connection and I want to retrieve the files.
Ask the LDAP admin for the serial number, Subject Distinguished Name (DN), and the
issuer of each certificate in the certificate chain of the LDAP server. Use Table A-2 to note
the certificate information for the LDAP server certificates.
Subject DN
Issuer
Serial
You should have one root certificate for the certificate authority (CA) and one intermediate
certificate. Use Table A-3 on page 133 to note the information. Extend the table if you have
more than one intermediate certificate.
Subject DN
Issuer
Serial
Bind DN or user ID
Password
Direct bind
Provide the DN placeholder so that a direct bind can be performed when you enter a user
ID and password. Replace the user ID with {0} or {USERNAME}. Use Table A-5 to note the
DN placeholder details.
DN placeholder
I am not using a filter. I use the username attribute and group name attribute of the group or
username in the DN part.
Username attribute
Username filter
In Table A-11, note in your personalized CSMAuth URI. This URI is different depending on
whether you have an internal or external CSM.
Server 1
Server 2
In Table A-12 on page 135, note the location and password of the certificate truststore.
File name
Truststore password
In Table A-13, note the CSM user that is mapped from your LDAP server and is a configured
as Admin or User Admin in CSM. This user is used as a kind of bind user between the
DS8000 HMC and CSM.
WebSphere password
Provide the user ID for the local administrator. It must be configured in the initalPolicy.
You want to have two functional user IDs for IBM Service and IBM Engineering in your LDAP
environment because you must share the passwords on demand for IBM support.
Administrator / admin
Security Administrator
/secadmin
IBM Service
IBM Engineering
Appendix B. Troubleshooting
This appendix provides some guidance about how to troubleshoot obstacles that you might
encounter during the Lightweight Directory Access Protocol (LDAP) remote authentication
configuration. It shows how to verify the parameters that are entered into the GUI or DS
Command-Line Interface (DS CLI).
These command-line tools enable a simple but effective query of your directory server.
Figure B-1 shows the first wizard window and a mapping to the parameters that are used with
ldapsearch:
1. Specify the hostname or the IP address of one server that you want to query.
2. When the TLS 1.2 checkbox is selected, specify ldaps in the command to indicate that this
connection is TLS secured.
When the TLS 1.2 checkbox is not selected, specify ldap there.
Ensure that you separate the protocol and the hostname with a colon and two forward
slashes (://).
3. Specify the port. Ensure that you separate the hostname and the port with a colon (:).
4. Depending on the authentication method, specify different values here. Our example is for
a simple bind.
5. Use the Distinguished Name (DN) or the username with the -D command switch.
6. Specify option -w for the password of the user that is specified in step 5.
Figure B-2 on page 139 continues the illustration for assembling the ldapsearch command.
Figure B-2 shows the search base for the user and groups. In addition, it shows the filters for
the group and usernames.
To complete the ldapsearch command to query a user, complete the following steps:
1. Specify the User search base by using the -b option.
2. Specify the username filter. In our example, we use the attribute uid, but the attribute can
be different in your LDAP server implementation. Replace {0} in the filter string with the
user ID that you want to query.
In addition, you can extend the ldapsearch command with parameters so that you do not
get the full entry. Instead, the command returns only the attributes that are specified. An
example is shown in Example B-2 on page 140.
When you want to use ldapsearch to query a group, you must specify the group
information.
3. Specify the Group search base by using the -b option.
4. Specify the Group name filter and replace {0} in the filter string with the group name that
you want to query. When you want to query all groups or a set of groups, replace {0} with
* or a partial string and *, as shown in Example B-3 on page 141.
5. To see only the members of the group, specify the group membership attribute at the end
of the ldapsearch command.
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
In Example B-2, we would like to display only the surname (sn), the user ID (uid), and the
email (mail) information. You can see that the output is much shorter. We extended the
command by using the string sn uid mail. To find out the login name of the user, you can
also specify the log-in attribute that should be used by the user.
Example: B-2 The ldapsearch command shows only a limited number of attributes
ldapsearch -H "ldaps://this-is-my-directory-server.com:636" \
> -D "CN=admin,DC=ds8ksme,DC=ibm,DC=com" \
> -w "Test1234a" \
> -b "DC=ds8ksme,DC=ibm,DC=com" \
> '(&(uid=jdoe)(|(objectclass=Person)(objectclass=posixAccount)))' \
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Example B-3 shows a query of all groups whose name starts with the string DS8k_. This query
verifies the correct spelling, including capitalization, of the group name on the LDAP server.
...
# search result
search: 2
result: 0 Success
# numResponses: 12
# numEntries: 11
Example: B-4 The ldapsearch command showing the members of the group DS8k_Administrator
ldapsearch -H "ldaps://this-is-my-directory-server.com:636" \
> -D "CN=admin,DC=ds8ksme,DC=ibm,DC=com" \
> -w "Test1234a" \
> -b "OU=group,DC=ds8ksme,DC=ibm,DC=com" \
> '(&(cn=DS8k_*)(objectclass=groupOfNames))' \
cn member
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
The figures and examples in this section provide a brief overview of the dsquery tool and
show how to get the correct connection information.
The dsquery command can query different objects in the directory. We provide some
examples that help to verify the group and username, and the correct membership of a user.
Sometimes, it is necessary to validate the correct spelling of the SAM Account Name of a
group that you want to enter. In Example B-6, we query the groups that are under the group
search base and for which the name starts with DS8k.
To list all the members of a group, build a query that is assembled out of the dsquery group,
dsget group, and dsget user commands, as shown in Example B-7 on page 145. This
command is lengthy because you must specify the -s, -u, and -p parameter when you cannot
run the command on a Windows client in this domain or on a Microsoft server.
For more enhanced queries and examples, see Active Directory doucmentation, or see Active
Directory: DSQUERY Commands.
Exporting the DS8000 secure certificates is one of the steps that is required to create the
Java truststore file. This file is used during the configuration of remote authentication on a
DS8000 system. For more information, see 9.3 "Creating a truststore" on 102.
Appendix C. Exporting secure certificates by using the Google Chrome and Microsoft Edge web browsers 149
2. Regardless of the secure certificate URL that you are using, click the Customize and
control Google Chrome icon (the three vertical dots to the right of the URL), and then
select More tools → Developer tools (Figure C-5).
3. In the Developer tools window, select Security → View certificate (Figure C-6).
Appendix C. Exporting secure certificates by using the Google Chrome and Microsoft Edge web browsers 151
6. In the Export File Format window, select Base-64 encoded X.509 (.CER) and click Next
(Figure C-9).
7. In the File to Export window, select the folder where you want to save the exported
certificate and provide a name for the file where the certificate will be saved. Click Next
(Figure C-10).
9. You should receive confirmation that the export was successful. Click OK to conclude the
process (Figure C-12).
Appendix C. Exporting secure certificates by using the Google Chrome and Microsoft Edge web browsers 153
154 LDAP Authentication for IBM DS8000 Systems
Related publications
The publications that are listed in this section are considered suitable for a more detailed
description of the topics that are covered in this paper.
IBM Redbooks
The following IBM Redbooks publications provide more information about the topics in this
document. Some publications that are referenced in this list might be available in softcopy
only.
DS8000 Copy Services, SG24-8367
IBM DS8000 Encryption for data at rest, Transparent Cloud Tiering, and Endpoint Security
(DS8000 Release 9.0), REDP-4500
IBM DS8900F Architecture and Implementation Release 9.1, SG24-8456
You can search for, view, download, or order these documents and other Redbooks,
Redpapers, web docs, drafts, and additional materials, at the following website:
ibm.com/redbooks
Online resources
These websites are also relevant as further information sources:
DS8000 Series Copy Services Fibre Channel Extension Support Matrix:
http://www.ibm.com/support/docview.wss?uid=ssg1S7003277
IBM Disk Storage Feature Activation (DSFA), found at:
http://www.ibm.com/storage/dsfa
IBM Fix Central:
https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=Enterprise%20Stor
age%20Servers&product=ibm/Storage_Disk/DS8900F
IBM Knowledge Center: DS8000:
https://www.ibm.com/support/knowledgecenter/SSHGBU
IBM System Storage Interoperation Center (SSIC), found at:
http://www.ibm.com/systems/support/storage/config/ssic/index.jsp
REDP-5460-01
ISBN 0738459488
Printed in U.S.A.
®
ibm.com/redbooks