Skip to content

Comment migrer les utilisateurs de domaine

Cette section décrit comment migrer les utilisateurs de domaine entre deux domaines. L'article décrit comment déplacer les utilisateurs du domaine "A" (domaine interne) vers le domaine "B" (domaine SAML).

Prérequis

  • Un domaine interne est configuré dans S-Filer Portal.
  • Avoir l'utilitaire "sfiler-admin-cli" à disposition.
  • Avoir les identifiants d'un compte administrateur.

La procédure

Il existe différentes approches pour procéder à la migration des utilisateurs de domaine. La procédure décrite ici repose sur l'utilisation de l'utilitaire "sfiler-admin-cli". Il aurait été possible d'obtenir le même résultat en utilisant des requêtes SQL sur la base de données ou en utilisant l'API REST.

Étape 1 : Création du domaine SAML

La première étape consiste à créer le domaine SAML dans S-Filer Portal. Pour ce faire, il faut se rendre dans la console administrative, cliquer sur "Serveur" et ensuite sur le bouton "Ajouter un mécanisme d'authentification".

IMPORTANT

Il est important de ne pas mettre en oeuvre l'adoption du domaine SAML tant que la migration n'est pas terminée. Cela compliquerait la migration des utilisateurs.

Étape 2 : Identifier les domaines source et destination

La meilleure approche pour s'en assurer est d'utiliser l'utilitaire "sfiler-admin-cli" pour lister les domaines disponibles. La commande "list-domains" retourne la liste des domaines disponibles.

bash
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ list-domains

Le résultat de la commande sera similaire à ceci :

text
--------------------------
| ID | Name              |
--------------------------
| 1  | Business Partners |
| 3  | LDAP              |
| 4  | OpenID            |
| 6  | SAML              |
--------------------------

Dans cet exemple, le domaine "interne" est identifié par "1" et le domaine "SAML" par "6". Notez les "ID" des domaines car ils seront utilisés dans les commandes suivantes.

Étape 3 : Extraire les utilisateurs devant être migrés

Encore une fois, l'utilitaire "sfiler-admin-cli" est la meilleure approche pour obtenir la liste des utilisateurs à migrer. Les commandes "list-users" et "list-admins" retournent la liste des utilisateurs du domaine source.

bash
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ list-users
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ list-admins

Le résultat de la commande sera similaire à ceci :

text
List of users

-------------------------------------------------------------------------------------------------------------
| ID | Name         | Full Name      | Email                     | Language | Notification | ServiceAccount |
-------------------------------------------------------------------------------------------------------------
| 10 | mjones       | Mike Jones     | mjones@test.sfiler.com    | en       | false        | true           |
| 16 | sflowers     | Sonia Flowers  | sflowers@test.sfiler.com  | en       | true         | false          |
| 9  | sroy         | Sebastien Roy  | sroy@test.sfiler.com      | fr       | true         | true           |
-------------------------------------------------------------------------------------------------------------

Étape 4 : Construire un fichier CSV avec les utilisateurs à migrer

La structure du fichier CSV est la suivante :

csv
id,name,email,actual_domain,target_name,target_domain
10,mjones,mjones@test.sfiler.com,1,mjones_2,6
16,sflowers,sflowers@test.sfiler.com,1,sflowers_2,6
9,sroy,sroy@test.sfiler.com,1,sroy_2,6

INFO

La colonne "target_name" doit correspondre au "sujet" dans le domaine cible. Si celui-ci n'existe pas, l'authentification échouera. Dans beaucoup de cas, le "sujet" correspond au courriel de l'utilisateur. Mais ce n'est pas toujours le cas.

Étape 5 : Exécuter la commande de migration

La migration peut être effectuée en appelant de façon répétée la commande "migrate-user" avec les paramètres appropriés.

bash
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ --modify-user -d 1 -n mjones -e mjones@test.sfiler.com -rename mjones_2 -domain 6
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ --modify-user -d 1 -n sflowers -e sflowers@test.sfiler.com -rename sflowers_2 -domain 6
sfiler-admin.exe -l [compte administrateur] -p [mot de passe] -s http://[url]/sfiler/server/ --modify-user -d 1 -n sroy -e sroy@test.sfiler.com -rename sroy_2 -domain 6

Cependant, il est possible que les utilisateurs devant être migrés ne soient pas dans le domaine "interne" (habituellement le domaine "1") et qu'il soit nécessaire de leurs attribuer un nouveau nom d'utilisateur. Dans ce cas, il faut exécuter la procédure en deux étapes:

  1. Migrer les utilisateurs du domaine source vers le domaine interne.
  2. Migrer les utilisateurs du domaine interne vers le domaine cible en spécifiant le nouveau nom de l'utilisateur.

Cette procédure est nécessaire car il n'est pas possible de modifier le nom d'un utilisateur dans un domaine autre que le domaine interne.

Si le nombre d'utilisateurs à migrer est important, il est recommandé d'automatiser la migration en utilisant un script. Un exemple de script serait le suivant :

bash
@echo off
setlocal EnableDelayedExpansion

if "%~1"=="" (
    echo Usage: migrate-users.bat [csv_file]
    echo CSV file must have the format: id,name,email,actual_domain,target_name,target_domain
    exit /b 1
)

:: Skip the header line and process each line of the CSV
for /f "skip=1 tokens=1-6 delims=," %%a in (%~1) do (
    echo Migrating user: %%b / %%c from domain %%d to domain %%e
	sfiler-admin.exe -l sfiler-master -p Passw0rd -s "http://localhost:8080/sfiler/server/" modify-user -d %%d -n %%b -e %%c -rename %%e -domain 1
    sfiler-admin.exe -l sfiler-master -p Passw0rd -s "http://localhost:8080/sfiler/server/" modify-user -d 1 -n %%e -e %%c -domain %%f
    if !errorlevel! neq 0 (
        echo Error migrating user %%b
    ) else (
        echo Successfully migrated user %%b to %%f
    )
)

echo Migration complete

Étape 6 : Vérifier la migration

La migration est terminée lorsque les utilisateurs ont été migrés vers le domaine SAML. Il est recommandé de vérifier que les utilisateurs ont été migrés en se connectant à la console web avec un rôle d'administrateur.

Étape 7 : Mise-en-oeuvre de l'adoption

Afin de simplifier le processus d'authentification, il est recommandé de mettre en oeuvre l'adoption pour le domaine SAML. Pour ce faire, il faut se rendre dans la console administrative et mettre en place la configuration nécessaire. Vous trouverez la documentation pour réaliser cette opération dans la section sur la Configuration de la source d'adoption.