Gestion des identités et des accès

Gestion des utilisateurs avec ILM 2007

John McGlinchey

 

En un coup de œil :

  • Comprendre les éléments d'ILM 2007
  • Mise en service et hors service
  • Création d'une extension de règles pour l'importation / exportation
  • L'utilisation de profils d'exécution pour implémenter les modifications

Contenu

Qu'est-ce qu'ILM ?
Éléments ILM
Mise en service et mise hors service
Importation et exportation extensions
Exécuter des profils
L'avenir

Identity Lifecycle Manager (ILM) 2007 est un outil clé qui permet les administrateurs d'entreprise synchroniser les utilisateurs, ordinateurs et autres objets répertoire entre les différents répertoires et les bases de données. Les utilisateurs, ordinateurs, groupes et même la structure OU d'Active Directory peuvent être intégrés avec LDAP, SQL Server et autres bases de données. Les attributs peuvent être proviennent de différentes sources, fusionnées à une identité faisant autoritée et permettent de nouveau toutes les sources de données. Avec ILM, une entreprise doivent concevoir pas une base de référence unique pour identité mais peut intégrer à la place une maille de diverses sources de données avec un ensemble personnalisé de règles peut simuler les processus et procédures de cette entreprise.

Parmi les scénarios d'utilisation ILM les plus courants, citons la synchronisation de plusieurs annuaires Active Directory, mise à jour d'un common Exchange adresse liste globale (GAL) utilise plusieurs domaines Active Directory ou les forêts et synchronisation des comptes entre les implémentations LDAP ou entre LDAP et Active Directory. J'ai également utilisé ILM pour migrer d'un ou plusieurs annuaires Active Directory vers un nouveau domaine dans une nouvelle forêt et pour système d'exploitation et configuration d'application à l'aide de System Center Configuration Manager (SCCM).

Les concepts clés et les méthodes d'ILM peuvent être un uphill formation destinée orienté sur une infrastructure aux administrateurs de savoir-faire développement limité. Non seulement ne le doit savoir quelque chose sur ILM et développement de code extension ILM, vous devez également comprendre les sources de données connectées telles que Active Directory, Exchange, LDAP, SQL Server et ainsi de suite. Ce type de complexité doit être divisé en éléments consommables, petites, ce qui est ce que je vais essayer faire dans cet article.

Qu'est-ce qu'ILM ?

