IBM Support

How to configure Single Sign On (SSO) Authentication with IBM® Maximo® 7.6.x

Technical Blog Post


Abstract

How to configure Single Sign On (SSO) Authentication with IBM® Maximo® 7.6.x

Body

For testing purposes, you can set up IBM® Maximo® 7.6.x with SSO configuration.

There are 3 parts to configure SSO.

Part 1: Install Domain Name System (DNS) and Microsoft Active Directory (AD) Services on Microsoft Windows Server

Part 2: Install IBM® Maximo® Asset Management and Middleware

Part 3: Configure SSO for Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO)


Part 1:  Install DNS Server and Active Directory.

  1. Prepare two physical machines (you can use 2 VM instances) with Microsoft Windows Server 2012, 2016, or 2019. The first server is for the Windows Server. On the first server DNS Server, MSAD, and Maximo Asset Management are installed. The other server is for client machine, which belongs to the same domain. Important: Both the DNS Server and Client machines must have static IP addresses.
  2. Configuring IP setting for two servers.
    • DNS Server
IP settings
  • IP setting for Client Server - the preferred DNS Server is the DNS Server's IP address

IP Settings Client Server

  1. Install DNS and MSAD Services on the DNS Server machine.
  • Open Add Roles and Features

Add Roles and Features

  • Click  Role-based or feature-based installation

Add Roles and Features Wizard

  • Select Active Directory Domain Services and DNS Server

 Select Active Directory Domain Services and DNS Server

After the Services are installed, Post-deployment Configuration for Active Directory Domain Services.

Post-deployment Configuration for Active Directory Domain Services

  • Click Post-deployment Configuration
  • Click Add a new forest.  Set the Root domain name, for example, domain.com

Add a new forest

  • Enter a password for the Directory Services Restore Mode password, for example Maximo01

Directory Services Restore Mode password

  • Set the NetBIOS domain name, which is the DOMAIN from the Root domain name, for example, domain.com.

NetBIOS domain name

  • Click Finish. Restart the server.

After restart, the machine now belongs to domain.com.

System Properties

  1. Configure Active Directory structure.
  • Open Active Directory Users and Computers. Right-click the domain. Select New → Organizational Unit
  • Create the Maximo, Groups, and Users OU, for example:

Active Directory Users and Computers

  • In Groups OU, create two groups: maximousers and maximononusers

Groups maximousers and maximononusers

  • In Users OU, create 3 users: maxadmin, maxreg, and mxintadm. Add them to the Domain Users and maximousers groups.

Domain Users and maximousers groups

Doing these tasks allows three users (maxadmin, maxreg, and mxintadm) to log in to the computer that belongs to the domain (DOMAIN).

DNS Server and Active Directory configuration is completed.

  1. Configure the client machine in order to make it belong to the same domain (domain.com)
  • Log in to the client machine.
  • Open Computer->Properties->System properties.
  • Click Change. Change Member of Domain to domain.com.  Restart this client machine.

Change Member of Domain to domain.com

Now, DNS Server and Client machine was configured.  They are in the same domain.

  • DNS Server (AD):  dnsserver.domain.com
  • Client: ssoclient.domain.com

Domain users (maxadmin, mxintadm, maxreg) can log in to this client machine (ssoclient.domain.com) like below screen capture.

Log into this client machine (ssoclient.domain.com)


Part 2:  Install Maximo 7.6 with middleware (WebSphere and DB2 in this example) on the server machine where DNS Server and AD are installed.

  1. Run launchpad64 -  Select  DB2, WebSphere, and IBM Maximo Asset Management 7.6.

Select  DB2, WebSphere and IBM Maximo Asset Management 7.6

Select  DB2, WebSphere and IBM Maximo Asset Management 7.6 2

  1. Accept the license agreements.
  2. Confirm parameter and packages.
  3. Enter DB2 Installation Information.

DB2 Installation Information

  1. Enter Web Server Configuration Information.

Web Server Configuration Information

  1. Once Installation completed, Tivoli's process automation suite configuration tool  screen is opened.
Tivoli's process automation suite configuration tool 
  1. Click 'Prepare WebSphere Application Server for Configuration'.
  2. Configure WebSphere Application Server

Configure WebSphere Application Server

  1. Configure Application Server Profiles

Configure Application Server Profiles

  1. Application Server Advanced Options

Application Server Advanced Options

  1. Configure Administrative Security

Configure Administrative Security

  1. Apply Deployment Operations.

Apply Deployment Operations

  1. Click Configure a New Deployment.

Configure a New Deployment

  1. Define Deployment Environment
  • Check Create and Configure the database
  • Check Complete configuration of WebSphere for your product

Define Deployment Environment

  1. Configure General Product Information

Configure General Product Information

  1. Database Instance Information - Configure the DB2 Database

Database Instance Information

Configure the DB2 Database

  1. Configure the Application Server

Configure the Application Server

  1. Configure Application Security.

Configure Application Security

  1.  Apply Deployment Operations.

Apply Deployment Operations

19. Click Finish. You can log in to Maximo (http://dnsserver.domain.com:9080/maximo)

Part 3: Single Sign On (SSO) configuration that uses SPNEGO

Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO)enables a straightforward single sign-on (SSO) mechanism for WebSphere in Kerberos environments.

The Windows client must be in the same Active Directory (AD) domain. When you configure SPNEGO on a Windows system, you still need a separate Windows client to surf from.

