Sometimes, we need to log in as a different user to test a workflow, security settings, or to see their start centers. It is straightforward when Maximo uses native authentication. In that case, you can simply change the user’s password and log in with that account. However, in the case of Maximo uses single sign-on, especially when multi-factor authentication is enabled, it is much trickier to log in as someone else.
There are many ways to work around this problem. For example, with workflow testing, we can simply set the workflow delegation of all intended assignees to point to your own account. Or, with security permission testing, you can set your account to be in the same list of security group as the user’s.
However, the easiest way I found is to impersonate a user by setting that user’s record with your own login ID.

If you have access to the database, this can be done by simply running two SQL statements as in the following example. Let’s say you own the account JohnSnow with a Microsoft login ID: john.snow@yourcompany.com.au. And you want to impersonate the user HarryPotter with the login ID harry.potter@yourcompany.com.au. We need to run the following update statements:
UPDATE maxuser SET loginid = 'xxx' + loginid WHERE userid = 'johnsnow';
UPDATE maxuser SET loginid = 'john.snow@yourcompany.com.au' WHERE userid = 'harrypotter';
After running the update, if you log in using your email (john.snow@), Maximo will log you in as the user Harry Potter instead.
In the case you do not have access to the database, refer to this article How to run SQL query in Maximo without database access?
When testing workflows, you might need to switch between many different users multiple times. I had to do that before, and to speed it up, I created the script below, which I can call as an API script to quickly switch my account to impersonate different users.