ILM 2007 combine gestion des identités et gestion de certificats fournissent ensemble des éléments clés du modèle d'identité et IDA (Access Management). La gestion d'identité partie ILM était précédemment appelée MIIS (Microsoft Identity Integration Server) et, avant cela, MMS (Microsoft Meta-Directory Server). (La partie de gestion de certificat, où le cycle de vie des certificats et cartes à puce sont gérés, ne sont pas abordée dans cet article, mais il peut être intégré avec la gestion d'identité). Bien que la gestion des identités peut ont subi une crise identité qui lui sont propres, il n'un problème de gestion de vos identités.

Une fonctionnalité clé de IDA avec ILM est son extensibilité. En l'absence d'un moyen simple et interactif de faire quelque chose, vous pouvez écrire du code pour étendre les fonctionnalités d'ILM. Bien que certaines implémentations ILM simples n'est pas tout besoin n'importe quel code, la plupart nécessaire quelconque de la configuration des comptes d'utilisateurs ou groupes, afin que vous êtes probablement destiné à écrire du code. Rassurez-vous, cependant. ILM mise en service de code est relativement simple une fois les concepts clés vers le bas et comprendre quand et comment votre code s'exécute en vue d'ensemble de IDA.

Éléments ILM

Comme avec n'importe quelle entreprise complexe, vous devez comprendre les concepts importants avant de plonger.

le métaverse et des répertoires connectés Le méta-verse (MV) est simplement une base de données. C'est une base de données assez complexe, mais toujours une base de données. ILM utilise la MV pour stocker la configuration de tous les annuaires connectés (CD) qui importer des données dans ou exporter des données à partir de la MV. Être averti, ne pas aller dans la base de données MV. Et jamais tromper avec lui. N'essayez pas d'exécuter des rapports directement à partir de la base de données MV ou rien modifier dans il. Vous finirez qu'il endommage. (Je parle ici de l'expérience.)

Gestion des agents Agents de gestion (ma) sont les outils que vous permet de définir des CD. Vous pouvez créer une règle pour l'importation et exportation de données dans la MV à partir d'un CD à l'aide du MA importer et exporter des règles. Cette règle définit également les MA contribution qui attribut et comment données sont purgées de la MV une fois qu'il disparaît de tous les CD-ROM. TechNet a des documents de scénario téléchargeable et ensembles de règles que vous pouvez utiliser pour démarrer rapidement une fois que vous comprenez comment tout cela fonctionne. Une fois que vous maîtrisez les scénarios simples, solutions plus complexes qui impliquent de nombreuses sources de données, manipulations de données complexes et des règles détaillées peuvent être implémentées en utilisant ILM.

Agents de gestion peuvent filtrer les données à partir du CD-ROM qui n'est pas nécessaire pour établir la connexion plus efficace. Par exemple, vous ne devrez pas peut-être numériser chaque unité d'organisation dans Active Directory. Sélectionnez seulement les unités d'organisation nécessaires permettent de recherche des objets modifiés ou nouveaux beaucoup plus rapides. Dans une base de données SQL Server connectée, le filtrage de données inutiles pouvez enregistrer beaucoup de temps lorsque traitement importer des règles (bien qu'une méthode plus efficace consiste à utiliser une vue SQL Server pour fournir uniquement les données nécessaires à l'Agent de gestion en premier lieu).

espace de connecteur, l'importation et d'exportation Chaque MA connecte la MV via un espace de connecteur unique (CS) qui reflète les éléments de données du CD-ROM. Données sont ensuite déplacées vers ou depuis la CS vers MV selon les règles importer et exporter. Création d'un objet dans un annuaire connecté est une question simple de création d'un connecteur dans le Commerce Server pour celui-ci et puis exporter cet objet sur le CD.

L'exemple Figure 1 montre un MA connecté à un serveur Active Directory. C'est le MA plus simple et les plus courant qui peut être configuré. la figure 2 montre les attributs qui sont transmis vers et depuis la MV. Les flèches de définissent la direction du flux de données. Notez que certains attributs sont sélectionnés, uniquement ceux qui est nécessaire implémenter les données de flux de modèle. Les données passées en tant que - est sans modification, sauf s'il existe une extension d'importation ou d'exportation.

fig01.gif

Figure 1 QU'UN agent de gestion connecte ILM pour un annuaire connecté, dans ce cas, un Active Directory, avec la possibilité de sélectionner spécifique unités d'organisation.

fig02.gif

La figure 2 le flux d'attributs définit comment chaque attribut importer et exporter d'ILM.

Lors de l'attribut de flux, vous pouvez tomber sur un attribut qui est importé à partir de plusieurs CD. Si l'attribut se produit dans plusieurs CD, vous devrez peut-être décider quel CD-ROM contribueront à l'attribut. Ceci est appelé attribut priorité.

intégration et de projets Joindre signifie connexion une entrée dans un espace de connecteur à un objet MV existant. Les critères de la règle de jointure sont totalement à vous. Si vous joignez les utilisateurs d'une base de données dans la MV, vous pouvez utiliser les matricules d'employé ou une combinaison de noms et numéros. Vous devez utiliser quelque chose qui établit une connexion unique entre le CD-ROM et la MV dans le Commerce Server. N'oubliez pas que les critères de jointure doivent être uniques ou de la règle de jointure va provoquer une erreur. Ceci dit, ILM est totalement extensible et si vous le souhaitez, vous pouvez écrire du code pour décider des entrées non uniques pour joindre.

Prévision moyen de transmettre des données dans la MV à partir connexion espace d'un répertoire connecté. Pour ce faire, vous devez créer une projection de la règle (voir figure 3 ), ce qui implique quelques clics de souris. Mise en service, nous verrons à une minute, c'est-à-dire envoyer des données dans le Commerce Server d'un CD-ROM à partir de la MV et ce définitivement implique plus de quelques clics de souris. Considérer cette façon : vous "du projet en" la MV et vous «provision out» de la MV. Vous pouvez projet sans écrire de code, mais de provision, vous devez écrire du code. C'est ne pas de dire que vous ne pouvez pas implémenter un flux de données qui ne n'importe quelle mise en service. Si tous vos objets existent déjà et vous souhaitez seulement vous assurer que les attributs restent synchronisés, vous pouvez inutile n'importe quel code. Simplement configurer les flux de données importer et exporter et règles de jointure et que vous êtes presque bon à accéder.

fig03.gif

La figure 3 les règles de jointure et de projection sont utilisées pour définir comment les objets sont associés ou créé dans ILM.

Un agent de gestion peut avoir plusieurs règles de jointure, chacune avec plusieurs critères de jointure, mais il ne peut exister qu'une règle de projection.

Mise en service et mise hors service

Le code dans la figure 4 montre un exemple de ce que vous devez configurer un nouvel utilisateur dans Active Directory. Comment nous savoir que nous permettant de créer un nouvel utilisateur ? Dans ce cas particulier, nous avons les informations à partir d'un système H/S, mais il pourrait tout aussi bien provenir de quelque chose d'aussi simple qu'un fichier de feuille de calcul ou du texte avec informations de nouveaux utilisateurs et une MA pour importer les utilisateurs de la MV. ILM est très souple et pouvez importer des données à partir d'une variété de sources. Pour l'instant, nous allons coller vers Active Directory. L'exemple de code utilisé ici est dérivée de MIIS 2003 scénarios disponible au téléchargement à partir de" Scénarios de Microsoft ® Identity Integration Server 2003."

La figure 4 Configuration de nouveaux objets dans les répertoires connectés

''   Copyright (c) Microsoft Corporation.  All rights reserved.

Imports Microsoft.MetadirectoryServices
Imports System.Xml

Public Class MVProvision
    Implements IMVSynchronization

    '
    ' These two variables are initialized based on a xml configuration file
    ' The values are read during the Initialize() method of the Rules Extension
    '
    Dim fabrikamUsersContainer As String
    Dim fabrikamDisabledUsersContainer As String

    '
    ' Number of retries on name conflict
    '
    Private Const RETRY_NUM_LIMIT = 1000

    Public Sub Provision( _
        ByVal mventry As MVEntry) _
        Implements IMVSynchronization.Provision

        Dim employeeStatus As String
        Dim ADMA As ConnectedMA
        Dim dn As ReferenceValue
        Dim container As String
        Dim rdn As String
        Dim myConnector As CSEntry
        Dim csentry As CSEntry
        Dim numADConnectors As Integer
        Dim successful As Boolean = False
        Dim cnForObject As String
        Dim numberToAppend As Integer = 1

        If Not mventry.ObjectType.Equals("person") Then
            Exit Sub
        End If

        If Not mventry("cn").IsPresent Then
            Throw New UnexpectedDataException("cn does not exist on MV bject")
        End If

        ADMA = mventry.ConnectedMAs("ADMA")
        '
        ' Get the cn attribute from MV which will be used to configure CS dn
        '
        cnForObject = mventry("cn").Value.ToString()

        '
        ' Based on the value of "employeeStatus" determine the container in AD
        '
        employeeStatus = mventry("employeeStatus").Value.ToLower
        Select Case employeeStatus
            Case "active"
                container = UsersContainer
            Case "inactive"
                container = DisabledUsersContainer
            Case Else
                '
                ' employeeStatus must be active or inactive to be valid
                ' any other case is an error condition for this object. 
                ' Throw an exception to abort this object's synchronization. 
                '
                Throw New UnexpectedDataException("employeeStatus=" + employeeStatus.ToString)
        End Select

        Do
            Try

                ' Based on the value of "cn" determine the RDN in AD
                rdn = "CN=" & cnForObject

                ' Now construct the DN based on RDN and Container
                dn = ADMA.EscapeDNComponent(rdn).Concat(container)

                '
                ' If there is no connector present, add a new AD connector
                ' and call a subroutine to set the initial values on the CS Object
                '
                numADConnectors = ADMA.Connectors.Count
                If 0 = numADConnectors Then

                    csentry = ADMA.Connectors.StartNewConnector("user")
                    csentry.DN = dn
                    SetInitialValues(csentry, mventry)
                    csentry.CommitNewConnector()
                ElseIf 1 = numADConnectors Then
                    '
                    ' check if the connector has a different DN and rename if necessary
                    ' First get the connector
                    '
                    myConnector = ADMA.Connectors.ByIndex(0)

                    '
                    ' MMS will rename/move if different, if not nothing will happen
                    '
                    myConnector.DN = dn
                Else
                    Throw New UnexpectedDataException("multiple AD connectors:" + 
                      numADConnectors.ToString)
                End If

                successful = True

            Catch ex As ObjectAlreadyExistsException

                '
                ' There is a duplicate object in the target AD, 
                ' change the cn accordingly to avoid conflict
                '
                cnForObject = mventry("cn").Value & " (" _
                                & numberToAppend.ToString & ")"
                numberToAppend = numberToAppend + 1

                If numberToAppend > RETRY_NUM_LIMIT Then
                    Throw New UnexpectedDataException( _
                        "Retry for " & mventry("cn").Value _
                        & " exceeds limit " & numberToAppend.ToString)
                End If

            Finally ' Add cleanup code in the Finally section

            End Try

        Loop While Not successful

    End Sub
    ' Set Values on a NEW provisioned CS Entry
    Private Sub SetInitialValues( _
    ByRef csentry As CSEntry, _
    ByVal mventry As MVEntry)

        csentry("unicodepwd").Values.Add(mventry("employeeID").Value)

    End Sub

    Public Function ShouldDeleteFromMV( _
        ByVal csentry As CSEntry, _
        ByVal mventry As MVEntry) _
        As Boolean Implements IMVSynchronization.ShouldDeleteFromMV

        Throw New EntryPointNotImplementedException
    End Function

    Public Sub Initialize() Implements IMVSynchronization.Initialize

        Const SCENARIO_XML_CONFIG = "\simpleprov.xml"

        Dim config As XmlDocument = New XmlDocument
        Dim dir As String = Utils.ExtensionsDirectory()
        config.Load(dir + SCENARIO_XML_CONFIG)

        Dim rnode As XmlNode = config.SelectSingleNode(
           "rules-extension-properties/account-provisioning/container")
        Dim node As XmlNode = rnode.SelectSingleNode("root")
        Dim rootContainer As String = node.InnerText

        node = rnode.SelectSingleNode("enabled-users")
        UsersContainer = node.InnerText + "," + rootContainer

        node = rnode.SelectSingleNode("disabled-users")
        DisabledUsersContainer = node.InnerText + "," + rootContainer

    End Sub

    Public Sub Terminate() Implements IMVSynchronization.Terminate
    End Sub
End Class

Essentiellement, le code vérifie si un utilisateur existe déjà. Si l'utilisateur n'existe pas, un nouveau connecteur est créé pour l'utilisateur, comme illustré figure 5 . Si l'utilisateur existe, il serait déjà un connecteur à partir d'Active Directory dans le Commerce Server, ce qui signifie que ILM n'a pas besoin d'interroger Active Directory lui-même, CS de l'Agent de gestion qui se connecte à Active Directory. La règle exportation définit les données qui circulent vers Active Directory, afin que le code de mise en service devez uniquement créer le connecteur et laisser les règles de flux de faire le reste. Une chose à retenir, si vous envoyer des données de configuration de code, que les données sont enfoncées uniquement lorsque le connecteur est créé, pas sur chaque cycle de synchronisation comme avec les flux de données configuré dans les règles de flux.

La figure 5 Création d'un nouveau connecteur

'
                ' If there is no connector present, add a new AD connector
                ' and call a subroutine to set the initial values on the CS Object
                '
                numADConnectors = ADMA.Connectors.Count
                If 0 = numADConnectors Then

                    csentry = ADMA.Connectors.StartNewConnector("user")
                    csentry.DN = dn
                    SetInitialValues(csentry, mventry)
                    csentry.CommitNewConnector()

                ElseIf 1 = numADConnectors Then
                    '
                    ' check if the connector has a different DN and rename if necesarry
                    ' First get the connector
                    '
                    myConnector = ADMA.Connectors.ByIndex(0)

                    '
                    ' MMS will rename/move if different, if not nothing will happen
                    '
                    myConnector.DN = dn
                Else
                    Throw New UnexpectedDataException("multiple AD connectors:" + 
                      numADConnectors.ToString)
                End If

                successful = True

Pour configurer la mise en service, vous devrez prendre votre code de mise en service et utiliser Visual Studio pour créer dans une DLL. Le nom que vous donnez la DLL n'est pas bien question, mais vous devrez placer la DLL dans le dossier extensions où ILM est installé, puis utilisez son nom pour configurer la mise en service. Une chose à retenir est que la mise en service se produit sur la MV, pas sur ma individuelles. Le code s'exécute chaque fois qu'un aller-retour MA sur quelque chose qui doit être mis en service, mais la mise en service n'est pas partie de la configuration de MA; il fait partie de la configuration ILM Identity Manager globale, comme illustré figure 6 . Une étape de dépannage bonne lorsque rencontre des erreurs lors de l'Agent de gestion s'exécute est de temporairement désactiver la mise en service, isolant ainsi le test pour que l'importation et exporter des règles et pas votre code de mise en service. Une fois que vous confirmez que votre importer et exporter des règles fonctionnent, puis que vous pouvez démarrer votre code de mise en service pour identifier le problème de résolution.

fig06.gif

La figure 6 utilisation une extension de règles personnalisées pour définir la configuration

Annulation des privilèges d'accès est le processus de déconnexion d'un objet à partir de la MV. Il existe trois options pour spécifier état un objet :

  1. Rendre un objet «sectionneur» signifie que l'objet est plus lié, mais il n'est pas supprimé du CD-ROM. Si elle est non filtré, il peut également être fin haut arrière droit dans le Commerce Server sur la prochaine importation.
  2. Rendre un objet «sectionneur explicite» de même signifie l'objet est plus lié et n'est pas supprimé à partir du CD-ROM, mais dans ce cas il est également marqué ne pas être réimportés.
  3. Suppression de l'objet à partir du CD-ROM signifie exactement que. L'objet sera supprimé à partir du Commerce Server et de CD-ROM lors de la prochaine exécution d'exportation.

Soyez très prudent avec vos choix annulation que ceci peut s'un calvaire principale si pas correctement terminé et, pire, vous pouvez détruire les données en sélectionnant l'option incorrecte. Toujours effectuer le test dans un environnement de laboratoire avec les bonnes sauvegardes.

Importation et exportation extensions

À un moment donné, vous constaterez probablement la nécessité d'effectuer une opération avec des données CD lors de l'importation ou l'exportation, comme la fusion de plusieurs attributs pour former un nom complet ou de connexion nom d'utilisateur par nom de domaine pour former une adresse de messagerie. Dans ce cas, il est temps pour commencer à créer une extension de règles, qui est essentiellement le code qui permet des modifications complexes. Lors de l'importation, une extension règles signifie que vous pouvez prendre plusieurs attributs de CD comme entrée pour un seul attribut MV. Sur Exportation, cela signifie que vous pouvez reprendre attribut MV multiple dans un seul attribut CD-ROM. Notez que l'élément commun ici est que la source du flux de données peut utiliser plusieurs attributs, mais la cible du flux de données doit être un attribut unique. Là encore, il est relativement simple autant que le code se place et la DLL résultante devra être placé dans le dossier extensions. Vous ensuite utiliser ce nom dans la définition votre extension de règles dans la configuration de MA (voir figure 7 ) ainsi que dans le code pour définir la règle qui obtient implémentée.

fig07.gif

La figure 7 extensions de règles personnalisé attribut flux peuvent être complexe attribut writtenfor fl Windows.

Exécuter des profils

Après avoir ma configurée pour importer et exporter des données, vous devrez indiquer ILM pour exécuter une importation, exportation ou une synchronisation. Pour ce faire, vous configurer un profil d'exécution pour chacune de ces opérations dans la configuration de MA, puis exécutez un d'eux à la fois pour obtenir les données pour parcourir les étapes appropriées à partir du CD-ROM de CV pour MV, puis de MV à CV pour CD-ROM (voir figure 8 ).

fig09.gif

La figure 8 flux de données issus d'annuaires connectés à metaversethrough le connecteur espace puis de nouveau.

Les opérations peuvent être complet, qui inspecte tout, ou delta, qui inspecte uniquement les objets qui ont été modifiées. Par conséquent, pour une importation complète, ILM sera inspecter chaque objet dans l'annuaire connecté et tout importer l'espace de connecteur. Une exportation complète effectue l'inverse, à partir de Commerce Server sur le CD-ROM. Une synchronisation complète synchronise chaque objet de la MV à chaque objet connecté pendant une synchronisation delta synchronise uniquement les objets modifiés. Lorsque cette option est activée, la mise en service est déclenchée lors de la synchronisation et décide si les nouveaux connecteurs sont nécessaires dans un annuaire connecté en inspectant la CS pour celui-ci.

Pour exécuter un profil, cliquez avec le bouton droit sur un agent de gestion, cliquez sur Exécuter et puis choisissez un profil. Plusieurs étapes peuvent être combinés en un seul profil. Par exemple, je généralement configurer un profil «Importer & complète synchronisation complète» sur chaque MA ainsi «Delta Import & Delta Sync» et «Exporter» les profils. Profils peuvent également être exécutés de fichiers de commande avec un outil appelé runMA.vbs, disponible gratuitement téléchargement dans les scénarios mentionnés précédemment.

Profils ILM MA sont généralement exécutés séquentiellement à partir d'un script de commande dans le Planificateur de Windows. Oui, il semble qu'un throwback, mais bien que les choses seront probablement modifiée à l'avenir, pour le moment vous devez simplement créer un script simple pour exécuter vos agents de gestion à l'aide de runMA. La plupart des données d'annuaire ne changent en temps réel quand même pas. Utiliser le Planificateur de tâches sur le serveur ILM pour exécuter ce script aussi souvent que nécessaire conserver les éléments à jour. N'oubliez pas que ma peut devez s'exécuter dans un ordre spécifique basé sur votre modèle de synchronisation de données et peut avoir un impact significatif sur l'utilisation du réseau, ainsi équilibrer la nécessité de synchronisation des données à la nécessité peut-être en conflit pour un impact minimal sur le réseau.

L'avenir

ILM va obtenir une mise à jour dans un avenir proche apportera une interface nouvelle, basé sur le Web, intégration de flux de travail, mise en service à l'aide une interface utilisateur basée sur le Web et un autre nom. ILM adoptée dans la famille Forefront de sécurité et les produits de gestion des accès et sera bientôt connu en tant que Forefront Identity Manager (FIM) 2010. Recherchez des articles sur FIM 2010 telle qu'elle obtient plus proche de version pour voir comment vous pouvez appliquer les leçons apprises dans cet article pour le niveau suivant de gestion des identités et des accès.

John McGlinchey , MCP, MCSA, MCSE est consultant senior pour Microsoft Consulting Services basée dans la zone Philadelphia et, PA, en se concentrant sur gestion des identités et des accès. John a plus de 30 ans d'expérience dans le secteur informatique, y compris les plus de 20 ans d'expérience de conseil. Blogs d'a à blogs.TechNet.com/johnmcg/, et il est une de IDAGUYS à blogs.TechNet.com/idaguys/qui régulièrement le blog IDA sujets. Consultez la figure.