...

Integrating SPNEGO with IBM Lotus Sametime Purvi Trivedi Stephen Shepherd

by user

on
Category: Documents
24

views

Report

Comments

Transcript

Integrating SPNEGO with IBM Lotus Sametime Purvi Trivedi Stephen Shepherd
Integrating SPNEGO with IBM Lotus Sametime
Purvi Trivedi
Advisory Software Engineer
IBM Software Group
Westford, MA USA
Stephen Shepherd
Senior Software Engineer
IBM Software Group
Bedford, NH USA
June 2009
© Copyright International Business Machines Corporation 2009. All rights reserved.
Abstract: Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO) enables
the single sign-on (SSO) mechanism for Microsoft® Windows® clients that are part of a
Microsoft Active Directory Domain. This white paper explains the steps necessary to
configure SSO for IBM® Lotus® Sametime® Connect clients and IBM Lotus Notes®
clients integrated with IBM Lotus Sametime, using SPNEGO.
Table of Contents
1 Overview........................................................................................................................... 3
2 Installing WebSphere Application Server 7.0 and configuring authentication with
Active Directory...................................................................................................................3
2.1 Installing WebSphere Application Server 7.0........................................................... 3
2.2 Configure WebSphere Application Server 7.0 to authenticate to Active Directory. 5
3 Configuring WebSphere Application Server 7.0 with SPNEGO..................................... 7
3.1 Configure SPNEGO on Active Directory server.......................................................7
3.2 Configure SPNEGO as Web Authenticator for WebSphere Application Server 7.0..
10
3.3 Enabling SSO for WebSphere Application Server 7.0........................................... 14
4 Configuring client machine browsers............................................................................. 16
4.1 For Internet Explorer 6.x and 7.x............................................................................ 16
4.2 For Mozilla Firefox 3.x........................................................................................... 17
4.3 Confirm WebSphere Application Server is configured correctly for SPNEGO..... 18
5 Configuring Lotus Sametime with Active Directory...................................................... 18
5.1 Advanced LDAP configuration during installation.................................................18
5.2 Advanced LDAP Configuration after the installation............................................. 25
6 Enabling SSO for Sametime server using WebSphere token........................................ 28
6.1 Generate and export Lightweight Third-party Authentication (LTPA) token.........28
6.2 Create Web SSO document on the Sametime Server............................................. 30
7 Enabling client applications for SPNEGO...................................................................... 31
7.1 Enabling Sametime Connect Client with SPNEGO................................................31
7.2 Enabling SPNEGO for the embedded Sametime in Notes Client........................... 33
8 Troubleshooting and testing............................................................................................ 33
8.1 Confirm SPNEGO is properly configured in WebSphere Application Server....... 33
8.2 Verify SSO is properly configured in WebSphere Application Server................... 37
8.3 Enable tracing in WebSphere Application Server................................................... 38
8.4 Verify SSO is properly configured in Lotus Sametime........................................... 40
8.5 Enabling Sametime debug....................................................................................... 42
9 Conclusion...................................................................................................................... 44
10 Resources...................................................................................................................... 44
11 About the authors.......................................................................................................... 45
1 Overview
This white paper is intended to serve as a “quick start” guide that explains how to:
•
•
•
enable SPNEGO in Microsoft Active Directory
configure IBM WebSphere® Application Server 7 to use SPNEGO
use a WebSphere Application Server token to enable Lotus Domino and extended
products like Sametime Connect Client and Lotus Notes to use SPNEGO.
Figure 1 illustrates the various client and server components and interactions that we
address in this paper. (NOTE: Information for this diagram was derived from the
Sametime 8.0 Information Center)
Figure 1. Client and server components/interactions
2 Installing WebSphere Application Server 7.0 and
configuring authentication with Active Directory
For this configuration we have WebSphere Application Server authenticating against
Active Directory.
2.1 Installing WebSphere Application Server 7.0
The steps below are designed to navigate you through the basic configuration, to get you
up and running quickly. If you need more details, refer to the WebSphere Application
Server Information Center topic, Installing your application serving environment.
1. Install from the installation image on the product media or from the downloaded
Passport Advantage® image (Part number C1G0QML).
2. Download the required fixes:
•
Update Installers: http://www-01.ibm.com/support/docview.wss?
uid=swg21205991
•
Latest Fixpack from Fix Central (at the time of this writing, FP3 was the latest):
http://www-933.ibm.com/eserver/support/fixes/fixcentral/swg/selectfixes
3. Start the install by launching launchpad.exe:
a. Navigate to the WebSphere Application Server Installation tab.
b. Select the “Launch the installation wizard for the WebSphere Application Server”
option.
4. As you proceed through the wizard, select the options appropriate for your
configuration. If any of the pre-requisite checks fail, look for the problem in the
WebSphere Application Server log files located under: C:\Documents and Settings
\Administrator\waslogs. In our configuration we:
•
•
•
•
•
Selected no optional features
Set the install location to E:\IBM\WebSphere\AppServer
Set the WebSphere Application Server environment to “Application Server”
Enabled administrative security and set the local administrator to “admin” and
password to “password”
Started the install
5. Once the install has successfully completed, start the server. If there are any errors,
check the logs under E:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1
\startServer.
To launch the server, use either:
•
The menu commands, Start > All Programs > IBM WebSphere > Application
Server v7.0 > Profiles > AppSrv01 > Start the server, or
•
The command line, navigating to E:\IBM\WebSphere\AppServer\bin and
issuing the command: startServer server1
6. Next, we need to install the Update Installer and the Fixpack that you downloaded in
the first step. However, before doing this we must stop the Application Server. If you
have enabled administrative security, you need to enter the credentials (admin/
password):
Using command line window, navigate to E:\IBM\WebSphere\AppServer\bin and
issue the command: stopServer server1 -user admin -password password
7. Launch the install.exe from the UpdateInstaller directory. In our configuration we
selected to install it under E:\IBM\WebSphere\UpdateInstaller.
8. Once the Update Installer is successfully installed, we need to copy all the fixes we
downloaded in the first step to E:\IBM\WebSphere\UpdateInstaller\maintenance.
9. Launch the Update Installer:
a. Start > All Programs > IBM WebSphere > Update Installer for WebSphere v7.0
Software > Update Installer.
b. Select 'Install maintenance package'; the Directory path should be the same as that
in Step 7.
c. Select applicable packages (In our case we selected, 7.0.0-WS-WAS-WinX32FP0000003.pak)
d. Select to install the maintenance package(s)
10.Once the installation of the latest maintenance packs completes, start the server. Now
we are ready to enable security.
2.2 Configure WebSphere Application Server 7.0 to authenticate
to Active Directory
To enable security, follow these steps:
1. Launch the WebSphere Application Server console, using Start > All Programs IBM
WebSphere > Application Server v7.0 > Profiles > AppSrv01 > Administrative
console. An example of the URL might be: https://vmpewas.notesdev.ibm.com:9043/
ibm/console.
2. Authenticate using the administrator's ID and password created during installation of
WebSphere Application Server, for example, admin/password.
3. Navigate to Security > Global Security, and click the Security Configuration Wizard
button:
a. For Specify extent of protection, select “Enable application security”; click Next.
b. For User repository, select the repository that has the users and groups used for
authentication. In our case we selected “Standalone LDAP registry”.
c. Populate the Configure standalone LDAP registry dialog box (see figure 2).
Figure 2. Configure standalone LDAP registry
where the field Primary administrative user name = wsadmin, Type of LDAP
server = Microsoft Active Directory, Host = vmpeAD.notesdev.ibm.com, and Port
= 389.
The Base DN in this environment is:
DC=pelab,DC=notesdev,DC=ibm,DC=com
The Bind DN is:
CN=wasadmin,CN=users,DC=pelab,DC=notesdev,DC=ibm,DC=com
d. Select “Step 4: Summary” to ensure all settings look correct; click Finish.
4. Now we need to confirm that security is enabled. To do this, restart WebSphere
Application Server and try to view the status of the server, using the Command line
argument: serverStatus -all.
5. This time you will be prompted for a username/password (see figure 3). This user
should exist in your LDAP repository; in our case, we used wasadmin/Pa88w0rd,
which was previously created in the LDAP directory.
Figure 3. Username/password prompt
Being able to log in with your LDAP user confirms security is enabled correctly.
6. Another way to test whether security is enabled is to launch the WebSphere
Application Server console, using Start > All Programs IBM WebSphere >
Application Server v7.0 > Profiles > AppSrv01 > Administrative console.
If you try to log in using the old admin/password; it will fail. Now try to log in with the
username and password specified in your LDAP, for example, wasadmin/Pa88w0rd.
You should be able to log in successfully.
3 Configuring WebSphere Application Server 7.0 with
SPNEGO
SPNEGO Web Authentication is a new feature in WebSphere Application Server 7.0. If
you are using version 6.x, then you must use Trust Association Interceptor (TAI) to
configure WebSphere Application Server for SPNEGO. For more details, refer to the
Techdocs Library white paper, “WebSphere with a side of SPNEGO.”
3.1 Configure SPNEGO on Active Directory server
All client machines must be part of the same Active Directory domain as Active
Directory server. (If client machines are in a different domain, the Active Directory
servers must be cross-certified.) Here are the steps to configure an Active Directory
identity for WebSphere Application Server:
1. Create a User ID for WebSphere Application Server. This ID can be the name of your
machine, for example, VMPEWAS; however, it cannot be the ID that is used to enable
WebSphere Application Server security (in our case, for example, we cannot use
wasadmin).
This newly created ID will be used by WebSphere Application Server to authenticate
with Active Directory.
NOTE: Under Account options in the Account tab, select “'Password never
expires” (see figure 4). If this option is not selected, you will be required to generate a
new key each time the password changes.
Figure 4. Create User account
2. Now we need to map the account created in Step 1 to the Kerberos Service Principal
Name (SPN) and create the keytab file that WebSphere Application Server will use to
log in to the Active Directory domain:
On the Active Directory machine, open a command line and issue the “ktpass”
command as follows:
ktpass -out <keyfile name> -princ HTTP/fully qualified hostname@AD
DOMAIN NAME -mapuser <AD user> -pass <password> -ptype
KRB5_NT_PRINCIPAL
NOTE: “HTTP” and the Active Directory domain name must be in capital letters for
this command; if you use lower case, authentication will fail.
For our environment the command looks like that shown in figure 5.
Figure 5. “ktpass” command output
3. Next, check the user account properties for vmpewas. The User logon name (see figure
6) should have been changed to the SPN name, confirming the SPN is mapped to user
account vmpewas.
Doing this mapping informs Active Directory that any authenticated client machine in
the PELAB.NOTESDEV.IBM.COM domain, using HTTP or HTTPs to talk to
WebSphere Application Server vmpewas.notesdev.ibm.com, will authenticate to the
newly created vmpewas account.
Figure 6. User logon name
4. Now we must move the vmpewas.keytab created in Step 2 from the Active Directory
server to WebSphere Application Server (we placed ours under E:\IBM
\vmpewas.keytab).
3.2 Configure SPNEGO as Web Authenticator for WebSphere
Application Server 7.0
In this section we enable SPNEGO as the Web Authenticator for WebSphere Application
Server. First, make a note of the location of the keytab file copied over from the Active
Directory server, for example, E:\IBM\vmpewas.keytab.
1. Using the keytab file, we need to set up the Kerberos configuration file:
a. Start WebSphere Application Server.
b. From the Command line, change directory to the Application server bin directory,
that is, E:\IBM\WebSphere\AppServer\bin.
c. Run wsadmin; enter the username/password to authenticate.
d. Issue the following AdminTask command to create the Kerberos configuration file:
$AdminTask createKrbConfigFile {-krbPath <config file name> –realm
<KERBEROS REALM> -kdcHost <AD hostname> -dns <dns domain> –
keytabPath /etc/krb5/<keytab filename>}
where:
•
•
•
•
•
krbPath flag points to the location where you want the krb5.ini placed,
realm flag corresponds to the Active Directory domain and it must be capital
letters,
kdcHost flag is the hostname of Active Directory server,
dns flag is the dns domain, and
keytabPath is the path to the keytab file we copied over from the Active
Directory server (see figure 7).
Figure 7. keytabPath example
Note that krb5.ini is used by WebSphere Application Server to authenticate to Active
Directory (see figure 8).
Figure 8. Example krb5.ini authentication
2. Now let's enable WebSphere Application Server security with SPNEGO:
a. From the WebSphere Application Server administrative console page, select
Security > Global Security, and under Authentication, go to Web and SIP Security,
and select SPNEGO Web authentication (see figure 9).
Figure 9. Enabling SPNEGO Web authentication
b. Select the options “Dynamically update SPNEGO” and “Enable SPNEGO” (see
figure 10).
c. The “Kerberos configuration file with full path” field is the path to the file we
created in Step 2, for example, E:\IBM\krb5.ini.
d. The “Kerberos keytab file with full path” is the path to the file we copied over
from Active Directory server to WebSphere Application Server, for example, E:
\IBM\vmpewas.keytab.
Figure 10. SPNEGO Web authentication properties
e. Under SPNEGO filters, click New, to create a new SPNEGO filter for
vmpewas.notesdev.ibm.com (see figure 11). Here, “Host name” is the name of
your WebSphere Application Server, and “Kerberos realm name” is the name of
the Active Directory realm, which must be in capital letters. Also, the option
“Trim Kerberos realm from the principal” must be enabled for this to work.
Figure 11. New SPNEGO filter properties
3. Click OK and click Save, and then restart WebSphere Application Server; it is now
configured with SPNEGO.
3.3 Enabling SSO for WebSphere Application Server 7.0
We now enable SSO for WebSphere Application Server:
1. From the administrative console page, select Security > Global Security, and under
Authentication, go to Web and SIP Security and select Single sign-on (SSO), as shown
in figure 12.
Figure 12. Enabling SSO
2. Under General Properties, select Enabled, and in the Domain name field enter the
DNS Domain name (see figure 13).
3. Click OK and click Save.
Figure 13. SSO properties
.
4 Configuring client machine browsers
Log in to the Active Directory domain on the client machine. Before we can validate that
WebSphere Application Server is configured correctly to use SPNEGO, we must change
some browser settings.
4.1 For Internet Explorer 6.x and 7.x
1. Select Tools > Internet Options > Security > Local Intranet > Sites > Advanced. Add
the SSO domain here (see figure 14).
Figure 14. Add SSO domain
2. Now select Tools > Internet Options, click the Advanced tab, and under Settings,
check the option “Enable Integrated Windows Authentication” (see figure 15).
Figure 15. Enable Integrated Windows Authentication
3. Restart the browser; now we're all set.
4.2 For Mozilla Firefox 3.x
1. Type “about:config” in the address bar. A warning displays; click OK on the warning.
2. Set the filter to “auth”, and set the values of “network.negotiate-auth.delegation-uris”
and “network.negotiate-auth.trusteduris” to the SSO domain, notesdev.ibm.com (see
figure 16).
Figure 16. Set SSO domain
3. Restart the browser; you're all set.
4.3 Confirm WebSphere Application Server is configured
correctly for SPNEGO
1. Log in to your Windows client that is part of Active Directory Domain.
2. Open a browser and enter the URL http://vmpewas.notesdev.ibm.com/snoop.
3. You should not be prompted to enter your username and password; however, if you are
prompted to enter your log-in credentials, refer to the Troubleshooting and testing
section at the end of this paper.
5 Configuring Lotus Sametime with Active Directory
Lotus Sametime authentication with Active Directory can be completely configured
during the installation, or you can choose to perform the advanced configuration after the
installation. Both methods are discussed below.
5.1 Advanced LDAP configuration during installation
During the installation of the Sametime server, the screen “Select the directory to use for
collaboration” will display (see figure 17).
1. Select LDAP Directory, enter the fully qualified host name of the Active Directory
server in the LDAP Server Name field, and place a check the Advanced LDAP
Configuration checkbox.
NOTE: If you want to perform the Advanced LDAP configuration, proceed to Section
5.2, “Advanced LDAP Configuration after the installation” below.
Figure 17. Select the LDAP directory for collaboration
2. Click Next; the “Specify how to bind the Sametime server to the LDAP directory”
screen displays (see figure 18).
Figure 18. Specify how to bind Sametime server to LDAP directory
3. Select the Authenticated access radio button, and enter the full LDAP distinguished
name of the user in the Active Directory who has at least Read access, and enter that
person's password. (You may need to check with your Active Directory administrator
to obtain this information.)
4. Click the Test Connection button. If everything is configured correctly, a dialog box
should display stating “LDAP connection succeeded”.
5. Click OK and then click Next; the “Specify the authentication setting for Sametime
users to authenticate with an LDAP directory” screen displays (see figure 19).
Figure 19. Specifying authentication setting for Sametime users
6. The “Search filter to resolve a user name to a distinguish name” field should be:
(&(objectclass=organizationalPerson)(|(cn=%s)(sn=%s)(samAccountName=%s)
(mail=%s)))
7. The “Attribute in LDAP directory containing home Sametime server” field can be left
blank for our purposes. (This field is required if you have a Sametime community with
multiple servers. This may require a schema modification to add a new attribute, and
schema modification is beyond the scope of this paper.)
8. The “Sametime Administrator account in LDAP directory” field is needed for policies.
This name can be the same as the bind distinguish name specified previously, or it can
be any other administrator's LDAP distinguish name.
9. Click Next; the “Specify the search and filter criteria for people” screen displays (see
figure 20).
Figure 20. Specify the search and filter criteria for people
10. The “Search filter for selecting a name of a person from the LDAP directory” field
should be:
(&(objectclass=organizationalPerson)(|(cn=%s*)(sn=%s*)(samAccountName=%s*)
(mail=%s*)))
11. Enter the base object to start searching for persons. This base depends on your Active
Director tree structure.
12. Leave the “Policy search filter for base membership” field blank and click Next; the
“Specify the basic LDAP settings used for people entries” screen displays (see figure
21).
Figure 21. Specify the basic LDAP settings used for people entries
13.You can accept the defaults here; click Next. The “Specify the search and filter criteria
for groups” screen displays (see figure 22).
Figure 22. Specify the search and filter criteria for groups
14. Enter the following for the search filter for selecting groups:
(&(objectclass=group)(cn=%S*))
15. Enter the base object to start searching groups. Again, the base depends your Active
Directory tree structure.
16. The “Policy search filter for group membership” field should be entered as an
attribute member, instead of an actual search filter. The Sametime policy task will
examine this field and, since it is not a search filter, it will request this attribute when
searching for users and groups. This improves performance.
17. Click Next; the “Specify the basic LDAP settings used for group entries” screen
displays (see figure 23)
Figure 23. Specify the basic LDAP settings used for group entries
18. Accept the default for the Attribute that defines the display name of a group field.
Specify the group object class as “group”, and specify the attribute in the group object
that has the names of group members as “member”.
19. Click Next to proceed with the rest of the installation.
20. Once the installation is complete, start the Sametime server.
21. Using the Domino Administrator client, open the Directory Assistance database
(DA.nsf) and open the LDAP document.
22. Click the Edit Document button and click the LDAP Tab; a screen similar that shown
in figure 24 displays.
Figure 24. LDAP tab for the DA.nsf database
23.Change the “Base DN for search” field from
cn=users,dc=pelab,dc=notesdev,dc=ibm,dc=com
to
DC=pelab,DC=notesdev,DC=ibm,DC=com.
24. At the bottom of the screen, click the drop-down arrow next to the “Standard LDAP”
field value and select Active Directory (see figure 25) .
Figure 25. Changing the “Type of search filter to use” field
25. Click OK, and click the Save and Close button.
5.2 Advanced LDAP Configuration after the installation
If you did not select advanced LDAP configuration during the installation, you can do it
by using the Domino Administrator client. The installation creates an LDAP document in
the stconfig.nsf database and a directory assistance database named da.nsf:
1. Make sure the Sametime Server is started.
2. Start the Domino Administration Client; this can be done via any server in your
Domino domain.
3. Select the File > Open Server menu, enter the Sametime server, and click OK.
4. Click the Files tab and open the database stconfig.nsf.
5. Edit the LDAP document, modifying the fields as outlined in figure 26.
Figure 26. LDAP document fields
LDAP Server Settings:
Connection Settings
Organization Name:
Network Address of LDAP Connection: vmpead.notesdev.ibm.com
Port number for LDAP Connection: 389
Login Name for LDAP Connection: cn=Directory
Administrator,cn=users,dc=pelab,dc=notesdev,dc=ibm,dc=com
Password for LDAP Connection: Pa88w0rd
SSL Enabled: false
SSL Port: 636
Search Order: 1
Search Filters
Search filter for resolving person names:(&(objectclass=organizationalPerson)(|(cn=%s*)(sn=%s*)
(sAMAccontName=%s*)(mail=%s*)))
Search filter to use when resolving a user name to a distinguished name: (&
(objectclass=organizationalPerson)(|(cn=%s)(sn=%s)(sAMAccountName=%s)(mail=%s)))
Search filter for resolving group names: (&(objectclass=group)(cn=%s*))
Search Base and Scope
Base Objects
Base object when searching for person entries:
cn=users,dc=pelab,dc=notesdev,dc=ibm,dc=com
Base object when searching for group entries:
ou=groups,dc=pelab,dc=notesdev,dc=ibm,dc=com
Scope
Scope for searching for a person: recursive
Scope for searching for groups: recursive
Schema Settings
People
Groups
The attribute of the person entry that defines the internal ID of a Sametime user:
The attribute of the person entry that defines the person's name: cn
Attribute used to distinguish between two similar person names:
Attribute of the person entry that defines the person's e-mail address: mail
The person object class used to determine if an entry is a person: organizationalPerson
Attribute used to distinguish between two similar group names:
The attribute of the group entry that defines the group’s name: cn
Attribute in the group object class that has the names of the group members: member
The group object class used to determine if an entry is a group: group
Home Server
Name of the Home Server Attribute:
Membership
GroupMembership: memberof
BaseMembership:
6. Save the document and then open the Directory Assistance database da.nsf.
7. Click the LDAP tab and modify the fields as shown is shown in figure 27.
Figure 27. LDAP tab of DA.nsf database
8. Click the Save and Close button.
9. Add the Sametime administrator that is defined in the LDAP repository to the ACL of
the stconf.nsf and stconfig.nsf databases. If the Sametime administrator's LDAP DN is
cn=Sametime Administrator,cn=users,dc=pelab,dc=notesdev,dc=ibm,dc=com
then add the administrator to the ACLs, replacing the commas with forward slashes
(see figure 28):
cn=Sametime Administrator/cn=users/dc=pelab/dc=notesdev/dc=ibm/dc=com
Figure 28. Access Control List for Sametime Configuration database
10. Restart the Sametime Server.
11. Install a Lotus Sametime Connect client and make sure you can log in to Sametime
using a valid Active Directory user account.
12. Open a browser and access Sametime with an URL similar to the following:
http://vmpest.notesdev.ibm,com/stcenter.nsf
and log in with a valid Active Directory account.
6 Enabling SSO for Sametime server using WebSphere
token
Let's now enable SSO for Sametime server using a WebSphere token.
6.1 Generate and export Lightweight Third-party Authentication
(LTPA) token
1. To export the WebSphere Portal token, log in to the WebSphere Application Server
console, select Security > Global Security, and under Authentication, select LTPA (see
figure 29).
Figure 29. LTPA authentication
2. Under the Key generation section, set the “Key set group” field to
NodeLTPAKeySetGroup and click the Generate keys button (see figure 30).
Figure 30. Key generation
3. Under Cross-cell single sign-on, set the password and the fully qualified key file name,
and click the Export keys button (see figure 31).
Figure 31. Cross-cell single sign-on
4. Confirm that a Messages dialog comes up stating “The keys were successfully
exported to the file C:\ibm\vmpewas.ltpa.”
5. Now we copy over vmpewas.ltpa to a machine that has the Domino Administration
Client, so that we can configure SSO using this WebSphere token.
6.2 Create Web SSO document on the Sametime Server
1. Start the Domino Administration Client, select File > Open Server, and enter the
name of the Sametime Server.
2. Select Configuration, expand Servers, and All Servers.
3. Click Web > Create Web SSO Configuration.
4. Click Keys > Import WebSphere LTPA Keys (see figure 32).
Figure 32. Import WebSphere LTPA Keys
5. Type in the path and the name of the LTPA key file, as shown in figure 33.
Figure 33. Enter Import File name
6. Type in the password; the key should be imported.
7. Make sure the Configuration Name field is “LtpaToken” (see figure 34).
8. Enter the DNS domain to your domain name and then set the “Map names in LTPA
tokens” field to Disabled.
9. Add all the Sametime servers to the Domino Server Names list. All the data in the
WebSphere Information section will populate automatically after importing the
WebSphere token.
Figure 34. LtpaToken Configuration document
10. Save the document.
11. Open the Edit the Server document.
12. Click the Internet Protocol tab and then the Domino Web Engine tab.
13. Change the Session authentication to Multiple Servers (SSO) and ensure the Web
SSO configuration field is set to LtpaToken.
14. Save the document and restart the server.
7 Enabling client applications for SPNEGO
Here we discuss how to enable client applications for SPNEGO.
7.1 Enabling Sametime Connect Client with SPNEGO
1. Start the Sametime Connect client, and from the menu select File > Preferences >
Server Communities, Create a new server community.
2. On the Log In tab (see figure 35), select the “Use token based single sign-on” option.
Set the Authentication server URL field to your WebSphere Application Server
hostname/snoop and set Authentication type to “SPNEGO”.
Figure 35. New Server Community Log In tab
3. On the Server tab (see figure 36), set the Host server field to the Sametime server.
Figure 36. New Server Community Server tab
4. Click OK; you should now be able to log in to the Sametime Connect client without
entering a username or password (see figure 37).
Figure 37. Sametime Connect log in
7.2 Enabling SPNEGO for the embedded Sametime in Notes
Client
1. Start the Notes client and select File > Preferences > Sametime > Server Communities.
2. The setting here will be exactly the same as shown above in Section 7.1 above.
Once these settings are in place, Sametime authentication should work without needing a
username and password (see figure 38).
Figure 38. Sametime in Notes client log in
8 Troubleshooting and testing
8.1 Confirm SPNEGO is properly configured in WebSphere
Application Server
1. Log in to your Windows client and open Internet Explorer.
2. Select Tools > Internet options from the menu, and click the Advanced tab.
3. Scroll down to the Security section and make sure “Enable Integrated Windows
Authentication” is enabled.
4. Now select Tools > Internet Options > Security tab > Local intranet; click Sites, click
Advanced, and add the SSO domain in the Local intranet dialog box (see figure 39).
Figure 39. Add SSO domain web site
5. Start Wireshark, which can be downloaded from http://www.wireshark.org/
download.html, and select Capture > Interfaces from the menu.
6. Select the correct adapter and then click the Start button.
7. Restart the browser if you made changes in step 5 or 6.
8. Enter the URL http://vmpewas.notesdev.ibm.com/snoop and stop Wireshark, using
Capture > Stop.
9. Obtain the IP address of your Active Directory domain controller.
10. In the Filter field, enter http, and then click Apply. Navigate to the lines
GET /snoop HTTP/1.1
HTTP/1.1 401 Unauthorized (text/html)
11. Highlight the HTTP/1.1 401 Unauthorized packet; you'll notice WWW-Authenticate:
Negotiate\r\n (see figure 40).
Figure 40. WWW-Authenticate: Negotiate\r\n
12. Navigate to and highlight the second GET /snoop HTTP/1.1, and in the detail packet
window you can see the SPNEGO Token (see figure 41).
Figure 41. SPNEGO Token
13. If SPNEGO is not configured, the HTTP/1.1 Unauthorized packet will show WWWAuthenticate: Basic Realm (see figure 42).
Figure 42. Basic Realm
8.2 Verify SSO is properly configured in WebSphere Application
Server
Assuming you have confirmed that SPNEGO is properly configured, perform the
following steps to confirm the same for SSO:
1. Log in to your Windows client and open Internet Explorer.
2. Start Wireshark and select Capture > Interfaces.
3. Select the correct adapter then click the Start button.
4. Enter the URL http://vmpewas.notesdev.ibm.com/snoop and stop Wireshark, using the
Capture > Stop menu items.
5. Obtain the IP address of your Active Directory domain controller.
6. In the Filter field, enter “http” and click Apply. Navigate to the HTTP/1.1 OK packet,
and in the detail packet window, notice LtpaToken2 and LtpaToken (see figure 43).
Figure 43. LtpaToken2 and LtpaToken
If the HTTP 200 response does not contain the tokens, then SSO is not set up
correctly.
7. Log in to the administrator console via the URL https://vmpewas.notesdev.ibm.com:
9043/ibm/console.
8. Select Security > Global Security, and expand Web and SIP security.
9. Click Single Sign-on (SSO) and make sure Enabled is checked. If it is checked, and
you received HTTP 403 forbidden error or you are prompted for username and
password at log in, there maybe a problem validating the credentials with the Active
Directory, in which case, you should enable tracing.
8.3 Enable tracing in WebSphere Application Server
1. Log in to the administrator console via the URL
https://vmpewas.pelab.notesdev.ibm.com:9043/ibm/console
2. Expand the Troubleshooting section and click Logs and trace.
3. Click the Server (server1), click Diagnostic Trace, and click Change Log Detail levels.
4. Enter *=info: com.ibm.ws.security.spnego.*=all: com.ibm.ws.security.ltpa.*=all
5. Stop WebSphere Application Server.
6. Navigate to the Log directory, for example, C:\IBM\WebSphere\AppServer\profiles
\AppSrv01\logs\server1, and either delete trace.log or rename trace.log, if present.
7. Start WebSphere Application Server and log in to your Windows client.
8. Open Internet Explorer and enter the URL http://vmpewas.notesdev.ibm.com/snoop.
9. On WebSphere Application Server, examine the trace.log file. You may see something
similar to the following:
[5/11/09 16:06:41:776 EDT] 00000015 LdapRegistryI E SECJ0362E: Cannot
create credential for the user [email protected].
In this case the problem occurs because an LDAP Search was performed with a search
filter [email protected] and
objectcategory=user. We can see this by using Wireshark:
a. Start Wireshark on WebSphere Application Server and select Capture > Interfaces.
b. Select the correct adapter then click the Start button.
c. Log in to the Windows client and open Internet Explorer.
d. Enter the URL http://vmpewas.notesdev.ibm.com/snoop.
e. Stop Wireshark, using Capture > Stop, enter “ldap” in the Filter field, and click the
Apply button (see figure 44).
Figure 44. LDAP capture
10. To correct the problem, log in to the WebSphere Application Server administrator's
console.
11. Click Security > Global Security, and expand Web and SIP security.
12. Click SPNEGO Web Authentication and click the host name in SPNEGO Filters.
13. Check the box next to the option “Trim Kerberos realm from principal name”.
14. Click OK and click Save.
15. Log out of the administrator client and stop WebSphere Application Server.
16. Restart WebSphere Application Server.
8.4 Verify SSO is properly configured in Lotus Sametime
1. Log in to your Windows client and open Internet Explorer.
2. Enter the URL http://vmpewas.notesdev.ibm.com/snoop.
3. Change the URL to access stcenter.nsf on the Sametime server, using a URL such as
http://vmpest.notesdev.ibm.com/stcenter.nsf
You should see yourself logged in (see figure 45).
Figure 45. Welcome screen
4. If you do not see yourself logged on, make sure SSO has been properly enabled on the
Sametime server.
5. Also, you can enable debug by setting the Notes.ini parameters, as follows:
debug_sso_trace_level=3
enable_console_log=1
6. Restart the Sametime server and repeat Steps 1 through 3.
7. Open console.log on the Sametime server. This is in the IBM_Technical_Support
directory under the Domino data directory.
8. The console.log might show output like:
05/13/2009 09:26:32.82 AM [17BC:0012-08C4] SSO API> Token does not lead with 0
[Single Sign-On token is invalid].
05/13/2009 09:26:32.82 AM [17BC:0012-08C4] SSO API> ERROR: when decoding
Domino LtpaToken [Single Sign-On token is invalid].
The error (in bold) occurs when the Web SSO document in the Domino directory is
created with a Domino key.
Also, there could be a problem decrypting a WebSphere style, in which case the
console.log might look similar to the following:
05/13/2009 02:16:25.21 PM [0DC8:0017-0FA0] SSO API> Decrypt WebSphere style
Single Sign-On token (LTPA). [0] != u.
05/13/2009 02:16:25.21 PM [0DC8:0017-0FA0] SSO API> ERROR: when decoding
LtpaToken [Single Sign-On token is invalid].
05/13/2009 02:16:25.21 PM [0DC8:0017-0FA0] SSO API> *** Freeing Single Sign-On
Token List (SECTokenListFree) ***
05/13/2009 02:16:25.21 PM [0DC8:0017-0FA0] SSO API> *** Freeing Single Sign-On
Token (SECTokenFree) ***
05/13/2009 02:16:25.21 PM [0DC8:0017-0FA0] SSO API> *** Freeing Single Sign-On
Token (SECTokenFree) ***
05/13/2009 02:16:25.34 PM [0DC8:0017-0FA0] SSO API> *** Validating Token List
(SECTokenListValidateAndGetInfo) ***
9. To resolve the problem, you could export the LTPAToken from WebSphere
Application Server and recreate the Web SSO document on the Sametime server.
The console.log should look similar to the following when SSO is configured
correctly on the Sametime Server:
05/13/2009 02:51:00.78 PM [0D08:0012-0F2C] SSO API> -Raw Token Username =
CN=wasadmin,CN=Users,dc=pelab,dc=notesdev,dc=ibm,dc=com
05/13/2009 02:51:00.78 PM [0D08:0012-0F2C] SSO API> -LDAP Realm
=
vmpe07.notesdev.ibm.com\:389
05/13/2009 02:51:00.79 PM [0D08:0012-0F2C] SSO API> -Username
=
CN=wasadmin/CN=Users/dc=pelab/dc=notesdev/dc=ibm/dc=com
05/13/2009 02:51:00.79 PM [0D08:0012-0F2C] SSO API> -Raw Token Username =
CN=wasadmin,CN=Users,dc=pelab,dc=notesdev,dc=ibm,dc=com
05/13/2009 02:51:00.79 PM [0D08:0012-0F2C] SSO API> -Expiration Ticks =
1242247860666 [05/13/2009 04:51:00 PM].
8.5 Enabling Sametime debug
At times it may be desirable to enable debug on the Sametime server. To do this:
1. Add the following to the Notes.ini:
ST_DEBUG_FILE_NAME={Install Directory}\trace\stnotes.txt
2. Add the following to the Sametime.ini under the [Debug] section:
VP_LDAP_TRACE=1
VP_REG_TRACE=1
VP_AUTH_TRACE=1
STLINKS_DEBUG_LEVEL=5
3. Stop the Sametime server and delete the contents of the \Install Directory\trace folder.
4. Restart the Sametime server and examine stnotes.txt. The following is output in
stnotes.txt for a successful log on:
String <size=0>:
Calling LtpaDecodeToken
Calling decode using: g_pfnLTPADecode
LtpaDecodeToken returned with status (0)
User ID from the client User ID from the token- CN=wasadmin/CN=Users/dc=pelab/dc=notesdev/dc=ibm/
dc=com
Token - OA
+f0UbasVMyD7RibMWGKj9xEoNKndJDi0mtiaaL6LEc9yV1SZNZcLKglKFBaGpD3
+XJBk7iO62wDh9W8IO5kaX5Whq2+uz5VUXYmcxWxRMGPo/
QsL4agEOGhSvgVo2jhgrixe23dVpGwr9G
+CKuDNi3CIunPlGaLJ8kLu0wzY9NwNHCZkc0Od3CL00SDtUQBOeV+aUYv
+YOE3W4d9vX7oV4vGujzIaGtVs+e4LLGmxViXGNhb8p2WzLEbkNcBQGj+K3C
+FB4UrbLH2cCatTGxQ7/jRjFhgKHkJtrNb
+QQreTf1MvJugn31GipRcaA5CABq8AWxdv4rPzaeTlpBoSXNGD6SX61I4GvZKQgd
GCSPcytHZfT0E/Q==
getUserId: arguments: originalUser[] userFromToken[CN=wasadmin/CN=Users/
dc=pelab/dc=notesdev/dc=ibm/dc=com]
getUserId: about to resolve : [CN=wasadmin/CN=Users/dc=pelab/dc=notesdev/dc=ibm/
dc=com]
getUserDocFieldVal() Start. userName = CN=wasadmin/CN=Users/dc=pelab/
dc=notesdev/dc=ibm/dc=com
getUserDocFieldVal() after getLookupInfo rc: 0.
getUserDocFieldVal() End. rc: 0.
getUserId: resolved name [CN=wasadmin/CN=Users/DC=pelab/DC=notesdev/DC=ibm/
DC=com]
getUserId: return resolved userId [CN=wasadmin/CN=Users/DC=pelab/DC=notesdev/
DC=ibm/DC=com], taken from LTPA token
Verify LTPA token succeeded
String <size=55>:
43 4e 3d 77 61 73 61 64 6d 69 6e 2f 43 4e 3d 55 73 65 72 73 2f 64 63 3d
70 65 6c 61 62 2f 64 63
3d 6e 6f 74 65 73 64 65 76 2f 64 63 3d 69 62 6d 2f 64 63 3d 63 6f 6d
Request status(0)
However, if there is a failure, the stnotes.txt could show:
Calling LtpaDecodeToken
Calling decode using: g_pfnLTPADecode
LtpaDecodeToken returned with status (1212)
Verify LTPA token failed
Verify secrets token failed
Request status(36866)
5. Now examine the StUsers_yymmdd_hhmm_tttt_000.txt file. The following is output
after a successful log on:
090513_172626,INF,LDAP Aut,Looking up
CN=wasadmin,CN=Users,DC=pelab,DC=notesdev,DC=ibm,DC=com
090513_172626,INF,LDAP Aut,---- Thread ID: 3896
090513_172626,INF,LDAP Aut,User
CN=wasadmin,CN=Users,DC=pelab,DC=notesdev,DC=ibm,DC=com looked up
090513_172626,INF,LDAP Aut,---- Thread ID: 5324
090513_172626,INF,LDAP Aut,calling verifyToken for []
090513_172626,INF,LDAP Aut,user [] successfully authenticated by token
090513_172626,INF,LDAP Aut,Async auth done. [req -1] [code 0] [user
CN=wasadmin,CN=Users,DC=pelab,DC=notesdev,DC=ibm,DC=com] [name
wasadmin] [home ] [organization ]
9 Conclusion
You should now have a good idea of how to enable SPNEGO on Active Directory, how
to configure WebSphere Application Server 7 to use SPNEGO, and how to use a
WebSphere Application Server token to enable Lotus Domino, the Sametime Connect
client, and Lotus Notes to use SPNEGO.
10 Resources
•
IBM Lotus Sametime 8 Information Center:
http://publib.boulder.ibm.com/infocenter/sametime/v8r0/index.jsp
•
WebSphere Application Server 7 Information Center:
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/
com.ibm.websphere.base.doc/info/welcome_base.html
•
Lotus Support Technote #1240710, “Sametime LDAPServer document”:
http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg21240710
•
developerWorks article, “Implementing SPNEGO TAI single sign-on for WebSphere
applications with z/OS and Windows Kerberos trusted realms”:
http://www.ibm.com/developerworks/websphere/techjournal/0707_rogers/
0707_rogers.html
•
IBM Redbooks publication, “WebSphere Application Server V7: Concepts, Planning
and Design”:
http://www.redbooks.ibm.com/abstracts/SG247708.html?Open
•
developerWorks Lotus Sametime product page:
http://www.ibm.com/developerworks/lotus/products/instantmessaging/?
S_TACT=105AGX13&S_CMP=LP
•
developerWorks WebSphere Application Server zone:
http://www.ibm.com/developerworks/websphere/zones/was/
11 About the authors
Purvi Trivedi is an Advisory Software Engineer and has been with IBM since 2003.
Focusing on integration and interoperability issues across the Workplace, Portal, and
Lotus Collaboration (WPLC) portfolio, she works closely with customers and Support to
provide cross-product solutions. As part of the Quality team, she drives initiatives to
identify quality gaps and improve the integration of WPLC's products.
She is passionate about virtualization, presenting at various conferences on best practices
for virtualizing Lotus Domino and Lotus Sametime. Purvi has an MS in Software
Engineering from Brandeis University and a BSc in Computer Science from UMass,
Amherst.
Stephen Shepherd is a Senior Software Engineer in IBM's Software Group. He has five
years of experience supporting cross-product integration issues and five years of
experience working with the Support Engineering team.
Prior to joining IBM he spent twenty-two years in software development, holding various
positions including Software Architect. Stephen was a contributor for WebSphere Portal
Collaboration Security Handbook, and a contributing author of the Sametime 7.5.1 Best
Practices for Enterprise Scale Deployment Redbooks publication. He holds a Master’s
degree in Mathematics.
Trademarks
•
IBM, Lotus, Notes, Passport Advantage, Redbooks, Sametime, and WebSphere are
trademarks or registered trademarks of IBM Corporation in the United States, other
countries, or both.
•
Microsoft and Windows are registered 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 Sun Microsystems, Inc. in the United States, other countries, or both.
•
Other company, product, and service names may be trademarks or service marks of
others.
Fly UP