Enhancing Security in Maximo OSLC JSON REST API

Phil Runion, Technical Account Manager, Projetech
July 10, 2023

Introduction

Maximo’s REST API is a powerful tool for exchanging data with external applications, but it's important to ensure that access is granted only to those who need it. In this article, we'll explore best practices for enhancing security in Maximo’s REST API, specifically focusing on object structure security, minimum privilege security models, security group creation, and the use of API keys for integration.

Understanding Object Structure Security in Maximo

Object structure security is a key component of securing Maximo’s REST API. By default, user-created object structures and the majority of out-of-the-box object structures in Maximo are open and available for use by authenticated Maximo users. This means that any user with credentials that can log into the system can access data exposed by object structures via the REST API. To address this vulnerability, it is important to turn on the "mxe.int.enableosauth" system property. This property enforces explicitly granted object structure access, meaning that users can only access the object structures that have been granted to them. This feature allows administrators to manage security with security groups in Maximo and ensures that users can only access the data to which they have been granted access.

Least Privilege Security Model for API Integrations in Maximo

Implementing a minimum or least privilege security model is a best practice for enhancing security in Maximo. Instead of using one user with administrator-level access, dedicated users with limited access can be created for each integration, using security groups to control access privileges. By creating a separate security group for each integration and granting them only the necessary access to perform their tasks, the risk of unauthorized access is minimized. In practice, an integration user will not have any front-end Maximo application and only access Maximo via the API. The object structures granted will be mostly at a read-only level, with a select few being granted save, insert, and delete access. 

How to Use API Keys for Integration in Maximo and Improve Security

Using API keys for integration is a secure option and works with SOAP, REST APIs, and other APIs that Maximo has. API keys are a better alternative than using usernames and passwords as they are more secure. API keys are the only method to authenticate with the Manage API once you move to Maximo Application Suite. They also have the advantage of working whether you are using NATIVE, LDAP, or SAML authentication. When using API keys, it is important to ensure that they are created and distributed in a secure manner. Additionally, API keys should be revoked when they are no longer needed.

What Can You Do Today?

  • Check System Property mxe.int.enableosauth. If this is true, your system already requires security to be explicitly granted.
  • Audit your system to determine what processes or integration should be connecting to object structures via Maixmo’s APIs. This can be accomplished in a few different ways and can be tedious. Implementation documentation and logs will help you do this.

  • Verify that all object structures used have object structure security configured. IBM Documentation: https://www.ibm.com/support/pages/node/6417041

  • Create dedicated users and security groups for each system that is connected to Maximo via an API. In the past, using MXINTADM was common. Multiple systems using the same user to connect pose a security risk but will prevent the implementation of least access principles.

  • Move all API access away from using MAXAUTH (username and password) and instead use an APIKEY to authenticate. Not all systems will be able to utilize an APIKEY, but implement one where you can.This will also help future-proof your system when moving to Maximo Application Suite.

  • Double-check your work by looking at the access from the database side. Object structure security is stored in the APPLICATIONAUTH table, just like application security. Checking this table will allow you to quickly check the actual security that is granted to each security group. 

select * from applicationauth

where app in ( select intobjectname from MAXINTOBJECT )

and optionname in ('READ','SAVE','INSERT','DELETE')

Implementing best practices for securing Maximo’s REST API with object structure security is critical to prevent security vulnerabilities and ensure that access is granted only to those who need it. By understanding object structure security, executing a minimum or at least privilege security model, creating security groups, and using API keys for integration, you can ensure that only authorized users can access the system and minimize the risk of unauthorized access. Following these best practices and security features enables a secure and robust system that minimizes the risk of data breaches and unauthorized access.

An important consideration is the need to periodically review and update your security settings. As business and IT requirements change, it's important to revisit your security settings to ensure  they are still appropriate for your needs. Regular security audits can help identify vulnerabilities and provide recommendations for improving security.

Share this post
Phil Runion, Technical Account Manager, Projetech
July 10, 2023
IBM Maximo Tips & Tricks

More Blogs

Navigating Maximo v.7.6.1.x End of Support

Navigating Maximo v.7.6.1.x End of Support

On April 12th, 2022, IBM announced the end of support for Maximo v7.6.1.x effective September 30th, 2025. This means no further updates or technical support will be provided. For users not ready to upgrade to the Maximo Application Suite, options include transitioning to MAS AppPoint licenses or obtaining extended support through Projetech’s MaaS solution or IBM’s Extended and Sustained Support, ensuring continued usage and support until a mandatory upgrade by 2027 or later.
Read post
Discovering Maximo IT: Revolutionizing IT Service Management

Discovering Maximo IT: Revolutionizing IT Service Management

Maximo IT revolutionizes IT service management by enhancing efficiency and innovation. Originally the IBM Control Desk, it offers a user-friendly interface, seamless integration, and ITIL-aligned processes, ensuring comprehensive management of IT services, assets, and problems. Key features include efficient reporting, enhanced staff productivity, policy-based automation, and advanced analytics. Maximo IT promises rapid deployment, data management excellence, and cloud deployment options through Projetech's Maximo as a Service, showcasing its adaptability and robustness for modern IT needs.
Read post
Add Validation on Change Status with Automation Scripts

Add Validation on Change Status with Automation Scripts

This blog explores using automation scripts in Maximo to enforce business logic, particularly for validating field requirements upon status changes. It contrasts simpler methods, like Application Designer and data restrictions, highlighting automation scripts' ability to handle complex logic and provide clear, custom error messages. The blog covers practical examples, including required fields for asset status changes and mandatory specifications for operating assets, showcasing how automation scripts improve data integrity and user guidance in Maximo.
Read post

Become a part of our thriving community with over 4,000 Maximo users.

MORE offers users a platform to discover valuable resources and engage in insightful discussions surrounding the intricacies of Maximo software. Connect with peers and experts to explore the depths of possibilities and enhance your expertise.