Note: SPNEGO does not work locally on a system.

  1. Create a User ID for the Application Server.
  • The ID you create here is not the same, and cannot be the same as the WebSphere administration ID that you use when you enable WebSphere Security (usually wasadmin in test environments).
  • The ID that is created is the ID that the instance of WebSphere itself uses to authenticate to Active Directory.
  • Example: (wasspnego@domain.com/Maximo01)

Create a User ID for the Application Server

  • Set the password never to expire in your test environment. This saves you the need to regenerate keys (discussed next) because the password never needs changing.
  • Remember if you change the password for the account, you also need to regenerate the keys.
  1. Assign the Service Principal Name and Create Key File

After the account is created, we need to map this account to the Kerberos Service Principal Name (SPN) and create a key file that WebSphere can use to log in to the domain with.
Note that SPNs and keytabs are only required for the WebSphere Application Server instance, and not the Windows client users who are logging in to the domain from the domain sign-on screen.

To create the key, run 

ktpass -out <keyfile name>  -princ HTTP/fully qualified hostname@AD DOMAIN NAME -mapuser <AD user> -pass <password> -ptype KRB5_NT_PRINCIPAL

for example

ktpass -out appserver1.keytab -princ HTTP/dnsserver.domain.com@DOMAIN.COM  -mapuser wasspnego -pass Maximo01 -ptype KRB5_NT_PRINCIPAL
Microsoft had an update in November 2022 where they disabled RC4 and Java also recently disabled it.
So for the latest version of Windows server run:
ktpass -princ HTTP/dnsserver.domain.com@DOMAIN.COM -ptype KRB5_NT_PRINCIPAL -mapUser wasspnego -mapOp set -pass Maximo01 -out C:\IBM\WebSphere\AppServer\etc\krb5\appserver1.keytab -crypto AES256-SHA1 +DumpSalt -kvno 0
  • Case is important here. HTTP must be all in capital letters as well as the AD domain name. If you get the case wrong, authentication does not work.

If  it runs successfully, appserver1.keytab file is created and the Service Principal Name (SPN) is mapped to the AD user wasspnego.

The keytab file gets shipped to WebSphere server, which uses this key to authenticate itself in the AD domain as wasspnego.

Note the User logon name field for wasspnego user . It now contains the Service Principal Name (or SPN) of the ID.

Service Principal Name

  1. Set up Kerberos Configuration on the Application Server
  • Copy appserver1.keytab to C:\IBM\WebSphere\AppServer\etc\krb5
  • Start the wsadmin scripting tool:
    C:\IBM\WebSphere\AppServer\bin>wsadmin -lang jython ( wasadmin/Maximo1)
  • Run the command:
$AdminTask createKrbConfigFile {-krbPath C:\IBM\WebSphere\AppServer\etc\krb5\krb5.conf -realm DOMAIN.COM -kdcHost dnsserver.domain.com -dns domain.com -keytabPath C:\IBM\WebSphere\AppServer\etc\krb5\appserver1.keytab}

Microsoft had an update in November 2022 where they disabled RC4 and Java also recently disabled it.
So for the latest version of Windows server run:

$AdminTask createKrbConfigFile {-krbPath C:\IBM\WebSphere\AppServer\etc\krb5\krb5.conf -realm DOMAIN.COM -kdcHost dnsserver.domain.com -dns domain.com -encryption aes256-cts-hmac-sha1-96 -keytabPath C:\IBM\WebSphere\AppServer\etc\krb5\appserver1.keytab}

Then, appserver1.keytab  and krb5.conf  file exist in C:\IBM\WebSphere\AppServer\etc\krb5 folder.

  1. Enable WebSphere Security when installing Maximo using J2EE Application Security, it was already enabled. Go to WebSphere Console. Click Security-->Global Security in the left panel.

Security-->Global Security

  1. Enable SSO
  • Go to WebSphere Console. Click Security-->Global Security in the left panel.
  • Click Single Sign-On (SSO).
  • Check Enabled and enter domain name as domain.com
  • Check web inbound security attribute propagation and Set security cookies to HTTPOnly to help prevent cross-site scripting attacks.

Enable SSO

  1. Enable SPNEGO in WebSphere

Go to WebSphere Console. Click Security-->Global Security in the left panel.

Click SPNEGO web authentication.

Enable SPNEGO in WebSphere

  • Check  Dynamically update SPNEGO and Enable SPNEGO checkboxes
  • Enter Kerberos configuration file and keytab file name with full path (Reference step 3)

SPNEGO web authentication 2

  • -Click New to add a new SPNEGO Filter

Add a new SPNEGO Filter

  • Apply Changes  (Double check MXServer/Security Domain/SPNEGO web authentication)
  1. Restart WebSphere Server. 

SPNEGO is now enabled on the server.

  1. Configure Browsers: Configure your browsers to send their Kerberos tokens to the server when challenged. Change a couple of settings to the browsers running on your Windows client machines.
  • Log in to the client machine ssoclient.domain.com as maxadmin domain user.
  • Open browser (example here is Internet Explorer). Select Internet options ->  Security Tab-> Local Intranet
  • Add  *.domain.com -> OK

Configure Browsers

  • Click  Advanced Tab
  • Check Enable Integrated Windows Authentication

Enable Integrated Windows Authentication

  • Click OK

Now, in browser, Go to http://dnsserver.domain.com:9080/maximo

Maximo automatically logs in as maxadmin user.

Log in enabled

[{"Line of Business":{"code":"LOB59","label":"Sustainability Software"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSLKT6","label":"IBM Maximo Asset Management"},"ARM Category":[{"code":"a8m0z000000cvcNAAQ","label":"Security"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.6.0;7.6.1"}]

UID

ibm11132167