Front cover Case Study: AIX and WebSphere in an Enterprise Infrastructure Integrate AIX with Microsoft Active Directory-based authentication and directory services Use Microsoft Identity Information Server and Active Directory Application Mode LDAP Integration details from an actual enterprise scenario Colin Renouf ibm.com/redbooks Redpaper International Technical Support Organization Case Study: AIX and WebSphere in an Enterprise Infrastructure September 2008 REDP-4436-00 Note: Before using this information and the product it supports, read the information in “Notices” on page v. First Edition (September 2008) This edition applies to IBM AIX v5.3 and IBM WebSphere Application Server v6.1 © Copyright International Business Machines Corporation 2008. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii You can become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Chapter 1. The Application Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Overall infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 The middle tier: WebSphere MQ and high availability . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 WebSphere Portal Server and WSRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.6 Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.6.1 Using Workload Partitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.7 Design for expected load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Chapter 2. Active Directory Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Integrating WAS 6.1 and AIX with Windows 2003 R2 Active Directory security . . . . . . 2.1.1 RFC 1510 Kerberos authentication. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 RFC 2307 POSIX user and group mappings for LDAP based directories . . . . . . 2.1.3 RFC 2478 SPNEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 System configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Ensure Windows 2003 Server R2 Active Directory is configured . . . . . . . . . . . . . 2.2.2 Add user accounts for the AIX system and WAS . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3 Export the Keytab file from Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 Prepare the AIX environment for Kerberos support . . . . . . . . . . . . . . . . . . . . . . . 2.2.5 Configure AIX Administrative users and groups . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.6 Configure the AIX Environment for LDAP support . . . . . . . . . . . . . . . . . . . . . . . . 2.2.7 Configure Windows Internet Explorer clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.8 Set up the WebSphere Application Server 6.1 for SPNEGO . . . . . . . . . . . . . . . . 2.2.9 Set up the directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.10 Results for WebSphere Application Server single sign-on users . . . . . . . . . . . . 2.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 13 14 14 15 15 17 19 20 23 24 26 27 36 40 41 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How to get Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 43 43 44 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 © Copyright IBM Corp. 2008. All rights reserved. iii iv Case Study: AIX and WebSphere in an Enterprise Infrastructure Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which 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. © Copyright IBM Corp. 2008. All rights reserved. v Trademarks IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: AIX® Ascential® BladeCenter® CICS® DataStage® DB2® FileNet® HACMP™ IBM® IMS™ POWER™ POWER3™ POWER5™ POWER5+™ POWER6™ Redbooks® Redbooks (logo) System p™ Tivoli® WebSphere® ® The following terms are trademarks of other companies: FileNet, and the FileNet logo are registered trademarks of FileNet Corporation in the United States, other countries or both. Oracle, JD Edwards, PeopleSoft, Siebel, and TopLink are registered trademarks of Oracle Corporation and/or its affiliates. SAP, and SAP logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries. J2EE, Java, JDK, JVM, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Active Directory, Internet Explorer, Microsoft, PowerPoint, SQL Server, Windows Server, Windows Vista, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. vi Case Study: AIX and WebSphere in an Enterprise Infrastructure Preface This IBM® Redpaper presents a technical case study describing, in detail, how a realistic enterprise level application and system architecture would look for an environment that provides AIX® and WebSphere®-hosted applications integrated with Microsoft® Active Directory®-based authentication and directory services. We recommend that readers of this paper also become familiar with the IBM Redbooks® publication Running IBM WebSphere Application Server on System p and AIX, SG24-7347. In addition to the topics covered in that book, this paper provides a reference architecture and technical guide for the design and integration of highly available WebSphere applications hosted on AIX with Active Directory-based services. Author Colin Renouf is a Solutions and Infrastructure Architect, working for a large UK-based bank. With about 25 years in the IT industry, having formerly been an Aeronautical Engineer at an aircraft engines company, he specialized in Windows® development and infrastructure. However, being familiar with AIX since its early days, and having a keen interest in Java™ and J2EE™, Colin added WAS and AIX to his specialties. As an active member of the user communities, he runs some of the largest user groups in the world, notably for AIX and jointly for all things related to WebSphere. Colin has a BSc degree in Aeronautical Engineering, a BA in IT and Social Sciences, and has studied several other subjects at the degree level. You can become a published author Join us for a two- to six-week residency program! Help write a book dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You will have the opportunity to team with IBM technical professionals, Business Partners, and Clients. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you will develop a network of contacts in IBM development labs, and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. Send us your comments about this paper or other IBM Redbooks in one of the following ways: Use the online Contact us review Redbooks form found at: ibm.com/redbooks © Copyright IBM Corp. 2008. All rights reserved. vii Send your comments in an e-mail to: redbooks@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400 viii Case Study: AIX and WebSphere in an Enterprise Infrastructure 1 Chapter 1. The Application Infrastructure In the IBM Redbook, Running IBM WebSphere Application Server on System p and AIX, SG24-7347, we examined a simplified, but fairly standard online transaction processing (OLTP) infrastructure for WebSphere Application Server (WAS) on AIX. The infrastructure consisted of a set of IBM JS/21 BladeCenter® Web servers, two IBM POWER5+™ Power 570 application servers in the middle tier, and two IBM POWER5+ Power 570 database servers, all spread across two geographically dispersed data centers. Each data center had an IBM N5500 NAS. A third data center maintained quorum. In reality, an enterprise is more complex, with additional earlier platforms and systems at the back end, a mix of software packages, and software and hardware combinations from other vendors, all of which have to be secured end-to-end. Add to this mix, a set of users, the majority of whom are probably Windows users. The only remedy for the complexity, and that does not greatly complicate the environment, is to maintain industry standards wherever possible. Therefore, Windows Active Directory would most likely be used for system authentication. In this chapter, we provide a technical overview of the overall applications and systems infrastructure for this case study. Note: We highly recommend that you first review a copy of Running IBM WebSphere Application Server on System p and AIX, SG24-7347, available at the following location: http://www.redbooks.ibm.com/abstracts/sg247347.html © Copyright IBM Corp. 2008. All rights reserved. 1 1.1 Context We start by placing our example infrastructure in the enterprise context and add security to it. To do this we adhere to the following principles: Users should authenticate themselves to the enterprise only once. Administrators should authenticate themselves to each system they administer. Internet users are application users only, but intranet users are a mix of administrators and application users. Internet and intranet traffic should be segmented. Security must be configured end-to-end throughout the environment; however, wherever possible, group and OU membership are used for user authorization and permissions, only up to the Web layer presentation logic tier, with system service-level security beyond this and the user identity as data. Thus, user A is a member of group B and the J2EE Web tier. Supporting presentation logic is secured for access by group B, but the database and ESB tier are secured for access by the WebSphere user account and any administrators only. The user identity is passed to back-end services as data for auditing and any fine-grained control for use in code. This simplifies management of user information and permissions. Industry standard solutions should be used wherever possible to avoid platform dependencies. Virtualization should be exploited to maximize utilization and minimize infrastructure costs As near to 100 percent application availability as possible should be maintained We assume System p™ and AIX form the core of our infrastructure. From a security perspective we exploit the Kerberos RFC 1510 and LDAP standards, with the RFC 2307 standard for our user representation. To understand the context of the case study, our sample company is a worldwide travel company that sells, over the Internet, tickets for holidays and flights, but still maintains an earlier environment that supports its considerable worldwide office network. We name our company “Rest’n’Relaxation Enterprises UK” (RnREnterprise). The company is headquartered in the U.K., but has regional offices, which from an organizational perspective are part of the Head Office, and has branch offices around the world. Within a country, a dedicated network is used, but for communications between countries, a virtual private network (VPN) is used over the Internet. 1.2 Overall infrastructure Because most of the company’s users are Windows XP and Windows Vista® users internally, Windows Active Directory most likely will be used for their system authentication. Windows 2003 Server R2 Active Directory supports the RFC 1510 Kerberos standard for Windows login, with the user information available through LDAP to Windows clients. With the R2 release, the user information can be mapped to the RFC 2307 standard that can be used for UNIX® logins. This allows AIX to use Active Directory for authentication of internal users and checking their user information, but also allows WAS to use Active Directory for a transparent Web-based single sign-on with the use of the WebSphere Application Server 6.1 Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) Trust Association Interceptor (TAI). 2 Case Study: AIX and WebSphere in an Enterprise Infrastructure For external Internet users, a simple IBM Tivoli® Directory Server environment is used and the users are presented with a login page to fill in their user IDs and passwords. In general, the enterprise is complex and also has workflow services using the IBM FileNet® P8 application and various components of an Enterprise Service Bus (ESB) for integrating the earlier systems the company has with the rest of the enterprise. The earlier systems on various platforms support a multitude of technologies ranging from WebSphere MQ, to CICS®, to IMS™ and various non-IBM proprietary environments. To front some of these systems, a multi-tiered approach is adopted in which the earlier system presents WebSphere MQ or Web services interface wrappers wherever possible, but without security beyond Secure Sockets Layer (SSL) and IP routing table settings. IBM WebSphere Data Power XI50 broker-in-a-box XML security appliances present WS-Security-compliant interfaces to the outside world and onto the ESB. Our overall infrastructure, with the networking-specific components simplified, is shown in Figure 1-1 on page 4. This is a very complex environment, but essentially the Web traffic from the Internet comes in from the top through a load balancer and is passed through a firewall layer to get to the WebSphere Application Server (WAS) environment hosting the application layer. The user initially gets a login page and the user ID and password are validated against the active IBM Tivoli Directory Server LDAP environment before a session is initiated. The session is valid for all applications on the given WAS environment. If the application layer requires database-hosted data, it goes to the Oracle® 10G R2 or IBM DB2® v9 with Gridscale environment, and if it requires legacy data, it enters the ESB layer. Similarly, workflows can be initiated by the WAS layer by redirecting to a FileNet-hosted page. The Network Attached Storage (NAS) environments help maintain transactional integrity as they host the WAS logs. For access to earlier systems, the ESB layer uses WS-Security presented by the DataPowerXI50 security appliances, which have controlled static routes that act as the only path from these data center zones to the earlier systems. Chapter 1. The Application Infrastructure 3 Figure 1-1 Overall infrastructure For intranet users, the flow is a little different. The users initially log into Active Directory from the Windows XP environment; similar behavior can be obtained by using Mac OS X or Linux® desktops. Under the covers, the initial login uses Kerberos, first to get a ticket granting ticket from the Key Distribution Center (KDC) component of the Kerberos subsystem within Active Directory using mutual authentication, and then to get further tickets to access services. The LDAP support is used for obtaining further group and organizational unit membership information for the user. When any Windows services are accessed, a ticket is obtained by the client in the background of the user request and is presented to the server hosting the service that mutually authenticates with the KDC before granting access. The user community using the WAS application goes through a different firewall configuration and accesses a different set of Web servers. We do this to segment the security information between the Internet and intranet worlds. When their requests are forwarded to WAS, the SPNEGO Trust Association Interceptor (TAI) intercepts the request and transparently forwards it to the Active Directory KDC for validation before setting up the appropriate session headers for the user and allowing access to the application. This is all done without presenting a login window because the browser forwards the credentials in a header after the first Web access is transparently rejected with a request for authentication. After this, the remaining behavior is the same for the application. 4 Case Study: AIX and WebSphere in an Enterprise Infrastructure 1.3 Enterprise Service Bus We mentioned an Enterprise Service Bus (ESB) as part of our deployment architecture, so we should explain how this architecture, shown in Figure 1-2, all fits together. Figure 1-2 Architecture overview This environment supports both batch and online requirements. On a regular basis, organizations have to move and manipulate data from earlier systems to support online databases that sit behind online systems; organization have to do this without negatively affecting the earlier systems and their clients. For this, organizations use the IBM DataStage®, QualityStage and ProfileStage products, which are the current IBM versions of the former Ascential® ETL (Extraction, Transformation, and Load) tools. The behavior of the DataStage environment is very resource-intensive under high loads, so a conscious decision has been made to provide two dedicated physical POWER6™-based System p machines that run the DataStage Enterprise environment and feed the database servers of the online system. This also assists in allowing the online system to meet its 24x7 requirement as the systems are physically independent. Loads of the transformed legacy data can be undertaken into temporary copies of the tables on the database servers that are then transactionally swapped with the current online tables. Note that the interconnect between the database servers must be able to support the volume of the data loads; tuning of the load process itself is required. This batch environment is not shown in Figure 1-2 as being external to the main components under consideration, but is still a critical part of the overall solution. Chapter 1. The Application Infrastructure 5 1.4 The middle tier: WebSphere MQ and high availability In the middle tier, most of the remaining online WebSphere components are housed on a single platform. One exception is a WebSphere MQ Server environment for a high volume and high availability WebSphere MQ cluster. A WebSphere MQ cluster allows a message to be sent to any queue manager but received only from the local queue manager, with shared queues and backup queues providing the resilience. To support this cluster, at least two copies of the full repository containing the cluster configuration, and a persistent message store (such as our NAS tier) are required for persistent messages. The infrastructure for a highly available and high volume WebSphere MQ cluster is very different from that of the rest of the WebSphere-branded products in that failover is handled at the operating system level through High Availability Cluster Multi-Processing (HACMP™). Therefore, although this is a core part of the Enterprise Service Bus (ESB) environment, this also not shown in Figure 1-2 on page 5, but is a key part of the online environment. We aim to keep multiple copies of the full repository available. This part of our infrastructure supports the flight management information system and payments system, and has extremely large volumes. In our ESB architecture, we also have a high availability WebSphere Message Broker with WebSphere MQ environment. This is C-based code, has similar failover requirements to the cluster shown in Figure 1-3, and is dependent on it. Figure 1-3 HA Environment for WebSphere Message Broker and WebSphere MQ 6 Case Study: AIX and WebSphere in an Enterprise Infrastructure Therefore, hosting this on the same physical machines as our WebSphere MQ cluster makes sense, but in different partitions to allow in-memory transfer of messages using Virtual Ethernet for performance, but suitable levels of isolation. WebSphere Message Broker also needs a database environment for its formatters and rules storage, but can use that for our online system. 1.5 WebSphere Portal Server and WSRP To understand the next part of the infrastructure, you should understand a little of the application architecture that makes use of our WebSphere Portal Server environment (see Figure 1-4). This is an application that sits on top of a normal WAS environment to support user customization of presentation. However, it also functions as part of the ESB. To support customization of pages, a Portal Server must be able to front other pages. A standard exists called Web Services for Remote Portlets (WSRP) that supports just that. In this, applications can host pieces of user presentation as portlets that are designed to be composed with other portlets for integration at the glass. Business applications such as those from SAP® and Oracle Applications can present these portlets. The WSRP standard essentially makes use of Web services to communicate presentation layout information and requirements, and in many ways is similar to the Microsoft Object Linking and Embedding (OLE) technology that allowed PowerPoint® presentations to be embedded in Word documents in function. To support this level of integration, the WebSphere Portal Server uses a reduced version of the WebSphere Process Server Business Process Execution Language (BPEL) engine. Figure 1-4 WSRP view Chapter 1. The Application Infrastructure 7 1.6 Partitioning Discussion in the previous sections leads us to the partition layout, which we also described previously. Note the benefits of hosting all of the software that sits on WAS on the same physical System p machine as shown in Figure 1-5, although the packages are in logically different tiers of the environment. This gives us improved throughput using in-memory transfers through Virtual Ethernet, which is controlled by the POWER6 Hypervisor to improve the performance and ease of management and maintenance. Thus, we get a partition layout similar to the previous one, with all of the WAS-based applications hosted on it. As the products develop and mature, this pattern will likely reap further benefits. Figure 1-5 Partition layout 1.6.1 Using Workload Partitions With the introduction of AIX 6.1 Workload Partitions (WPARs), you now have a means to use approximately 12 MB of memory to create a software-based partition within a logical partition and that maps down to the LPAR operating system image. A WPAR-based partitioning layout is shown in Figure 1-6 on page 9. The native operating system image is the global environment. WPARs are essentially AIX machines in their own right because each has its own host name, process list, and so on. All of this, however, is mapped into the global environment, from where it is controllable and visible. 8 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 1-6 WPAR partition layout If we combine our partition layout infrastructure pattern with WPARs on AIX 6.1, we have isolation for security reasons and the ability to create a number of developer environments quickly and easily. However, with the JVM™ shipped with WAS 6.1, the shared classes feature does not work, which affects memory and various aspects of performance. If we combine a Java6 environment with AIX 6.1, things are different, as memory mapped files are used for the shared classes implementation. We can then put a copy of our common code in the global environment, which all WPARs point to. For shared classes, we have many levels of security, ease of management for test environments and developers, and a reduction in memory usage. WAS does not support Java6 today, but could support it in a future release. Today, we use WAS 6.1. By giving J2EE developers their own isolated and clustered environment, they can develop on the cluster and identify clustering issues in their designs or code before late testing or production. No sharing exists in this scenario because the WAS Class Sharing mechanism is shared memory-based. There is no visibility across WPAR boundaries. Thus, with WAS 6.1, no benefit exists to using WPARs beyond software isolation (which the JVM gives to some extent anyway), and there is no benefit to having any WAS instances in the global environment. Chapter 1. The Application Infrastructure 9 1.7 Design for expected load When we set up any of our WAS-based environments, we calculate how many instances of a WAS are necessary to support our load. If we have two physical data center environments, we must be able to handle the loss of a data center, so we use vertical and horizontal clustering to make sure we can accommodate all of the loading in a single data center. If we know the arrival rate of Web requests and the duration of processing of those requests, we can use the 50-thread limit for the Web container to calculate the number of instances we need. In practice, most applications do not hog the processor, but do wait for I/O—some applications perform complex calculations and we must consider a worst case. For an arrival rate of 100 requests per second, with each request taking two seconds from the point of entry into the WAS Web container until it leaves WAS, then 200 requests are in flight at any one time. Therefore, 200 instances divided by 50, which equals four instances that are required to support the load. Because this must be accommodated in a single data center, in total we require eight instances, or four instances in each data center. We can now map this to physical hardware. A modern POWER™ processor supports Symmetric Multiprocessing, with two threads per processor core. Although limitations exist for instruction scheduling, we can assume that the threads behave the same across both thread instruction streams. Each thread on a POWER5™ or later has its own run queue, which is the number of threads that have their resources and are ready and waiting to run. It is normally desirable to keep this queue depth number less than 2 for steady state throughput on the processor, giving six threads per core as one is actually running. Therefore, each of our four instances can support 50 threads; the next integer larger than 50 divided by six is the number of processor cores required to support our load (for example, nine processor cores per WAS instance). Do not forget that additional asynchronous threads are in use within WAS and the operating system, so we always go above the calculated number to the next highest integer. Because we have to accommodate the complete load in each data center, we need four times this value to accommodate the four instances, (for example, 36 processor cores). This is a large value and does not recognize the amount of time an application must wait for I/O. In practice, the previous calculation is an upper bound. Because applications typically spend the majority of their time waiting for I/O, test the application in a representative environment and tune the processors required to keep the thread-run queue below two. In this case study, we decided to have two cells for security isolation reasons: One cell for Internet-facing traffic One cell for intranet-facing traffic We apportion the loads to clusters and cells accordingly. So far we have placed all of the key components of our environment without discussing security in detail, and without considering Cluster Systems Management (CSM), Network Installation Manager (NIM), or Hardware Management Console (HMC) environments. In this case study, we combine management applications, such as CSM and NIM, on a single physical system, and we use HACMP to fail-over between our data centers (choosing one to be active and another passive), which is acceptable given that these do not affect the running of the environment. (See Running IBM WebSphere Application Server on System p and AIX, SG24-7347, for general considerations and technical guidance in using CSM and NIM.) For the HMC, we use dual HMCs for every environment. The command line interface is fast so this is preferred for management of the CEC and partitions. We discuss security in the next chapter. 10 Case Study: AIX and WebSphere in an Enterprise Infrastructure 2 Chapter 2. Active Directory Integration In this chapter, we discuss the integration details for Active Directory security. © Copyright IBM Corp. 2008. All rights reserved. 11 2.1 Integrating WAS 6.1 and AIX with Windows 2003 R2 Active Directory security AIX has supported Kerberos and LDAP for many years. Our objective is to have administrators, who are likely to have Windows desktops that are integrated into a common Active Directory forest for the organization: Log in as normal to the AIX environment . Have their credentials checked using the RFC 1510 Kerberos and RFC 2307 LDAP POSIX User information provided by Active Directory. This saves money for many organizations because the security and passwords for the enterprise can be managed in one place, and the operations of a user can be tied together across the enterprise for traceability, which is a compliance requirement for many industries. Additionally, if the organization has a human resources (HR) application such as Oracle HRMS or SAP HR, then when a new user joins the organization and the user role is set up, the user accounts and permissions across the enterprise can automatically be provisioned. A number of user provisioning and identity management tools exist, such as the Tivoli Identity Manager. However, because this is a Microsoft environment, we assume the Microsoft Identity Information Server (MIIS) is being used with its SQL Server® database acting as a repository, and a Microsoft Active Directory Application Mode (ADAM) LDAP server as its target repository. When a new user joins our RnREnterprise company, the Oracle HRMS system generates entries in its tables, including role information. From this, we can identify roles, our application users, and our AIX administrators. We also can use the Microsoft Identity Information Server to massage the data and populate our MS ADAM environment with a configured set of rules. We use ADAM with the same user ID that we use to populate the full Active Directory environment for Windows login. We do however, separate the two to allow for additional directory objects required for the applications we are using so that we do not pollute the main Active Directory forest and slow down replication and login. Because the core schema is the same for Active Directory and ADAM, we can use the two together, with Active Directory acting as the primary location of authentication data and ADAM as the primary location of authorization data. For our Internet users, we have a separate IBM Tivoli Directory Server environment to act as an LDAP server for login, so the information that follows in the next sections applies only to the internal administrators and users. Key infrastructure requirements are: AIX 5.3 TL05, although TL06 is preferred for synchronized password changes. Windows 2003 Server R2 Active Directory is used. WebSphere Application Server Network Deployment v6.1 is used. Authentication uses Kerberos to the RFC1510 standard. Authorization and user role identity management (such as group, OU membership, and others) uses Kerberos authentication and LDAP over SSL. Trust relationships between multiple domains in a forest must be fully implemented on the Windows side in Active Directory rather than locally on the AIX environment. Across multiple domains a user ID must exist only once to avoid subsequent issues with Kerberos authentication and LDAP applications running on AIX. 12 Case Study: AIX and WebSphere in an Enterprise Infrastructure We consider the key points of the security mechanisms we are implementing in the following sections. 2.1.1 RFC 1510 Kerberos authentication Kerberos is a trusted third party ticket granting service, originally developed by MIT, and is currently at release 5. Its names is from the mythological three-headed dog that guarded the gates of Hades. It is a robust, standard authentication mechanism that is implemented on many environments and is now available as part of the Windows Active Directory. The main Kerberos Server is a Key Distribution Center (KDC) and consists of an Authentication Service (AS) and a Ticket Granting Service (TGS). The environment it manages is called a realm, which is essentially a security domain consisting of principals of users, servers, and services. Authentication is to the KDC Authentication Service and not to individual servers or services. This is a trusted third-party authentication mechanism in which clients and servers both trust the KDC AS. During login to a client, the user name gets sent to the KDC, which replies with a nonce (a one-time integer challenge value), a session key encrypted through the user password, and a ticket for presentation to the KDC TGS. The password does not cross the network. The client uses the locally-held password to obtain access to the session key, and the nonce that it can later present to the TGS with the ticket to obtain access to services. To access services, the TGS of the KDC is used. When a client wants to use a service, the client contacts the TGS with its ticket and session key to obtain a ticket for the service. The request "authenticator" is encrypted with the TGS Session Key. The TGS responds with a session key for the specific service, encrypted with the original session key, and a ticket for the service encrypted with the service private key. The client sends the service ticket to the service, which checks the validity of its private key and the authenticator encrypted with the session key. See Figure 2-1. Figure 2-1 Kerberos authentication and ticket granting services Chapter 2. Active Directory Integration 13 2.1.2 RFC 2307 POSIX user and group mappings for LDAP based directories Based on UNIX, a standard way to represent users and roles is an LDAP directory. It consists of a standard set of attribute names for the user, group membership, and more, which can all be used by a POSIX or UNIX system. Microsoft uses a nonstandard storage mechanism with Microsoft attribute names. But, the addition of the schema change to support RFC 2307 rectifies this, allowing interoperability between Windows and UNIX accounts without any Microsoft-proprietary extensions on the UNIX environments. The representation for users is shown in Table 2-1; representation for groups is in Table 2-2. Table 2-1 POSIX representation: users posixaccount Object Class username CHAR uid id INT uidnumber pgrp CHAR gidnumber home CHAR homedirectory shell CHAR loginshell gecos CHAR gecos spassword CHAR userpassword lastupdate INT shadowlastchange Table 2-2 POSIX representation: groups posixaccount Object Class groupname CHAR cn id INT gidnumber users LIST memberuid Although AIX can be configured to support the Microsoft extensions, changes on the Windows directory side are required. A standard RFC 2307 User and RFC 2307 Group mapping file has been included with AIX. The WebSphere registry and directory support recognizes a number of standard LDAP environments including RFC 2307, although more specifically, both Active Directory 2003 Application Mode and Active Directory 2003 R2. 2.1.3 RFC 2478 SPNEGO The Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) is used for a configured browser to transparently pass an access token for a pre-authenticated user through HTTP. The first request from a browser configured to support SPNEGO is rejected by the Web server through an HTTP 401 Authenticate: Negotiate message indicating the mechanisms that are supported (including SPNEGO). The browser invisibly gets a ticket from the Kerberos Ticket Granting Service and converts it to a SPNEGO access token. The browser then invisibly retries the original request but this time includes the SPNEGO access token. The WebSphere Application Server SPNEGO Trust Association Interceptor (TAI) decodes the user ID from the token, checks against the WebSphere Application Server 14 Case Study: AIX and WebSphere in an Enterprise Infrastructure (WAS) registry (AD), and sets the J2EE User Principal. Finally, a LTPA token is returned to the client for use for the rest of the session. 2.2 System configuration To set up our end-to-end security: 1. Ensure that the Windows 2003 Server Active Directory meets the R2 standard and has the appropriate trusts in place with other directories in the forest. Ensure the RFC 2307 POSIX schema extensions are installed. 2. Add user accounts to the Active Directory for each System p system that is to be secured across the enterprise. Add user accounts to the Active Directory for each System p system software package we want to run under a shared account across the enterprise. This includes the WAS. Set the appropriate account attributes for the role. 3. Export a keytab file from each system to be used by the system and the system software when obtaining permission to access the Active Directory for authentication purposes. 4. Prepare the AIX environment for Kerberos support by copying the key tab file to the AIX machine and configuring its contents for use by the Kerberos v 5 (krb5) components to make use of Active Directory. 5. Configure AIX administrative users and groups to use Kerberos authentication. 6. Configure the LDAP environment on AIX to use Kerberos authentication to get access to the data in Active Directory. 7. Configure the enterprise Internet Explorer® settings to support our single sign-on security. This might already be in place if Windows authentication is in use with Microsoft Windows Server® IIS Web servers. 8. Configure WAS to make use of the SPNEGO TAI for Kerberos authentication against Active Directory with the information in the AIX keytab file. 9. Configure the WAS Federated Directory support to access a local file for certain admin accounts, and Active Directory for the system accounts, admin accounts, and user accounts. Each step is described in more detail in the next sections. 2.2.1 Ensure Windows 2003 Server R2 Active Directory is configured First, use the Active Directory Domains and Trusts tool to ensure that the appropriate trusts are in place for all AD domain environments against which the users can be authenticated within the forests. For full integration with Active Directory, without using proprietary extensions, requires the Windows 2003 Server Active Directory schema to be at R2 level to support the RFC 2307 LDAP extensions for UNIX account management. Windows 2003 Server fully supports the Kerberos RFC 1510 standard without this, but the schema is required to enable additional features such as group management through LDAP. To upgrade to the RFC 2307 schema, the Windows 2003 Server must first be upgraded to Service Pack 1 and then the R2 schema update is applied from the R2 CD. To find details for the schema update, search the Microsoft Web site by searching for the file named R2SchemaUpdate.doc. Essentially, a command prompt is opened on the Schema Master Windows 2003 Server Active Directory and you run the following command from the Chapter 2. Active Directory Integration 15 \CMPNENTS\R2\ADPREP directory of CD2 of the Windows 2003 Server SP1 R2 installation set: adprep /forestprep This and subsequent operations must be performed by Windows domain administrators. For the test environment, the schema master Windows 2003 Active Directory domain controller server is called MICHAEL in the Windows domain and RNRENTERPRISE in the Kerberos realm. The DNS domain for this environment is RnREnterprise.dyndns.org. Note that the Kerberos realm name is very important and must be upper case for the security to work end-to-end. Figure 2-2 and Figure 2-3 show the process to import an LDAP LDIF file (sch31.ldf). This import process upgrades our schema to support the RFC 2307 POSIX standard for user names, passwords, directory names, and data that are accessible by LDAP. Figure 2-2 LDIF import to upgrade schema Figure 2-3 LDIF import to upgrade schema 16 Case Study: AIX and WebSphere in an Enterprise Infrastructure 2.2.2 Add user accounts for the AIX system and WAS To enable the AIX environment and WAS system software to use Active Directory for authentication they must have permission. To do this, they require user accounts in the Active Directory and a keytab file, which contains a key that authenticates them against the Kerberos Key Distribution Center (KDC) that is part of the Active Directory environment. Note that these are Users accounts and not Computers accounts in Active Directory, because the Computers accounts have an incomplete setup for use with Kerberos. The machine we set up for this environment is an AIX POWER3™ 44P machine called spock44p in the DNS domain RnREnterprise.dyndns.org. Note that DES encryption is used for the accounts because this is the only common encryption mechanism between the environments. We used Active Directory Users and Computers tool as shown in Figure 2-4. Figure 2-4 Active Directory Users and Computers tool Add a user account by right-clicking the Users folder, then selecting New and then User. As shown in Figure 2-5 on page 18, enter the host name of the target AIX machine or partition, without the domain name, in the First name and User logon name fields. Click Next. Chapter 2. Active Directory Integration 17 Figure 2-5 Enter user account information Check the User must change password at next logon box (Figure 2-6), enter a password that meets both the AIX and Windows password complexity requirements, and click Next. Figure 2-6 Enter password information As shown in Figure 2-7 on page 19, click Finish. 18 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-7 Finish adding a user account Repeat the process for adding a new user for a WebSphere Application Server system software account called wasuser and a controlling wasadmin account. The wasadmin account will be the AIX account under which the WebSphere Application Server runs. 2.2.3 Export the Keytab file from Active Directory The keytab file that authenticates the AIX environment to the Windows 2003 Server Active Directory environment must be generated by using the ktpass utility from the command line on the Active Directory domain controller. The provided keytab file must be transmitted to the AIX environment. Figure 2-8 on page 20 shows that the entry is for host machine name@Kerberos realm name and that the user account in Active Directory must be mapped to the keytab file. Chapter 2. Active Directory Integration 19 Figure 2-8 Export the Keytab file For subsequent use with the LDAP tools, the Service Principal Name (SPN) associated with the machine user account is also needed, so use the setspn command to verify, as follows: C:\Documents and Settings\Administrator>setspn -L spock44p Registered ServicePrincipalNames for CN=spock44p,CN=Users,DC=RnREnterprise,DC=dyndns,DC=org: host/spock44p.RnREnterprise.dyndns.org For the WAS wasadmin account, the SPN should identify the account as being for an HTTP service, as follows: C:\Documents and Settings\Administrator>setspn -a http/HTTPALIAS.RnREnterprise.dyndns.org wasadmin The HTTPALIAS is the canonical alias for the WebSphere cluster and wasadmin is the WAS-owning user. Finally, use FTP to put the keytab file on the AIX environment. Place it in an AIX user home directory for the AIX administrator to merge into an existing keytab file with the ktutil utility. Note: The file transmission must be binary rather than ASCII. 2.2.4 Prepare the AIX environment for Kerberos support To configure AIX to use Active Directory for its authentication, use the KRB5A authentication module rather than the KRB5 module. The KRB5 module expects the kadmin interface to be supported for Kerberos principal management, which the KRB5A module leaves to Windows tools on the Windows platform. As shown in Figure 2-9 on page 21, use lslpp to check whether the KRB5A client is installed. 20 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-9 Checking for KRB5A authentication client application If the client application is not installed, then install krb5.client.rte from the AIX CDs. To ensure that the appropriate Kerberos support is in the path, given that the JDK™ also contains its own utilities with the same name, edit /etc/environment and put /usr/krb5/bin and /usr/krb5/sbin before the JDK in the system PATH variable. Important: If you do not ensure that the appropriate Kerberos support is in the path, there might be LDAP, rather than Kerberos, issues later on and some Kerberos tracing could show errors. Next, enure the full domain name is entered in /etc/hosts as the first entry. Thus, for a machine called spock44p with ip address 192.168.200.5, the /etc/hosts entry should be: 192.168.200.5spock44p.RnREnterprise.dyndns.org spock44p Make sure that the hostname command returns exactly the same text as this first entry: # hostname spock44p.RnREnterprise.dyndns.org If it does not contain the correct information, set the hostname using uname -S and hostname. For example: uname -S spock44p and hostname spock44p.RnREnterprise.dyndns.org Both are necessary to ensure that the hostname is not lost on the reboot by the ODM. Because Kerberos is very time-sensitive, the AIX environment should use the same Network Time Protocol (NTP) server source as the Windows Active Directory environments. Verify this by looking at the ntp.conf file and start the NTP (xntpd) daemon to maintain this synchronization. Chapter 2. Active Directory Integration 21 To support full Kerberos integration, the keytab file generated previously by Active Directory must be integrated with the AIX Kerberos keytab file. The keytab file is located in /etc/krb5/krb5.keytab. Use the ktutil utility, found in /usr/krb5/sbin, to perform the merging, as follows: # /usr/krb5/sbin/ktutil ktutil: rkt /home/root/spock44p.keytab ktutil: wkt /etc/krb5/krb5.keytab ktutil: q # In Windows 2003 Active Directory, the Kerberos realm is usually the name of the domain in uppercase letters. For the test environment, the Kerberos realm is RNRENTERPRISE.DYNDNS.ORG. However, AIX might not use this value because it is used for the kadmin interface, which Active Directory does not support. In addition, Windows 2003 Active Directory sets up a service record similar to the canonical alias for all Active Directory servers to give clients resilience. This is known as _kerberos._tcp._dc._msdcs.domainname. Because AIX cannot use these DNS service records, set up a separate DNS canonical alias to point to all servers that are listed with these service records in DNS, for example kdcs. Similarly, set up an entry for LDAP access, such as ldap. For our test environment, the KDC would be accessed as: “kdcs.RnREnterprise.dyndns.org” And the LDAP services would be accessed as: “ldap.RnREnterprise.dyndns.org” These must be used as the identifier for the KDC for the setup of the Kerberos client and the identifier for the setup of the LDAP client respectively. The DNS domain name is also necessary for the configuration; we are configuring client options only. To configure the client environment on AIX to use Windows 2003 Active Directory Kerberos for authentication, use the config.krb5 utility as follows: # cd /usr/krb5/sbin # config.krb5 -C -r RNRENTERPRISE.DYNDNS.ORG -d RnREnterprise.dyndns.org -c kdcs.RnREnterprise.dyndns.org -s kdcs.RnREnterprise.dyndns.org Initializing configuration... Creating /etc/krb5/krb5_cfg_type... Creating /etc/krb5/krb5.conf... The command completed successfully. Because Windows does not support all of the same encryption types as set up by default, the krb5.conf file in the /etc/krb5 directory must be amended to support encryption modes des-cbc-crc and des-cbs-md5 respectively for the encryption types default-tkt-enctypes and default-tgs-enctypes under the libdefaults section. This is shown in Example 2-1. Example 2-1 Amending the krb5.conf file to support encryption types [libdefaults] default_realm = RNRENTERPRISE.DYNDNS.ORG default_keytab_name = FILE:/etc/krb5/krb5.keytab default_tkt_enctypes = des-cbc-crc des-cbc-md5 default_tgs_enctypes = des-cbc-crc des-cbc-md5 22 Case Study: AIX and WebSphere in an Enterprise Infrastructure [realms] RNRENTERPRISE.DYNDNS.ORG = { kdc = kdcs.RnREnterprise.dyndns.org:88 admin_server = kdcs.RnREnterprise.dyndns.org:749 default_domain = RnREnterprise.dyndns.org } [domain_realm] .RnREnterprise.dyndns.org = RNRENTERPRISE.DYNDNS.ORG kdcs.RnREnterprise.dyndns.org = RNRENTERPRISE.DYNDNS.ORG [logging] kdc = FILE:/var/krb5/log/krb5kdc.log admin_server = FILE:/var/krb5/log/kadmin.log default = FILE:/var/krb5/log/krb5lib.log Next, amend the /usr/lib/security/methods.cfg file to make use of the new configuration for authentication. This is accomplished by adding the entries, shown in Example 2-2, to the methods.cfg file. Example 2-2 Amending the methods.cfg file KRB5A: program = /usr/lib/security/KRB5A program_64 = /usr/lib/security/KRB5A_64 options = authonly KRB5Afiles: options = db=BUILTIN,auth=KRB5A Change /etc/netsvc.conf to check DNS before local information to make sure the machine names are found in their fully qualified state, although the hosts entry at the beginning of the instructions should negate the need for this. 2.2.5 Configure AIX Administrative users and groups Use the mkuser command to add users of the new Kerberos environment. The usage must point to authentication through the Active Directory. mkuser registry=KRB5Afiles SYSTEM=KRB5Afiles 1000000 As you set up the user, if an error message indicates the name is too long, the reason might be that the user was not added correctly on the Active Directory side. Otherwise, a mapping between a local name and an Active Directory name can be set up by using a variant of the mkuser command with the auth_name parameter, which identifies the user name as it is listed in the Active Directory. For example: mkuser registry=KRB5Afiles SYSTEM=KRB5Afiles auth_name=mgr2222222 2222222 As Figure 2-10 on page 24 shows, the login for a mapped account looks like any other, although the names in Active Directory and on the AIX platform differ. Chapter 2. Active Directory Integration 23 Figure 2-10 Mapped account login 2.2.6 Configure the AIX Environment for LDAP support The goal of using Active Directory as an LDAP server is to enable the centralized storage of user account information, such as group membership. As Active Directory in Windows 2003 Server R2 fully supports UNIX integration through the RFC 2307 schema extension, the goal of this step is to offload the information, allowing it to be handled by Active Directory. To be able to access the Active Directory through LDAP, the LDAP client must be installed. To integrate through SSL, the LDAP Max Crypto Client and Certificate and SSL support in the Global Secure Toolkit (GSKit) is required. To verify that these are installed, use lslpp as in section 2.2.4, “Prepare the AIX environment for Kerberos support” on page 20. If not installed, the LDAP Client (ldap.client) is on the original AIX CDs, and the other files (gskta.rte and ldap.max_crypto_client) are on the AIX Expansion Pack CDs. Normally, for RFC 2307 integration with AIX, the mksecldap utility is used. However, in AIX 5.3 TL05, this utility detects that the LDAP environment is Active Directory and assumes that it is not RFC 2307-compliant, which is not the case for Windows 2003 Server R2 Active Directory. This has improved with TL06. Configuring LDAP for this environment is a manual process. First, the methods.cfg file in /usr/lib/security must be amended to use LDAP to back up Kerberos. The entry we previously added to use KRB5A files, must now be commented out when you add the LDAP entries. Keep it in the file, however, to allow testing of Kerberos independently of LDAP, if required. The entries shown in Example 2-3 should be added to the end of the file (the asterisks indicate commented lines). Example 2-3 Amending methods.cfg to configure LDAP as backup to Kerberos *KRB5Afiles: * options = db=BUILTIN,auth=KRB5A KRB5ALDAP: options = db=LDAP,auth=KRB5A LDAP: program = /usr/lib/security/LDAP program_64 = /usr/lib/security/LDAP64 24 Case Study: AIX and WebSphere in an Enterprise Infrastructure Next, manually configure the LDAP client daemon by adding the Active Directory information into the ldap.cfg file in the /etc/security/ldap directory. Because we are using both standard RFC1510 Kerberos and RFC 2307 LDAP together, we set them up together. Add the information shown Example 2-4 to the end of the file. Example 2-4 manual configuration of LDAP client daemon in ldap.cfg # First add the list of LDAP servers for this to talk to, in this case # the canonical alias for Active Directory ldapservers:ldap.RnREnterprise.dyndns.org # Add the LDAP server bind distinguished name (DN) and password, i.e. # that we set up for this machine earlier. binddn:cn=spock44p,cn=Users,dc=RnREnterprise,dc=dyndns,dc=org bindpwd:Passw0rd # Add the AIX LDAP attribute map, in this case for RFC2307 since we are # using Windows 2003 Server R2 Active Directory which supports RFC 2307 userattrmappath:/etc/security/ldap/2307user.map groupattrmappath:/etc/security/ldap/2307group.map # Add the Base DN where the user and group data are stored in the # Active Directory LDAP Server userbasedn:cn=Users,dc=RnREnterprise,dc=dyndns,dc=org groupbasedn:cn=Users,dc=RnREnterprise,dc=dyndns,dc=org # LDAP class definitions userclasses:User groupclasses:Group useKRB5:yes krbprincipal:cn=spock44p,cn=Users,dc=RnREnterprise,dc=dyndns,dc=org krbkeypath:/etc/krb5/krb5.keytab krbcmddir:/usr/krb5/bin/ Next, start the LDAP client daemon and test the environment. Use the start-secldapclntd script to start the client daemon, as follows: # start-secldapclntd Starting the secldapclntd daemon. The secldapclntd daemon started successfully. Upon success, add the client daemon startup to the inittab file: mkitab "ldapclntd:2:once:/usr/sbin/secldapclntd > /dev/console 2>&1" To test LDAP, use the following command. You must be logged on as the user who is configured (check AUTHSTATE) in Active Directory, not as root. ldapsearch -b cn=Users,dc=RnREnterprise,dc=dyndns,dc=org -h ldap.RnREnterprise.dyndns.org -m GSSAPI -s one objectclass=* dn Before users can actually log in using LDAP credentials, the security configuration must enable both users and groups to be checked against the LDAP directory. This requires modification of the /etc/security/user file, with the default entry being changed to support an LDAP registry and authentication using either the system configuration for LDAP or the existing files mechanism (for example, for users such as root). Chapter 2. Active Directory Integration 25 To make this amendment use the chsec command as follows: # chsec -f /etc/security/user -s default -a "SYSTEM=LDAP or files" Note that it is the default user that must change because the details for specific users are held in the LDAP directory rather than locally. Finally, to allow later authentication of users who were not added manually to the user configuration on the local AIX machine, add the ability to authenticate based on Active Directory configured POSIX Group membership. For this, the +@admingrp entry was added to the bottom of /etc/passwd. Users that are not configured locally are then created in Active Directory. AIX results summary So far we have configured AIX to make use of Active Directory for user authentication, and for authorization using Kerberos and LDAP. Administrators configured locally can log in, and administrators configured in the admingrp in Active Directory should also be able to log in. Note that the keytab file must be secured because it contains authentication information for the system. The contents are time-dependent. If they are out-of-date, a message similar to the the following message can appear in syslog.out (if configured by the syslog daemon): Jan 16 14:08:27 spock44p daemon:err|error secldapclntd: 3001-740 Kerberos init failed using command /usr/krb5/bin/kinit, key table file /etc/krb5/krb5.keytab, on principal host/spock44p.RnREnterprise.dyndns.org. Our next step is to support all users who make use of our WAS applications by allowing those users to be authenticated against Active Directory for single sign-on. 2.2.7 Configure Windows Internet Explorer clients Windows and Kerberos SPNEGO authentication only work with Internet Explorer 5.5 and later in a native mode Active Directory domain, although Firefox can be configured to use it also. To configure the clients: 1. Refer to Figure 2-11 on page 27. 2. In Internet Explorer, select: Tools → Internet Options → Security 3. Select the Local intranet icon and click Sites. 4. Click Advanced. 5. In the Local Intranet window add the canonical alias for the WAS environment to the Add this Web site to the zone and click OK. 6. In the Internet Options window click the Advanced tab and scroll down to the Security settings. 7. Ensure that the Enable Integrated Windows Authentication box is checked, and then click OK. 26 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-11 Configuring Windows Internet Explorer clients 2.2.8 Set up the WebSphere Application Server 6.1 for SPNEGO A number of steps is involved in setting up of the SPNEGO Trust Association Interceptor within the WebSphere Application Server (WAS). This only works with version 6.1 and later. For earlier versions, products such as the IBM Tivoli Access Manager or BMC Open Networks UiDP Enforcement Agen and TAI are required. We use the WAS 6.1 Integrated Solutions Console or adminconsole for the initial configuration of the SPNEGO TAI, but use wsadmin.sh for later configuration and fine tuning. Configure the SPNEGO TAI To set up WAS for SPNEGO: 1. Select Security → Secure administration, applications and infrastructure. See Figure 2-12 on page 28. 2. In the Authentication panel, select Web security → Trust association. Chapter 2. Active Directory Integration 27 Figure 2-12 Initial configuration of the SPNEGO TAI 3. In the Configure tab, under General Properties, select the Enable trust association box to enable the feature (see Figure 2-13 on page 29). 28 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-13 Enable trust association 4. Click Interceptors, and select the SPNEGO TAI and Custom Properties for setting parameters 5. Add the following information: com.ibm.ws.security.spnego.SPN<X>.hostName=Fully Qualified Domain Name of Host In this example X=1 and hostname=spock44p.RnREnterprise.dyndns.org. 6. Optionally, add com.ibm.ws.security.spnego.SPN<X>.trimUserName=true. 7. After defining any custom properties click Save (see Figure 2-14 on page 30). Chapter 2. Active Directory Integration 29 Figure 2-14 Completing SPNEGO TAI configuration Set up JVM, WAS Kerberos support, and WAS LTPA Although the SPNEGO TAI is now configured, we now have to set up the Java Virtual Machine (JVM) to use SPNEGO, the WAS Kerberos support, and the WAS Lightweight Third Party Authentication (LTPA) configuration: 1. Use the WAS 6.1 Integrated Solutions Console adminconsole to set up Lightweight Third Party Authentication (LTPA). 2. Select Security → Secure administration, applications and infrastructure → Authentication mechanisms and expiration (as shown in Figure 2-15 on page 31). 30 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-15 Configuring authentication mechanisms 3. Update the Kerberos configuration for the platform to include the keytab for WAS to use: # /usr/krb5/sbin/ktutil ktutil: rkt /home/root/wasadmin.keytab ktutil: wkt /etc/krb5/krb5.keytab ktutil: q 4. Use the WAS 6.1 adminconsole to configure the JVM for the SPNEGO TAI. 5. Select Servers → Application servers (see Figure 2-16 on page 32). 6. Select a server and select Java and Process Management → Process Definition. Chapter 2. Active Directory Integration 31 Figure 2-16 Configure the JVM for the SPNEGO TAI 7. Click Java Virtual Machine (see Figure 2-17 on page 33). 32 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-17 Configure the JVM for the SPNEGO TAI 8. As shown in Figure 2-18, add the following information to Generic JVM arguments: -Dcom.ibm.ws.security.spnego.isEnabled=true Figure 2-18 Generic JVM Arguments Chapter 2. Active Directory Integration 33 Ensure LDAP registry is configured We ensure our LDAP registry is configured. Initially we point at the Active Directory and ensure we get the same information as Kerberos does (for example, that the IDs match). 1. Select Security → Secure administration, applications and infrastructure, as shown in Figure 2-19. Figure 2-19 Configuring LDAP registry 2. In the Available realm definitions, as shown in Figure 2-20 on page 35, select LDAP Standalone Registry and click Configure. This allows the LDAP environment to be tested correctly after configuration. Note that the options here for directories are quite simple. More options are available when the Federated Repositories are selected. 34 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-20 Configuring LDAP registry 3. Configure the Active Directory, the IP address and ports, and set up a user who has permission to access it in the keytab file. See Figure 2-21. Figure 2-21 Configuring LDAP registry Chapter 2. Active Directory Integration 35 2.2.9 Set up the directories This section descrcibes WAS administrative security and application-specific authorization. What we have set up so far is very basic. In reality, the administrative users should be kept separate from the general users. Similarly, if application roles and configurations are to be stored in the Active Directory, the Windows login performance is affected. Thus, having proven our login environment, we move to a more complex environment that can support administrative users with WebSphere file-based security, and a move from Active Directory to its smaller sibling Active Directory Application Mode (ADAM). We can add application-specific user information to ADAM and attach it to the core schema details we have from Active Directory. For this, the Federated Repository option is necessary; control of the joint security within WAS is through the WebSphere Identity Manager (WIM). Note: The same user ID cannot exist in more than one place. To set up the WebSphere file-based security: 1. Select Security → Secure administration, applications and infrastructure, as shown in Figure 2-22 on page 37. 2. Select Federated Repositories. 3. Click Configure. 36 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-22 Setting up the WebSphere file-based security 4. Enter a Realm name and a primary administrative user name, as shown in Figure 2-23 on page 38. When using a Federated Repository the primary administrative user must be configured in the file-based security file for the WIM rather than the directory. 5. Select the Ignore case for authorization option to allow the different repositories to map appropriately. Chapter 2. Active Directory Integration 37 Figure 2-23 Setting up the WebSphere file-based security 6. Click Add Base entry to Realm, which allows the setup of a new repository. At this point, we should explain that we originally configured access to the full Windows 2003 Server Active Directory so we could ensure that the Kerberos and LDAP information matched. This makes step-by-step problem determination easier. However, for production we want to use the Active Directory Application Mode LDAP environment with a copy of the core schema from Active Directory, mapped using Tivoli Identity Manager or Microsoft Identity Information Server, to which additional attributes are added to support the application requirements. 7. Click Add Repository, as shown in Figure 2-24 on page 39. 38 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-24 Setting up the WebSphere File Based Security 8. For our repository we select Microsoft Active Directory Application Mode, as shown in Figure 2-25 on page 40. 9. Set up the appropriate parameters such as bind parameters and TCP/IP connectivity information. Chapter 2. Active Directory Integration 39 Figure 2-25 Setting up for production 10.Administer the users from the repositories and map them to the appropriate roles. This is a function best reviewed in the WebSphere documentation. 2.2.10 Results for WebSphere Application Server single sign-on users A user should now be able to transparently log in to the WAS environment and access applications. A good test application to try is that of snoop, if it is configured. The key to knowing whether things have been successfully set up is when the value for the Remote User field matches the Windows login user ID. For all other applications, the successful result is a transparent login rather than a login form or an Unauthorized page returned. The Remote User maps to the value populated in the J2EE Servlet Web getRemoteUser() call. If this returns a null, as shown in Figure 2-26 on page 41, then the value is not being correctly passed through to the J2EE application. 40 Case Study: AIX and WebSphere in an Enterprise Infrastructure Figure 2-26 Testing the setup 2.3 Summary What we have done in this paper is simplified compared to the work required for a real enterprise, although this paper does discuss all of the major steps. The benefits are the reduced cost of user administration so that user security details are maintained in one place. The costs are further reduced if the addition of a user to the organization can result in the provisioning of a user setup automatically. For non-administrative users, authentication to different systems is now transparent and uses the Windows login to their machine. This process can provide real customer benefit in a branch office environment that is customer-facing. We have only used WebSphere Application Server in this paper, but the configuration is the same for most IBM WAS-based products, and many other application environments offer similar configuration features. Because we now have a single representation of a user, compliance is more easily achived. Chapter 2. Active Directory Integration 41 42 Case Study: AIX and WebSphere in an Enterprise Infrastructure Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this paper. IBM Redbooks For information about ordering these publications, see “How to get Redbooks” on page 43. Note that some of the documents referenced here may be available in softcopy only. WebSphere Application Server V6 Scalability and Performance Handbook, SG24-6392 Effective System Management Using the IBM Hardware Management Console for pSeries, SG24-7038 Hardware Management Console V7 Handbook, SG24-7491 WebSphere Application Server Network Deployment V6: High Availability Solutions, SG24-6688 PowerVM Virtualization on IBM System p: Introduction and Configuration Fourth Edition, SG24-7940 Implementing High Availability Cluster Multi-Processing (HACMP) Cookbook, SG24-6769 Using WebSphere Extended Deployment V6.0 To Build an On Demand Production Environment, SG24-7153 Online resources These publications are also relevant as further information sources: The WebSphere Application Server, Version 6.1 Information Center: http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp The IBM Systems Information Center: http://publib.boulder.ibm.com/infocenter/systems/index.jsp How to get Redbooks You can search for, view, or download Redbooks, Redpapers, Technotes, draft publications and Additional materials, as well as order hardcopy Redbooks, at this Web site: ibm.com/redbooks © Copyright IBM Corp. 2008. All rights reserved. 43 Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services 44 Case Study: AIX and WebSphere in an Enterprise Infrastructure Index Symbols /etc/security/ldap 25 /usr/lib/security 24 G gecos 14 gidnumber 14 groupname 14 GSS-API 2, 14 A Active Directory 13 Integration 11 Users and Computers tool 17 Active Directory Application Mode 12, 36 Active Directory Configuration 15 ADAM 12, 36 admingrp 26 application-specific authorization 36 Ascential 5 Authentication Service 13 authentication, KRB5A 20 B BMC Open Networks 27 BPEL 7 broker-in-a-box 3 C chsec 26 commands chsec 26 config.krb5 22 ktutil 22, 31 ldapsearch 25 mkitab 25 mkuser 23 setspn 20 start-secldapclntd 25 uname 21 config.krb5 22 context, enterprise 2 CSM 10 D DataPowerXI50 3 DataStage 5 DB2 3 DNS 22 E Enterprise Service Bus (ESB) 3, 5 ESB 3, 5 Extraction 5 F H HACMP 6 High Availability Cluster Multi-Processing (HACMP) 6 HMC 10 homedirectory 14 hosts 21 Hypervisor 8 I IBM DataStage 5 IBM Tivoli Access Manager 27 IBM Tivoli Directory Server 3, 12 IBM WebSphere Data Power XI50 3 Identity Information Server 12 Interceptors 29 Internet Explorer clients 26 J J2EE 2, 40 JVM 30 K KDC 4, 13 Kerberos 12 Kerberos Authentication 13 Kerberos RFC 1510 2 Key Distribution Center 4, 13 Keytab file 19 krb5.client.rte 21 krb5.conf, encryption types 22 krb5.keytab 22 KRB5A 20 ktpass 19 ktutil 22, 31 L lastupdate 14 LDAP client daemon 25 LDAP registry 34 LDAP Standalone Registry 34 LDAP Support, preparing AIX 24 ldap.client 24 ldap.max_crypto_client 24 ldapsearch 25 LDIF 16 FileNet 3 © Copyright IBM Corp. 2008. All rights reserved. 45 LDIF import 16 Lightweight Third Party Authentication 30 load 10 loginshell 14 LTPA 30 M Max Crypto Client 24 memberuid 14 methods.cfg 23 Microsoft Active Directory Application Mode 12 Microsoft Identity Information Server 12 Microsoft Object Linking and Embedding (OLE) 7 MIIS 12 MIT 13 mkitab 25 mkuser 23 MQ 6 N netsvc.conf 23 NIM 10 O OLE 7 Oracle 3, 12 overview 1 P Partitioning 8 pgrp 14 POSIX 12 PowerPoint 7 ProfileStage 5 Q QualityStage 5 T TAI 2, 4, 14 technical overview 1 TGS 13 Ticket Granting Service 13 ticket granting ticket 4 Tivoli Access Manager 27 Tivoli Directory Server 3, 12 Transformation 5 Trust Association Interceptor (TAI) 2, 4, 14 U uid 14 uidnumber 14 UiDP Enforcement Agent/TAI 27 uname 21 user accounts, adding 17 username 14 userpassword 14 Users and Computers tool 17 W WAS Administrative Security 36 WebSphere Application Server setting up for SPNEGO 27 WebSphere Data Power XI50 3 WebSphere Identity Manager 36 WebSphere MQ 6 WebSphere Process Server 7 WIM 36 Windows 2003 Server 12, 15 Windows Active Directory 13 Windows Internet Explorer 26 Windows Vista 2 Windows XP 2 Workload Partitions 8 WPAR 8 WSRP 7 R Redbooks Web site 43 Contact us vii RFC 1510 2, 12, 15 RFC 2307 2, 12, 14 S SAP 12 setspn 20 shadowlastchange 14 shell 14 single sign-on 40 spassword 14 SPNEGO 2, 4, 14, 26 start-secldapclntd 25 Symmetric Multiprocessing 10 46 Case Study: AIX and WebSphere in an Enterprise Infrastructure Back cover Case Study: AIX and WebSphere in an Enterprise Infrastructure Integrate AIX with Microsoft Active Directory-based authentication and directory services Use Microsoft Identity Information Server and Active Directory Application Mode LDAP ® Redpaper ™ This IBM Redpaper presents a technical case study describing, in detail, what a realistic enterprise-level application and system architecture would look like for an environment that provides AIX and Websphere-hosted applications that are integrated with Microsoft Active Directory-based authentication and directory services. INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION We recommend that readers of this paper also become familiar with the following IBM Redbooks publication: Running IBM WebSphere Application Server on System p and AIX Optimization and Best Practices, SG24-7347. In addition to the topics covered in that book, this paper provides a reference architecture and technical guide for the design and integration of highly available WebSphere applications hosted on AIX with Active Directory-based services. BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE Integration details from an actual enterprise scenario IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment. For more information: ibm.com/redbooks REDP-4436-00