Forefront Identity Manager

Depuis un certain temps, Microsoft fournit des Cmdlets Powershell permettant d’exporter et d’importer la configuration des serveurs FIM. Ces commandes sont incluses dans le module FIMAutomation exploitable dans l'invite de commande PowerShell.

Prérequis

Depuis un certain temps, Microsoft fournit des Cmdlets Powershell permettant d’exporter et d’importer la configuration des serveurs FIM. Ces commandes sont incluses dans le module FIMAutomation exploitable dans l'invite de commande PowerShell.

Grace à ce module, vous pourrez ainsi très facilement sauvegarder et restaurer la configuration, migrer la configuration entre différents environnements (dev/homologation/production) ou différentes forêts, ou encore exporter et importer des ressources dans le portail FIM.

Pour réaliser ces actions, il est nécessaire d'utiliser le module FIMAutomation ainsi que script PowerShell fournit par Microsoft (téléchargeables ici). 

Pour plus de facilité, j'ai zippé l'ensemble de ces scripts (utilisé dans le tuto + script MS) que vous téléchargerez ici

Autorisez également l'exécution des scripts via cet commandeSet-ExecutionPolicy RemoteSigned

 

Veillez à valider toutes étape sur un environnement de dev au préalable. Afin de garantir une réussite optimale, il est nécessaire que les versions de FIM soient identiques entre le serveur source et le serveur cible.

 

 

Schéma de migration

Voici les différentes étapes à réaliser :

Etapes Remarques
1- Sauvegarde de l'environnement source et cible Fortement conseillée
2- Exportation du schéma FIM Service (serveur source & cible) Obligatoire
3- Exportation de la configuration du moteur de synchronisation de FIM Obligatoire
4- Exportation des policy FIM Service (serveur source & cible) Obligatoire
5- Activer le mode maintenance Obligatoire
6- Importer le schéma FIM Service Obligatoire
7- Importer la configuration du moteur de synchronisation de FIM Obligatoire
8- Importer les policy FIM Service Obligatoire
9- Désactiver le mode maintenance Obligatoire

Attention : la présence des DLLs customisées n'est pas pris en compte dans ce scénario.

 

 

 

Tuto step by step

Dans mon cas, je vais réaliser une migration entre deux forêts AD distinctes (build : 4.1.3419.0). Dans un premier temps, nous allons préparer les fichiers et dossiers nécessaires  à la migration. Vous pouvez donc dézipper les deux dossiers afin de la placer à la racine de votre disque C (sur le serveur FIM Service source et cible). Si le chemin est différent, pensez à répercuter la modification directement sur les scripts.

Dans le répertoire _MigrationFim, nous retrouvons les scripts PowerShell suivants :

Scripts .ps1 Description
commitChanges_policy Applique le fichier généré par SyncPolicy
commitChanges_schema Applique le fichier généré par SyncSchema
ExportPolicy Exporte la configuration des ressources FIM  depuis FIM Service (appel au Web Service FIM)
ExportSchema Exporte le schéma utilisé dans FIM Service (appel au Web Service FIM)
ResumeUndoneImports_policy Applique les erreurs générées à la suite de l'exécution du script : commitChanges_policy
ResumeUndoneImports_schema Applique les erreurs générées à la suite de l'exécution du script : commitChanges_schema
SyncPolicy Compare les attributs de ressources FIM et retourne une liste des changements à effectuer
SyncSchema Compare le schéma FIM et retourne une liste des changements à effectuer

Vérifiez et identifier le chemin cible ou sera créé le fichier.

Exécuter le script sur le serveur FIM Service source.

Exécuter le script sur le serveur FIM Service cible.

Vérifiez que le fichier suivant est bien généré.

Serveur FIM Service source Serveur FIM Service cible

Il faut réaliser la même action avec le script ExportPolicy sur le serveur source et sur le serveur cible

Serveur FIM Service source Serveur FIM Service cible

 Exécuter le script.

Il faut ensuite exporter la configuration du serveur qui fait office de serveur de synchronisation.

