For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/iam-auth-providers-custom-mapping.md.

Configurer un mapping personnalisé pour un fournisseur d'authentification

Voir en Markdown

Attribuez automatiquement des groupes et rôles Data Platform aux utilisateurs se connectant via un fournisseur d'authentification

Objectif

Les mappings personnalisés vous permettent d'attribuer automatiquement des groupes Data Platform ou des rôles existants (ou de les créer automatiquement s'ils n'existent pas) aux utilisateurs se connectant via ce fournisseur d'authentification.

Info

Dans la section Log History, le formatage JSONPath peut être utilisé pour sélectionner des éléments de l'objet de réponse renvoyé après une authentification réussie, et configurer les mappings personnalisés ci-dessous.

Cliquez sur Add dans le panneau Custom Mapping pour configurer un nouveau mapping.

mapping

Mode normal

Avec le mode normal, vous pouvez attribuer des groupes ou des rôles existants aux utilisateurs se connectant depuis le fournisseur d'authentification.

Pour ce faire, choisissez entre Role et Group, et sélectionnez le rôle/groupe dans la sélection.

mapping

Par défaut, cela attribuera le rôle/groupe à tous les nouveaux utilisateurs importés depuis le fournisseur d'authentification, mais vous pouvez définir une condition sur le binding.

mapping simple

Les conditions sont basées sur des champs provenant de la réponse des fournisseurs d'authentification.
Voici un exemple de condition :

{
    "user.jobTitle": {
        "eq": "Admin"
    }
}

Cette condition recherchera le champ user.jobTitle dans la réponse d'authentification pour tout nouvel utilisateur se connectant depuis le fournisseur d'authentification, et vérifiera si la valeur est égale à Admin. Si c'est le cas, le rôle/groupe sera attribué à cet utilisateur, sinon non.

Les opérateurs conditionnels sont :

  • eq : Égal à la valeur
  • ne : Différent de la valeur
  • in : Dans l'ensemble de valeurs
  • nin : Pas dans l'ensemble de valeurs
  • lt, lte, gt, gte : Inférieur à, Inférieur ou égal à, Supérieur à, Supérieur ou égal à
  • regexp : Tentera de faire correspondre le champ de la réponse d'authentification avec la valeur (regex)

Mode JSON

Avec le mode JSON, vous pouvez attribuer ou créer dynamiquement des groupes ou des rôles pour les utilisateurs se connectant depuis le fournisseur d'authentification. Basculez vers le mode JSON dans l'en-tête de la fenêtre pour l'activer.

Attribuer des rôles/groupes existants

Le binding de groupes/rôles existants avec des conditions s'effectue à l'aide du mot-clé if.

mapping avancé
{
  "group": "_identifier_of_the_group",
  "if": {
    "organization.name": { 
      "eq": "Example Corp"
    }
  }
}

Trouver ou créer dynamiquement des rôles/groupes

Vous pouvez définir dynamiquement des ressources liées à l'aide de l'option bind. Elle accepte 5 paramètres possibles :

  • upsert : false/true
    • si true : les groupes/rôles seront générés automatiquement s'ils n'existent pas déjà dans l'Identity Access Manager
    • si false : seuls les groupes/rôles existants seront liés
  • input : c'est un accesseur JSON path permettant d'obtenir la liste des « ressources à lier »
  • split : dans certains cas, vous pourriez avoir un champ comme celui-ci dans la réponse : "group1,group2,group3". En saisissant "," la liste sera automatiquement séparée en utilisant les virgules comme séparateur
  • match : voir ci-dessous
  • replace : voir ci-dessous

Utiliser le paramètre match

Vous pouvez ne récupérer que certains groupes correspondant à un pattern regex spécifique.

Par exemple, si le fournisseur d'authentification possède les groupes suivants : PRIVATE_ADMIN, IAM_APP_GROUP1, IAM_APP_GROUP2, alors la configuration suivante ne créera que les 2 groupes commençant par "IAM_APP".

{
    "input": "$.memberships[*].displayName",
    "match": 'IAM_APP_.*'
}

Avec cette configuration, je n'obtiendrai que les 2 groupes commençant par IAM_APP

Utiliser le paramètre replace

Le paramètre replace ne peut être utilisé que si un pattern "match" est défini. Il vous permet de renommer les groupes créés, à l'aide des groupes de capture regex :

{
    "input": "$.memberships[*].displayName",
    "match": 'IAM_APP_(.*)',
    "replace": '$1'
}

Dans l'exemple précédent, cela créera des groupes nommés "GROUP1" et "GROUP2" dans l'Identity Access Manager au lieu du nom complet.

Trois exemples

Par exemple, vous pouvez lier le nom des organisations à des groupes IAM :

{
  "bind": {
    "upsert": false, // si défini sur true, le champ sera créé automatiquement
    "input": "$.organizations[*].name", // accesseur JSON path pour les éléments d'entrée
    "split": null // Optionnel, si défini, chaque valeur sera séparée avec la valeur du délimiteur
    "match": ".*", // Optionnel, fera correspondre la valeur trouvée dans input avec cette regexp
    "replace": "$0" // Optionnel, remplacera l'entrée par ce pattern avant de la définir comme nom pour le groupe/rôle.
  }
}

Cette configuration créera automatiquement de nouveaux groupes à partir des memberships de l'utilisateur :

{
  "bind": {
    "upsert": true,
    "input": "$.memberships[*].displayName"
  }
}

Cet exemple de configuration :

mapping bind
  • recherche le champ $.user.isMemberOf
  • sépare les valeurs à l'aide d'une virgule (,)
  • pour chaque valeur :
    • vérifie si elle correspond à une expression régulière commençant par APP_MY_DASHBOARD_ et capturant la fin
    • remplace par APP_ et la valeur capturée
    • comme upsert est false, vérifie si ce groupe existe dans l'IAM et lie les utilisateurs à ce groupe
{
  "bind": {
    "upsert": false,
    "split": ",",
    "input": "$.user.isMemberOf",
    "match": "APP_MY_DASHBOARD_([\\w-]*)",
    "replace": "APP_$1"
  }
}

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?