Gebruikers en groepen synchroniseren tussen een identiteitsprovider (IdP), zoals Azure Entra-ID en de Maximo Applicatiesuite (MAS) is een cruciale stap om gecentraliseerd identiteits- en toegangsbeheer mogelijk te maken. MAS ondersteunt SCIM 2.0 voor provisioning, maar verschillende nuances — en enkele valkuilen — kunnen van invloed zijn op het synchronisatieproces als ze niet duidelijk worden begrepen.

In dit blog wordt ingegaan op:

  • SCIM-configuratiestappen in MAS
  • Tokens genereren voor authenticatie
  • MAS SCIM-profielen bouwen
  • Azure Entra SCIM-provisioning configureren
  • Bekende uitdagingen en hoe deze op te lossen

Een API-sleutel aanmaken in Maximo Application Suite

SCIM-provisioning van Azure Entra ID naar MAS vereist een JWT-token, die is afgeleid van een MAS API-sleutel.

Stappen

  1. Navigeer naar Suitebeheer → API-sleutels en klik API-sleutel aanmaken.
  1. Zorg voor een omschrijving en definieer een vervaldatum van het authenticatietoken.
  1. Onder Administratieve toegang tot de suite, selecteer Gebruikersbeheer.
  1. Klik Verzenden.
  1. Kopieer beide:
    • API-sleutel-ID
    • Verificatietoken


Opmerking: MAS doet niet herstel van authenticatietokengegevens mogelijk maken.

Als u verloren gaat, moet u een nieuwe API-sleutel.

Genereer een JSON-webtoken (JWT)

Zodra de API-sleutel en het token zijn aangemaakt, moet u een GET-verzoek indienen om een JWT te genereren. Je kunt postman gebruiken om het token te genereren met de onderstaande details.

API-eindpunt

KRIJGEN https://api.%3cmasdomain%3e/v1/authenticate]https://api. <masdomain>/v1/authenticeren

Vereisten

  • Basisverificatie:
    • Wachtwoord = authenticatietoken
    • Gebruikersnaam = API-sleutel-ID
  • Koptekst:
    • mas-jwt-expiry-duration: P90D (voorbeeld voor 90 dagen)

Reactie

Het antwoord retourneert een JWT-token dat zal worden gebruikt voor Azure Entra SCIM-provisioning.

Een MAS SCIM-profiel aanmaken

Een SCIM-profiel bepaalt hoe identiteiten en rechten vanaf de IdP worden gesynchroniseerd. Om een profiel aan te maken, klikt u op het volgende URL POST-verzoek met de hoofdtekst zoals hieronder.

https://api.%3cmasdomain%3e/scim/v2/Profiles]https://api. <masdomain>/SCIM/V2/Profielen

  • id: Identificeert het profiel en moet uniek zijn. Het wordt aanbevolen om namen te gebruiken zoals MastestProfile, MasDevProfile, enz.
  • versie: Specificeert het versienummer van het profiel. Als er tijdens de ontwikkelingsfase een wijziging nodig is, moet u mogelijk het bestaande profiel verwijderen, het versienummer verhogen en het profiel opnieuw aanmaken met behulp van de API's.
  • Identiteiten — id: Identificeert de SAML-configuratie in MAS. De standaardwaarde is „default-saml”.
  • Identiteiten — type: Moet worden ingesteld op „saml”.
  • Identiteiten — samlid: Dit moet een unieke identificatiecode zijn die overeenkomt met de SAML-ID van uw organisatie. In het gegeven voorbeeld hebben we externalid gebruikt. De externe ID wordt toegewezen aan de hoofdnaam van de gebruiker voor het toewijzen van gebruikersattributen en de object-ID voor de toewijzing van groepsattributen.
  • Recht - aanvraag: U kunt elk MAS-gebruikersrecht als standaard kiezen. In het onderstaande voorbeeld hebben we BASE gebruikt.
  • Workspaces — Applicatie: Definieert de namen van toepassingen die de SAML-configuratie zullen gebruiken.

Referentie: Gebruikerssynchronisatie met SCIM 2.0 - IBM Documentation

Voorbeeld van een SCIM-profiel - body

{ 
"id": "MasProfile1", 
"version": 1, 
"identities": [ 
{ "id": "default-saml", 
"type": "saml", 
"samlId": "externalId" 
} 
], 
"entitlement": { 
"application": "BASE" 
}, 
"runtimeConfigs": { 
"useGroupDisplayNameAsGroupId": true 
}, 
"workspaces": [ 
{ "id": "test", 
"applications": ["manage"] 
} 
] 
} 

Nog een voorbeeld van een SCIM-profiel - body

{ 
"id": "MasProfile2", 
"version": 2, 
"identities": [ 
{ 
"id": "default-saml", 
"type": "saml", 
"samlId": "externalId" 
} 
], 
"entitlement": { 
"application": "BASE" 
}, 
"workspaces": 
[ 
{ 
"id": "uat", 
"applications": ["manage"] 
} 
], 
"runtimeConfigs": { 
"useGroupDisplayNameAsGroupId": true 
} 
} 

Azure Entra SCIM-provisioning configureren

