# Personnalisation du mapping des champs

Par défaut, Ksaar récupère uniquement les informations de base de l’utilisateur : nom, prénom et email.

La personnalisation du mapping permet de récupérer et d’intégrer des données supplémentaires depuis le token SSO (ex. : matricule, adresse, âge, ...) afin de répondre aux besoins spécifiques de votre organisation.

{% hint style="info" %}
Cette fonctionnalité est disponible uniquement pour le protocole SSO OpenID Connect (OIDC).
{% endhint %}

## 📋 Pré-requis

### 📌 **Configuration du SSO**

Avant toute personnalisation, votre SSO doit être configuré et fonctionnel. Cette configuration initiale garantit que les flux d’authentification et de données sont correctement établis avant de procéder à des personnalisations plus complexes.

### 📌 **Mise en place d’une table de synchronisation**

Dans certains cas, les données du token SSO nécessitent un traitement avancé (formules, REGEX, etc.).

Les données transférées dans les tokens SSO nécessite parfois du traitement avancé pour pouvoir être exploitée (utilisation de formule, REGEX, ...). Il est donc nécessaire de synchroniser la table **Utilisateurs** avec une table dans la **vue Data**, afin de garantir le traitement correct des informations reçues depuis le SSO.\
Pour cela :&#x20;

1️⃣ Créez une table **Contact** dans la **vue Data**.

2️⃣ Ajoutez au moins **une liaison vers la table Utilisateur** pour synchroniser les données.

3️⃣ Ajoutez dans la table **Contact** les champs correspondant aux informations à récupérer depuis le token SSO (matricule, adresse, âge, ...).

4️⃣ Créez également **une liaison simple depuis la table Utilisateur vers la table Contact** afin d’assurer une synchronisation bidirectionnelle entre les données du token SSO et les comptes utilisateurs Ksaar.



## 🔄 Récupération du schéma du token SSO / Synchronisation avec la table

1️⃣ Depuis l’onglet **Authentification** des paramètres du persona, cliquez sur **Récupérer des informations à la connexion SSO** dans les paramètres avancés pour ouvrir l’interface de paramétrage du mapping.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2Fr5eqbEvfzoBcgWxW4AOh%2Fimage.png?alt=media&#x26;token=365e4dd1-b611-49cb-b935-6550afb3d823" alt="" width="563"><figcaption></figcaption></figure>



2️⃣  Vous avez la possibilité de définir le schéma du token SSO de deux manières :

* **Définir le schéma manuellement** : saisissez directement le schéma des champs transmis par votre SSO si vous le connaissez.
* **À partir de la prochaine connexion** : Ksaar récupère automatiquement le schéma lors de la prochaine connexion d’un utilisateur, ce qui facilite la configuration sans saisie manuelle. Nous conseillons fortement d'utiliser cette fonctionnalité car elle réduit le risque d'erreur.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FXWCUx9T7ESoNT0HyY29G%2FCapture%20d%E2%80%99e%CC%81cran%202025-08-14%20a%CC%80%2014.30.09.png?alt=media&#x26;token=4b84c8b0-7a3a-4c27-a363-e8031de3a2b6" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Si la table de synchronisation n’est pas correctement configurée, un message s’affiche pour indiquer qu’il faut la préparer avant de continuer.
{% endhint %}



3️⃣ Si vous choisissez “À partir de la prochaine connexion”, connectez-vous en tant qu’utilisateur final via le lien du persona. Une fois connecté, retournez dans l’interface de développement et cliquez sur **Tester la connexion SSO** pour récupérer les champs transmis par le SSO.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FrE2OASUbWjrkKkaT9njv%2Fimage.png?alt=media&#x26;token=40f53a84-5d77-49d7-9267-66579114922e" alt=""><figcaption></figcaption></figure>



4️⃣ Une fois la connexion testée, le schéma du token SSO est récupéré : il contient les champs transmis par le SSO. Vous pouvez ensuite modifier ce schéma manuellement si nécessaire, puis cliquer sur **Utiliser ce schéma** pour le valider.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2F7qTkZ8Z1ZKJMH6qOaync%2Fimage.png?alt=media&#x26;token=bf66119a-68e9-4846-aedc-c0d9c355573a" alt=""><figcaption></figcaption></figure>



5️⃣ Sélectionnez la **table de synchronisation** à utiliser. Activez **Montrer seulement les tables éligibles** pour filtrer celles qui respectent les prérequis de liaisons bidirectionnelles entre la table **Utilisateur** et la table de la **vue Data**.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FXgF4g0ZNMhUYaWMesbYZ%2Fimage.png?alt=media&#x26;token=65058c60-cec1-4100-aa83-d4e00ce5fecc" alt=""><figcaption></figcaption></figure>



6️⃣ Définissez les liaisons à utiliser entre chaque table afin d’assurer la synchronisation des données.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FUaK3FOtLdL54IWdte7tM%2Fimage.png?alt=media&#x26;token=cb587c3f-e467-4f3b-8502-b6d22711fa70" alt=""><figcaption></figcaption></figure>



7️⃣ **Mappez les champs** : associez les champs de la table de synchronisation avec les données définies dans le schéma du token SSO.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FAZw1PgMEMxYf3waQQcO9%2Fimage.png?alt=media&#x26;token=67f404ab-1a3e-4fc5-bd1c-d445e6f89534" alt=""><figcaption></figcaption></figure>



8️⃣ Cliquez sur **Valider les paramètres**, puis sur **Modifier le persona** pour enregistrer la configuration complète.



## 👤 Mise à jour des données utilisateurs

Lors de chaque connexion d’un utilisateur via SSO, Ksaar effectue les vérifications suivantes dans la table de synchronisation :

* **Création d’un enregistrement** : Si aucun enregistrement associé à l’utilisateur n’existe dans la table de synchronisation, Ksaar en crée un automatiquement.
* **Mise à jour des champs** : Ksaar met à jour les champs mappés dans l’enregistrement de la table de synchronisation avec les valeurs renvoyées par le token SSO. Cette mise à jour assure que les données de l’utilisateur sont toujours actuelles et reflètent les dernières informations fournies par le SSO.

{% hint style="info" %}
Bien que la table de synchronisation soit mise à jour automatiquement à chaque connexion SSO, les enregistrements de la table Utilisateurs ne sont pas modifiés automatiquement et nécessitent une action supplémentaire pour se synchroniser.
{% endhint %}

Pour mettre à jour automatiquement les valeurs des enregistrements de la table Utilisateurs avec celles de la table de synchronisation :&#x20;

**1️⃣** Créer une automation avec pour déclencheur "**Quand un enregistrement est modifié"**.

2️⃣ Sélectionnez la table de synchronisation et choisissez tous les champs susceptibles d’être modifiés par le token SSO.

**3️⃣** Ajoutez une action "**Mettre à jour les champs"** et utilisez la liaison existante entre la table de synchronisation et la table Utilisateurs pour mettre à jour les champs correspondants dans la table Utilisateurs.

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FSdjOBhYF8NhCiCHgPHJt%2Fimage.png?alt=media&#x26;token=d6fefe5e-9f73-4346-bf03-5b35c7b5cb1f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2063331370-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQBQ-Fk5qKATOA2R2_R%2Fuploads%2FgKOiQUtUEb8BEIx9D4vI%2Fimage.png?alt=media&#x26;token=54d38364-9fa9-46b0-b6f5-76b9605f1b5e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Lorsque les données du token SSO nécessitent un traitement spécifique, il est recommandé d’utiliser des formules de traitement (formatage, validation, transformations) avant de les synchroniser avec la table Utilisateurs.
{% endhint %}
