FIM Synchronization Service Partie 5 : Administration de FIM / Gestion de la metaverse

par | Août 3, 2016 | Active Directory, FIM | 0 commentaires

Introduction

La gestion des identitĂ©s en entreprise est une problĂ©matique de plus en plus importante. En effet, des thĂ©matiques telles que la mise en place d’un rĂ©fĂ©rentiel d’identitĂ© unique, le SSO (authentification unique), la gestion du cycle de vie d’un utilisateur (provisioning et deprovisioning, gestion du mot de passe, …) et bien d’autres deviennent essentielles dans des environnements toujours plus complexes et offrant plus de services. Il devient donc primordial d’intĂ©grer des solutions permettant de gĂ©rer les identitĂ©s au sein d’une entreprise. Cela permet notamment :

  • d’automatiser des processus de gestions de comptes (exemple la saisie/modification/suppression d’un compte dans une base RH dĂ©clenche les actions nĂ©cessaires sur les infrastructures du système d’information)
  • d’Ă©viter les erreurs humaines de manipulations
  • de rĂ©duire les tâches d’exploitation
  • de n’avoir qu’un seul point d’entrĂ©e pour la saisie d’informations (rĂ©fĂ©rentiel RH par exemple, …) 

Dans cette sĂ©rie d’articles, nous allons nous intĂ©resser au composant Synchronisation Service. Si certains composants fonctionnent ensemble, ce n’est pas le cas de celui-ci qui peut ĂŞtre installĂ© seul. L’objectif est de dĂ©couvrir les possibilitĂ©s offertes par cet outil. Pour cela, nous allons utiliser le contexte d’une sociĂ©tĂ© « MyCompany » souhaitant synchroniser les changements de son rĂ©fĂ©rentiel d’identitĂ© (une base de donnĂ©es SQL Server)  vers l’annuaire Active Directory (synchronisation d’attributs). Aussi, nous verrons comme gĂ©rer le cycle de vie des objets tels que les utilisateurs ou les groupes via un mĂ©canisme de Provisioning/Deprovisioning.

Ces articles vont s’articuler de la façon suivante :

Lors de cette cinquième partie, je vais Ă©voquer l’administration du service de synchronisation de FIM avec d’une part l’administration des Managements Agents et d’autre part la gestion de la mĂ©taverse. Pour cette dernière, nous verrons notamment comment ajouter des attributs ou mĂŞme crĂ©er des objets afin de ne pas se limiter Ă  ceux par dĂ©faut. Enfin, nous aborderons la gestion du cycle de vie des objets dans la mĂ©taverse et les diffĂ©rentes configurations possibles.  

NB : En AoĂ»t 2015, Microsoft a sorti une nouvelle version de la suite FIM, renommĂ© pour l’occasion MIM (Microsoft Identity Manager) suite Ă  l’abandon de la gamme de produits Forefront. Cette nouvelle mouture apporte quelques fonctionnalitĂ©s supplĂ©mentaires. Cependant le contenu de ces articles restent valables.

Administration

VĂ©rification du rĂ©sultat d’une synchronisation

Dans l’article prĂ©cèdent, nous avons vu comment crĂ©er des profils de synchronisation. Lorsque ces derniers sont exĂ©cutĂ©s, nous pouvons accĂ©der au dĂ©tail des actions effectuĂ©s dans l’onglet Operations de la console de gestion de FIM Synchronization Service. Ainsi, dans l’exĂ©cution ci-dessous, on remarque que quatre objets n’ont pas Ă©tĂ© modifiĂ©s lors de l’import dans le connector space Active Directory tandis que trois ont Ă©tĂ© projetĂ©s dans la mĂ©taverse pendant la phase de synchronisation (un objet a Ă©tĂ© filtrĂ©). Il est aussi possible d’avoir le listing de ses objets en cliquant sur le chiffre indiquant le nombre de changement. Ainsi, il est possible Ă  chaque Ă©tape d’avoir un vĂ©ritable contrĂ´le des modification.