Stappen

  1. In Azure Entra-ID → Enterprise-toepassingen, maak een aanvraag voor MAS.
  1. Inschakelen SCIM-voorziening.
  1. Stel de SCIM-URL baseren:
    [https://api.%7bdomain%7d/scim/v2/%7bprofileId%7d]https://api. {domain} /scim/v2/ {ProfielID}
  1. Voor authenticatie voegt u de JWT-token eerder gegenereerd.
  1. Test de verbinding → Azure zou SCIM-aanvragen met succes moeten verzenden.
  1. Toewijzen gebruikers en groepen → de bevoorrading begint.

Uitdagingen voor groepssynchronisatie begrijpen

Maximo Security Groups en hun lidmaatschap kunnen worden beheerd in het Azure Entra-project, terwijl de autorisaties van toepassingen worden beheerd in Maximo Manage. Wanneer groepen via SCIM worden gesynchroniseerd, wordt de groeps-ID (bijvoorbeeld AP_Maximo_Supervisors_tyhntb) in Maximo toegewezen als de groepsnaam, waardoor er een nieuwe groep wordt aangemaakt in plaats van te linken naar de bestaande AP_MAXIMO_SUPERVISORS-groep. Aangezien ap_maximo_supervisors_tyhntb de SCIM-groeps-ID is, kunnen we deze niet verwijderen of opnieuw toewijzen.

Wanneer groepen worden gesynchroniseerd vanuit Azure AD → MAS Core:

  • MAS voegt een achtervoegsel naar de groepsnaam.
  • Voorbeeld:
    Azure-groep: AP_MAXIMO_SUPERVISORS
    De MAS-groep wordt: ap_Maximo_Supervisors_tyhNTB

Dit veroorzaakt een nieuwe groep om in Maximo te worden aangemaakt in plaats van toe te wijzen aan de bestaande Maximo Security Group.

Invloed

  • Onderbreking van groepstoewijzingen
  • Lidmaatschap komt niet overeen
  • Bestaande autorisaties van de Manage-toepassing worden niet opnieuw gebruikt

Oplossing

Voeg de volgende tag toe tijdens het aanmaken van het SCIM-profiel.

„UseGroupDisplayNameasGroupId”: true

Dit zorgt ervoor dat MAS gebruik maakt van de weergavenaam als groeps-ID en vermijdt ongewenste achtervoegsels.

Opmerking: Als u een bestaand profiel in MAS wijzigt, verhoogt u het versienummer. MAS wordt alleen bijgewerkt als de versie verandert.

Uitdaging: Azure Entra verzendt SCIM-patch-aanvragen die niet aan de regels voldoen

Wanneer u een gebruiker verwijdert uit de Azure Entra-groep, stuurt Entra het volgende patchverzoek naar MAS, waardoor MAS gedwongen wordt alle gebruikers uit de groep te verwijderen in plaats van één specifieke gebruiker.

Het patchverzoek is geregistreerd in de MAS Core-logboeken:

PATCH: /SCIM/v2/MassTgProfileExt/Groups/Maximo-SecGroup

{   
	'schemas': [...],   
    'Operations': [     
    	{       
        	'op': 'Remove',       
            'path': 'members',       
            'value': [{'value': 'userid'}]     
        }   
    ] 
} 


Dit is NIET Voldoet aan SCIM.

De juiste SCIM-payload zou moeten zijn

{ 
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], 
"Operations": [ 
{ 
"op": "remove", 
"path": "members[value eq \"userid\"]" 
} 
] 
} 

Resolutie

Azure Entra biedt een SCIM-compatibiliteitsmodus.

Activeer dit door deze parameter toe te voegen aan de SCIM-URL:

? Aadopt SCI M06 2020

Voorbeeld van een laatste SCIM-URL

https://api.%7bmas-instance-id%7d.%7bdomain%7d/scim/v2/%7bprofileId%7d?aadOptscim062020]https://api. {mas-instance-id}. {domain} /scim/v2/ {ProfileID}? Aadopt SCI M06 2020


Dit lost het volgende op:

  • Onjuiste PATCH-bewerkingen
  • Update van groepslidmaatschap is mislukt
  • Verschillende andere interoperabiliteitsproblemen met Azure SCIM


Referentie:

https://learn.microsoft.com/en-us/entra/identity/app-provisioning/application-provisioning-config-problem-scim-compatibility

Unlock the Ultimate Guide to IBM Maximo Application Suite (MAS)

Discover everything you need to know to modernize your asset management strategy.

Inside, you’ll learn:

  • What’s new in IBM Maximo Application Suite 9.0
  • Key differences between Maximo 7.6 and MAS
  • How AppPoints and OpenShift change the game
  • Industry use cases across energy, manufacturing, and transportation
  • Step-by-step guidance for upgrading and migration readiness
Cover of 'The Ultimate Guide to MAS Maximo Application Suite' by Naviam featuring a man in a yellow construction helmet and safety vest holding a tablet.
×

ActiveG, BPD Zenith, EAM Swiss, InterPro Solutions, Lexco, Peacock Engineering, Projetech, Sharptree, and ZNAPZ have united under one brand: Naviam.

You’ll be redirected to the most relevant page at Naviam.io in a few seconds — or you can go now.

Read Press Release