Activez le mode maintenance votre portail FIM Service. Pour cela il faut :

  • arrêtez le service IIS. Il est possible de désactivez uniquement le site ou est configurer FIM Service
  • il faut refuser les connections sur le port 5725 au niveau du pare-feu 

Copiez ensuite les deux fichiers sources sur le serveur cible.

L'idée ici est de comparer les deux fichiers relatifs au schéma du serveur source/cible afin de générer un nouveau fichier qui comportera la liste des changements à effectuer.

Un fois les chemins vérifiés. Exécutez le script SyncSchema.

Cela va générer un nouveau fichier qui indiquera le nombre de modification à effectuer. Dans mon exemple, il y a 32 changements à réaliser au niveau du schéma utilisé dans le portail FIM.

Le script commitChanges_schema va appliquer ces 32 changements.

Exécutez le script. Le nouveau schéma est maintenant importé sur le serveur FIM Service cible.

Nous allons maintenant importer les MAs ainsi que le schéma du moteur de Synchronisation de FIM. Autrement dit, la configuration serveur du moteur de synchronisation.

Pour cela, cliquez sur Import Server Configuration. Pour la sauvegarde, il suffit de cliquer sur Export Server Configuration.

L'importation démarre.

Il va falloir renseigner les informations de connexion pour chaque MA.

...

...

L'importation de la configuration de votre moteur de synchronisation est maintenant terminée.

La dernière étape de migration correspond à l'importation des "Policy" qui correspondent aux Synchronization rules, aux workflow et MPRs du portail FIM.

Le fonctionnement de la migration est identique au schéma. Nous allons comparer les deux fichiers ain de générer un fichier différentiel qui reprendra les modifications à effectuer.

En cas d'erreur, le script CommitChanges_policy va générer un fichier undone qu'il sera possible d'exécuter après corrections des problèmes afin d'importer les ressources manquantes.

Il faut ensuite lancer le script commitChanges_policy. Lorsque des erreurs sont générées, cela les ajoute dans le fichier undone_policy.

Dans mon cas, je me retrouve avec 12 erreurs.

Il faudra alors lancer le script ResumeUndoneImports_policy afin d'importer les précédentes erreurs.

Afin de retourver à quelle ressource FIM fait référence l'ObjectID, vous pouvez regarder cet article : Trouver la correspondance d'un ObjectID dans FIM

Après les phases d'importations, vous pouvez ré-ouvrir votre pare-feu sur le port 5725 ainsi que redémarrer le site IIS.

 

 

Troubleshooting

Une des problématique peut apparaître lorsque des MAs sont déjà présent dans le moteur de synchronisation de FIM. Dès lors, vous vous retrouverez avec un message d'erreur comme indiqué ci-dessous ou lors de l'importation des "policy", celles-ci ne trouvent pas les MAs. Dans mon cas, j'ai donc supprimer le MA FIMPORTAIL et je l'ai ré-importé via un Import Management Agent.

Le cas similaire se produit dans le cas ou vous faites uniquement une restauration de FIM Service (sans l'import de la configuration du moteur de synchronisation), il faudra la aussi supprimer manuellement le MA FIMPORTAIL et le ré-importer. Ces différentes étapes doivent bien entendues être validées au préalables sur un environnement de dev.

 

Le script CommitChanges_policy remonte une erreur car il ne trouve pas les différents MAs (33 erreurs).

Je supprime le MA FIM Service.

Je le ré-importe via l'Import Management Agent.

Je sélectionne le bon MA...

Je le configure par rapport à l'environnement cible (url et identifiant différents de l'environnement source par exemple).

...

J'exécute le script ResumeUndoneImports_policy. Les erreurs sont corrigées. Les erreurs restantes sont dûes aux spécificités de l'environnement en question tel que le compte de service utilisé pour le module PowerShell (compte présent dans le set Administrator dans mon cas). 

Vous trouverez  du contenu complémentaire ici : http://technet.microsoft.com/en-us/library/ff400269(v=ws.10).aspx 

 

Bonne lecture, bon partage et n'hésitez pas à commenter...

Joris

Leave your comments

Post comment as a guest

0
Your comments are subject to administrator's moderation.
  • No comments found

Translation

S5 Box

Connexion classique

Inscription par formulaire