Image

Recherche dans la metaverse

Il est possible de vĂ©rifier l’Ă©tat d’un objet dans la mĂ©taverse. Pour ce faire, il suffit de se rendre dans l’onglet Metaverse Search. Ensuite, il faut indiquer un filtre. Ce dernier est composĂ© :

  • Du type d’objet Ă  rechercher.

  • D’une ou plusieurs conditions contenant des valeurs attendus pour les attributs de l’objet.

Un clic sur le bouton Search permet de lancer la recherche.

Image

Lorsque l’on ouvre les propriĂ©tĂ©s d’un objet retournĂ© lors de la recherche, tous ses attributs sont affichĂ©s. On remarque Ă©galement la date de dernière modification de ceux-ci ainsi que le Management Agent ayant Ă©crit cette valeur (utile dans le cas de plusieurs Management Agent contribuant Ă  un mĂŞme objet dans la mĂ©taverse).

Image

Enfin, dans l’onglet Connectors d’un objet, on accède Ă  tous les connecteurs de l’objet. Ci-dessous on remarque le connecteur avec le rĂ©fĂ©rentiel SQL. Ce dernier a Ă©tĂ© créé avec une règle de projection. Lorsqu’un import et une synchronisation auront lieu avec le Management Agent Active Directory, un deuxième connecteur avec une règle de jointure sera prĂ©sent.

Image

Recherche dans un connector space

Il est aussi possible de rechercher des objets dans un connector space via le bouton Search Connector Space présent dans le menu des actions de chaque Management Agent.

Image

La recherche est cette fois-ci moins simple puisqu’il n’est possible de faire une recherche qu’au travers du DN (pour rappel, dans le Management Agent SQL que nous avons configurĂ© prĂ©cĂ©demment, il s’agit de l’id) ou d’une partie de celui-ci (l’unitĂ© d’organisation pour un objet Active Directory par exemple).

Image

Comme pour les objets prĂ©sents dans la mĂ©taverse, il est possible de voir leurs propriĂ©tĂ©s via l’onglet Import. L’onglet Lineage permet d’accĂ©der Ă  son status (si l’objet est connectĂ© ou non Ă  la mĂ©taverse). Ici, j’ai ouvert la fiche de l’objet dmills qui est un travailleur dĂ©tachĂ©. Pour rappel, dans note exemple, ces derniers ne doivent pas ĂŞtre synchronisĂ©s, c’est pourquoi il apparaĂ®t en tant que filtered disconnector.

Image

Enfin sur chacun des onglets d’un objet,  un bouton Preview est prĂ©sent. Ce dernier fourni un outil pour prĂ© visualiser les changements lors d’une synchronisation complète (Full) ou incrĂ©mentielle (Delta). Cet outil est utile pour effectuer des tests. Si les rĂ©sultats sont ceux attendus, il est mĂŞme possible de les enregistrer avec le bouton Commit Preview. Ainsi, il n’est pas nĂ©cessaire de relancer un profil d’exĂ©cution de synchronisation.

Image

Grâce aux outils que nous venons de voir (onglet Operations, recherche dans la metaverse et dans un connector space, outil de prĂ©visualisation), il est possible de connaitre Ă  chaque instant l’Ă©tat d’un objet et d’identifier rapidement les erreurs de configuration.

Export / import d’un Management Agent

Dans l’onglet Management Agent, il est possible d’exporter ou d’importer un Management Agent. Ces opĂ©rations offrent plusieurs possibilitĂ©s :

  • Sauvegarde / Restauration : Cela permet de conserver les paramètres de configuration d’un Management Agent et de les rĂ©injecter en cas d’une erreur de configuration.
  • Migration / Passage en production : La configuration d’un Management Agent peut ĂŞtre transfĂ©rer d’un serveur Ă  un autre lorsque ce dernier est changĂ© ou lorsque l’on possède plusieurs environnement et que l’on souhaite transfĂ©rer la configuration Ă  l’identique d’un environnement Ă  un autre (exemple : du dĂ©veloppement Ă  la production).  Il reste alors simplement Ă  insĂ©rer les paramètres de production (comme le domaine, le compte de service ou encore les unitĂ©s d’organisation d’un Management Agent Active Directory). Attention : lorsqu’un Management Agent est importer d’un serveur Ă  un autre, il est nĂ©cessaire de copier les DLL dĂ©clarĂ©es. Ces dernières ne sont pas inclues dans l’export.

