Synchronisation des utilisateurs et des groupes entre un fournisseur d'identité (IdP) tel que Identifiant Azure Entra et le Suite d'applications Maximo (MAS) est une étape cruciale pour permettre une gestion centralisée des identités et des accès. MAS prend en charge SCIM 2.0 pour le provisionnement, mais plusieurs nuances, et quelques pièges, peuvent avoir un impact sur le processus de synchronisation si elles ne sont pas clairement comprises.

Ce blog passe en revue :

  • Étapes de configuration SCIM dans MAS
  • Génération de jetons pour l'authentification
  • Création de profils MAS SCIM
  • Configuration du provisionnement SCIM d'Azure Entra
  • Défis connus et comment les résoudre

Création d'une clé API dans Maximo Application Suite

Le provisionnement SCIM depuis Azure Entra ID vers MAS nécessite Jeton JWT, qui est dérivé d'une clé d'API MAS.

Étapes

  1. Naviguez vers Administration de la suite → Clés d'API et cliquez Créer une clé d'API.
  1. Fournissez un description et définissez un expiration du jeton d'authentification.
  1. En dessous Accès administratif à la suite, sélectionnez Gestion des utilisateurs.
  1. Cliquez Soumettre.
  1. Copiez les deux :
    • ID de clé API
    • Jeton d'authentification


Remarque : MAS le fait pas autoriser la récupération des informations relatives au jeton d'authentification.

En cas de perte, vous devez générer un nouvelle clé API.

Générer un jeton Web JSON (JWT)

Une fois la clé d'API et le jeton créés, vous devez émettre une requête GET pour générer un JWT. Vous pouvez utiliser postman pour générer le jeton avec les détails ci-dessous.

Point de terminaison API

OBTENIR https://api.%3cmasdomain%3e/v1/authenticate]https://api. <masdomain>/v1/authentifier

Exigences

  • Authentification de base:
    • Mot de passe = jeton d'authentification
    • Nom d'utilisateur = ID de clé API
  • En-tête:
    • mas-jwt-expiry-duration : P90D (exemple pour 90 jours)

Réponse

La réponse renvoie un Jeton JWT qui sera utilisé par le provisionnement d'Azure Entra SCIM.

Création d'un profil MAS SCIM

Un profil SCIM contrôle la façon dont les identités et les droits sont synchronisés depuis l'IdP. Pour créer un profil, cliquez sur la requête URL POST suivante avec le corps ci-dessous.

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

  • identifiant: identifie le profil et doit être unique. Il est recommandé d'utiliser des noms tels que MasTestProfile, MasDevProfile, etc.
  • version: Spécifie le numéro de version du profil. Si des modifications sont nécessaires pendant la phase de développement, vous devrez peut-être supprimer le profil existant, incrémenter le numéro de version et recréer le profil à l'aide des API.
  • Identités — id: identifie la configuration SAML dans MAS. La valeur par défaut est « default-saml ».
  • Identités — type: Doit être réglé sur « saml ».
  • Identités — samlid: il doit s'agir d'un identifiant unique qui correspond à l'identifiant SAML de votre organisation. Dans l'exemple fourni, nous avons utilisé externalid. L'ID externe est mappé au nom d'utilisateur principal pour le mappage des attributs utilisateur et à l'ID d'objet pour le mappage des attributs de groupe.
  • Admissibilité - demande: Vous pouvez choisir n'importe quel droit d'utilisateur MAS par défaut. Dans l'exemple ci-dessous, nous avons utilisé BASE.
  • Espaces de travail — Application: définit les noms des applications qui utiliseront la configuration SAML.

Référence : Synchronisation des utilisateurs avec SCIM 2.0 - IBM Documentation

Exemple de profil SCIM - corps

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

Un autre exemple de profil SCIM - corps

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

Configuration d'Azure Entra SCIM Provisioning

Étapes

  1. Dans Azure Entra ID → Applications d'entreprise, créez une application pour MAS.
  1. Activer Approvisionnement SCIM.
  1. Réglez le URL SCIM de base:
    [https://api.%7bdomain%7d/scim/v2/%7bprofileId%7d]https://api. {domaine} /scim/v2/ {ProfileID}
  1. Pour l'authentification, ajoutez Jeton JWT généré plus tôt.
  1. Testez la connexion → Azure devrait émettre des requêtes SCIM avec succès.
  1. Attribuer utilisateurs et groupes → l'approvisionnement commence.

Comprendre les défis liés à la synchronisation des groupes

Les groupes de sécurité Maximo et leurs membres peuvent être gérés dans le projet Azure Entra, tandis que les autorisations des applications sont gérées dans Maximo Manage. Lorsque les groupes sont synchronisés via SCIM, l'identifiant du groupe (par exemple, AP_Maximo_Supervisors_TyHNTB) est mappé en tant que nom du groupe dans Maximo, ce qui entraîne la création d'un nouveau groupe au lieu de créer un lien vers le groupe AP_MAXIMO_SUPERVISORS existant. AP_Maximo_Supervisors_TyHNTB étant l'identifiant du groupe SCIM, nous ne pouvons ni le supprimer ni le remapper.

Lorsque des groupes sont synchronisés depuis Azure AD → MAS Core :

  • MAS ajoute un suffixe au nom du groupe.
  • Exemple :
    Groupe Azure : AP_MAXIMO_SUPERVISORS
    Le groupe MAS devient : AP_Maximo_Supervisors_TyHNTB

Cela provoque une nouveau groupe à créer dans Maximo au lieu de correspondre au groupe de sécurité Maximo existant.

Incidence

  • Interruption des mappages de groupe
  • L'adhésion ne correspond pas
  • Les autorisations d'application Manage existantes ne sont pas réutilisées

Solution

Ajoutez la balise suivante lors de la création du profil SCIM.

« UseGroupDisplayNameAsGroupId » : vrai

Cela garantit que MAS utilise le nom d'affichage comme identifiant de groupe et évite les suffixes indésirables.

Remarque : Si vous modifiez un profil existant dans MAS, augmentez le numéro de « version ». Le MAS ne se met à jour que lorsque la version change.

Défi : Azure Entra envoie des demandes de correctif SCIM non conformes

Lorsque vous supprimez un utilisateur du groupe Azure Entra, Entra envoie la demande de correctif suivante à MAS, ce qui force MAS à supprimer tous les utilisateurs du groupe au lieu d'un utilisateur spécifique.

La demande de correctif enregistrée dans les journaux MAS Core :

CORRECTIF : /SCIM/v2/MassTGProfileExt/Groups/Maximo-SecGroup

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


C'est PAS Conforme à la norme SCIM.

La charge utile SCIM correcte doit être

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

Résolution

Azure Entra fournit un Mode de compatibilité SCIM.

Activez-le en ajoutant ce paramètre à l'URL SCIM :

? L'AA adopte la CIM 06 2020

Exemple d'URL SCIM finale

https://api.%7bmas-instance-id%7d.%7bdomain%7d/scim/v2/%7bprofileId%7d?aadOptscim062020]https://api. {identifiant d'instance de masse}. {domaine} /scim/v2/ {ProfileID} ? L'AA adopte la CIM 06 2020


Cela permet de résoudre :

  • Opérations PATCH incorrectes
  • Échec de la mise à jour des membres
  • Plusieurs autres problèmes d'interopérabilité avec Azure SCIM


Référence :

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