NB : Lorsqu’un Management Agent est modifiĂ©, il est nĂ©cessaire de dĂ©clencher une opĂ©ration de Full Import afin de prendre en compte les nouvelles règles pour tous les objets du connector space. 

Gestion de la metaverse

La mĂ©taverse est le point central des donnĂ©es de l’environnement FIM Synchronization Service. Chaque objet d’un connector space qui possède un connector est liĂ© Ă  un objet de la mĂ©taverse. Pour rappel, un objet de la mĂ©taverse peut avoir plusieurs connectors. En effet, ces diffĂ©rentes propriĂ©tĂ©s peuvent ĂŞtre alimentĂ©s par plusieurs systèmes connectĂ©s comme c’est le cas pour la sociĂ©tĂ© « MyCompany ». Chaque objet de type person est connectĂ© Ă  un collaborateur du rĂ©fĂ©rentiel SQL et un utilisateur Active Directory. Aussi, un certain nombre de propriĂ©tĂ©s sont paramĂ©trable sur la mĂ©taverse, son fonctionnement et les objets qui la compose. Toutes ces actions se dĂ©roulent dans l’onglet Metaverse Designer de la console de gestion de FIM Synchronization Service.

Modification d’objets

Pour chaque objet, il est possible de les modifier en ajoutant ou supprimant des attributs. Cela permet de synchroniser des informations complĂ©mentaires. Pour ce faire, il suffit de sĂ©lectionner le type d’objet puis de cliquer sur le bouton Add Attribute dans le panel Actions (en bas Ă  droite). Une fenĂŞtre listant tous les attributs disponibles s’ouvre. Elle contient tous les attributs dĂ©jĂ  dĂ©clarĂ©s dans la mĂ©taverse. Pour en ajouter un Ă  un objet, il suffit de cocher la case de l’attribut concernĂ©.

01

Aussi, si ce dernier n’existe pas dans la liste, il peut ĂŞtre créé via le bouton New Attribute. Grâce Ă  cette option, pour la sociĂ©tĂ© « MyCompany », on peut ajouter la propriĂ©tĂ© Status permettant de synchroniser cette valeur contenue dans le rĂ©fĂ©rentiel SQL vers la mĂ©taverse (il faut aussi ajouter une règle de flux d’attribut dans le Management Agent SQL et Ă©ventuellement dans le Management Agent Active Directory si l’on souhaite exporter cette valeur vers cet annuaire).

02

Lorsque l’on ajoute un nouvel attribut, il existe plusieurs possibilitĂ©s. Tout d’abord un objet ĂŞtre de plusieurs types :

  • ChaĂ®ne de caractère (String)
  • Valeur binaire (Binary)
  • Nombre (Number)
  • BoulĂ©en (Boolean)
  • RĂ©fĂ©rence (Reference)

Les types chaĂ®ne de caractère, binaire et nombre peuvent ĂŞtre indexĂ©s ou non en cochant la case Indexed. Cela permet d’optimiser les recherches d’objets sur ces attributs. A noter qu’une bonne pratique est d’indexer tous les champs sur lesquels une jointure peut ĂŞtre effectuĂ©e afin d’optimiser l’opĂ©ration de recherche d’un objet correspondant dans la mĂ©taverse. Aussi, en dehors du champ Boolean, tous les attributs peuvent ĂŞtre multi-Ă©valuĂ© et donc contenir une liste de valeurs (exemple : le champs userCertificate d’Active Directory qui contient tous les certificats d’un utilisateur). Enfin, le type Reference permet d’indiquer une rĂ©fĂ©rence vers un autre objet de la mĂ©taverse. Cela peut notamment ĂŞtre utilisĂ© dans le cadre de la synchronisation du manager d’une personne ou encore de la liste des membres d’un groupe.

CrĂ©ation d’objets

En complĂ©ment de la modification d’objet, il est aussi possible d’en ajouter de nouveaux au travers de l’onglet Metaverse Designer. Cela permet de gĂ©rer d’autres types d’objets que vous aurez conçu vous-mĂŞme comme les contacts. Pour crĂ©er un objet, il suffit de cliquer sur Create Object Type dans le menu Actions

03

NB : L’action Copy Object Type, permet de dupliquer un type d’objet ainsi que ses propriĂ©tĂ©s (le type sĂ©lectionnĂ© sert alors de modèle).

Ensuite, il faut entrer le type d’objet Ă  crĂ©er et Ă©ventuellement ajouter les attributs qui le caractĂ©rise (comme nous l’avons vu dans le paragraphe prĂ©cĂ©dent, cela peut ĂŞtre modifiĂ© ultĂ©rieurement).

05

Flux d’attributs

Lorsque plusieurs systèmes connectĂ©s interagissent avec le mĂŞme attribut, il est possible de choisir celui qui aura la prioritĂ© pour en dĂ©finir la valeur. Cette opĂ©ration s’effectue en sĂ©lectionnant un attribut sur l’un des types d’objet dĂ©clarĂ©s dans l’onglet Metaverse Designer puis en cliquant sur le bouton Configure Attribute Flow Precedence (on remarque dans l’exemple ci-dessous que l’attribut accountName possède deux règles d’import, il faut donc dĂ©terminer l’ordre d’application).

06

L’assistant qui s’ouvre montre les Management Agents qui ont une règle de flux avec l’attribut sĂ©lectionnĂ©. La configuration par dĂ©faut indique que le premier Management Agent synchronisant une valeur (par ordre croissant) est autoritaire. Ainsi dans l’exemple ci-dessous le Management Agent Active Directory MA est prioritaire. RefIdentitĂ© MA ne sera utilisĂ© pour cet attribut que si aucune valeur n’est fournie par l’autre Management Agent. Ainsi, mĂŞme si une nouvelle valeur est transmises par le Management Agent RefIdentitĂ© MA, elle ne sera pas prise en compte. Il est possible de changer cet ordre avec les flèches prĂ©sentes dans l’assistant.

NB : Dans cet exemple, un changement de nom de compte impliquerai de dĂ©connectĂ© un objet puisque l’attribut samAccountName est utilisĂ© pour la jointure de l’objet auprès de la MĂ©taverse.

07

Aussi deux options sont disponibles pour ce paramétrage :

  • Use manual precedence : Il est possible de dĂ©finir la prioritĂ© d’un Management Agent manuellement. Cela n’est possible que pour les règles de flux personnalisĂ©es (type Rules Extension) qui ont Ă©tĂ© dĂ©veloppĂ©s en C# ou VB.Net.
  • Use equal precedence : Chaque Management bĂ©nĂ©ficie d’une prioritĂ© identique. Ainsi, s’il s’agit d’un attribut possĂ©dant une valeur unique, le dernier Management Agent qui s’est exĂ©cutĂ© contribue Ă  la valeur dans la mĂ©taverse (cela peut donc provoquer des effets de bord avec des changements Ă  chaque exĂ©cution de Management Agent). Dans le cas oĂą l’attribut est une liste de valeur, FIM rĂ©alise une fusion des diffĂ©rentes valeurs.

Déprovisioning

Par dĂ©faut, un objet prĂ©sent dans la mĂ©taverse est supprimĂ© lorsqu’il n’a plus aucun connecteur avec un Management Agent. Cependant, ce comportement peut ĂŞtre modifiĂ©. Cela s’effectue via le bouton Object Deletion Rule prĂ©sent dans la configuration de chaque type d’objet de la mĂ©taverse.

03 Bis

Pour l’option par dĂ©faut, on remarque qu’il existe une liste de tous les Management Agent. En effet, il est possible d’ignorer certains Management Agent en les cochant. Ainsi lorsque la règle sera Ă©valuĂ©e, elle ne prendra pas en compte les connector space des Management Agent sĂ©lectionnĂ©s pour savoir si l’objet doit ĂŞtre supprimĂ©.

04

La seconde option (Delete the metaverse object when the last connector space object from a specified management agent is disconnected), consiste Ă  supprimer l’objet dès qu’il n’y a plus de lien avec l’un des connector space. Contrairement Ă  la première option, la liste de Management Agent permet ici de dĂ©finir les connector space associĂ©s qui seront utilisĂ©s pour Ă©valuer la suppression.

Enfin, la dernière option offre la possibilitĂ© de gĂ©rer la suppression d’un objet de la mĂ©taverse au travers d’une règle dĂ©veloppĂ©e en C# ou VB.Net. Cela permet de gĂ©rer des cas plus spĂ©cifiques.

Joiner

L’outil Joiner est un outil intĂ©grĂ© dans la console de gestion de FIM 2010 Synchronization Service consacrĂ© Ă  la manipulation des disconnectors d’un Management Agent. Ainsi, il est possible de traiter ces objets afin de les connecter Ă  la mĂ©taverse via une projection ou une jointure ou de les Ă©carter dĂ©finitivement via un disconnector explicite. Toutes ces opĂ©rations sont manuelles. 

Pour effectuer une opĂ©ration sur un objet dans l’onglet Joiner, il suffit d’effectuer une recherche par Management Agent en le sĂ©lectionnant dans le champ adĂ©quat puis en cliquant sur le bouton Search (avant cela il est possible de rĂ©aliser un filtre plus spĂ©cifique en choisissant un type de disconnector).  

08

Le type de Disconnector peut ĂŞtre changĂ© lorsqu’on sĂ©lectionne un objet puis que l’on clique sur le bouton Set Disconnector Type. Par exemple, on peut souhaitez qu’un objet ne soit plus traiter par le Management Agent et qu’il soit dĂ©finitivement Ă©cartĂ© de tout traitement. Il faut alors dĂ©finir un Explicit Disconnector. Aussi, mĂŞme si l’objet satisfait toutes les règles de filtrages ultĂ©rieurement, il ne sera pas synchronisĂ© tant que le Disconnector sera de type explicite. Il faudra tout d’abord rechanger ce dernier via une nouvelle opĂ©ration dans l’onglet Joiner.

09

Lorsqu’un objet est sĂ©lectionnĂ©, il est possible de le joindre Ă  un objet de la mĂ©taverse. Pour ce faire, il est nĂ©cessaire de rĂ©aliser une recherche sur celle-ci afin de trouver l’objet correspondant. Cette opĂ©ration est rĂ©alisĂ©e en crĂ©ant un filtre avec le bouton Configure Search Filter. Un assistant s’ouvre alors et il est nĂ©cessaire de cliquer sur le bouton Add pour ajouter un filtre.

10

Ce dernier peut rechercher des objets en fonction du type ainsi qu’en fonction d’une valeur sur un attribut. 

11

Le bouton Apply Filter dĂ©clenche la recherche. La jointure s’effectue en cliquant sur le bouton Join après avoir sĂ©lectionnĂ© un objet de la mĂ©taverse (un avertissement permet de confirmer l’opĂ©ration). Toutefois, il reste aussi possible d’effectuer une projection (bouton Project) sans passer par le filtrage si l’objet n’existe pas dans la mĂ©taverse. Les opĂ©rations effectuĂ©es dans l’onglet Joiner n’ont pas besoin de respecter les filtres configurĂ©s dans le Management Agent gĂ©rant l’objet traitĂ©.

12

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *