Administración de identidades y accesos

Administrar usuarios con ILM 2007

John McGlinchey

 

Un vistazo:

  • Descripción de los elementos de ILM 2007
  • Aprovisionamiento y privación
  • Crear una extensión de las reglas para importar y exportar
  • Utilizar perfiles de ejecución para implementar cambios

Contenido

¿Qué es ILM?
Elementos ILM
Aprovisionamiento y Deprovisioning (baja)
Importación y exportación extensiones
Ejecutar perfiles
El futuro

Microsoft Identity Lifecycle Manager (ILM) 2007 es una herramienta clave que permite a los administradores de empresa para mantener sincronizados entre distintos directorios y bases de datos de usuarios, equipos y otros objetos de directorio. Los usuarios, equipos, grupos y incluso la estructura de OU de Active Directory pueden integrarse con LDAP, SQL Server y otras bases de datos. Los atributos se pueden tomados de distintos orígenes, combina en una identidad de autoridad y proporciona volver para todos los orígenes de datos. Con ILM, una empresa no necesita diseñar una base de autoridad única para identidad pero en su lugar puede integrar una malla de diversos orígenes de datos con un conjunto adaptado de reglas que puede imitar los procesos y procedimientos de esa empresa.

Algunos de los escenarios de uso más comunes de ILM incluyen sincronizar varios Active Directory, actualizar un common Exchange Global de direcciones lista (GAL) con varios dominios de Active Directory o bosques y sincronizar las cuentas entre las implementaciones de LDAP o entre LDAP y Active Directory. También he utilizado ILM para migrar desde Active Directory a un nuevo dominio en un nuevo bosque y de sistema operativo y aplicación aprovisionamiento con System Center Configuration Manager (SCCM).

Los conceptos clave y los métodos de ILM pueden un uphill experiencia para los administradores orientado a la infraestructura con conocimientos de desarrollo limitado de aprendizaje. No sólo es necesario saber algo acerca de ILM y desarrollar código de extensión ILM, también tiene que comprender los orígenes de datos conectado como Active Directory, Exchange, LDAP, SQL Server y así sucesivamente. Este tipo de complejidad debe dividirse en partes pequeñas, consumibles, que es lo que se intentar hacer en este artículo.

¿Qué es ILM?

ILM 2007 combina la administración de certificados que juntos proporcionan elementos claves del modelo de identidad y administración de acceso (IDA) y administración de identidades. La parte de administración de identidad de ILM se conocía anteriormente como MIIS (Microsoft Identity Integration Server) y, antes de MMS (Microsoft Meta-Directory Server). (La parte de administración de certificados, donde se administran el ciclo de vida de certificados y tarjetas inteligentes, no estar cubierta en este artículo, pero se puede integrar con la administración de identidad). Aunque es posible que la administración de identidades haya tenido una crisis de identidad propia, no tiene un problema de administrar sus identidades.

Una característica clave de IDA con ILM es su extensibilidad. Si no hay una manera simple que se puede hacer clic para hacer algo, puede escribir código para ampliar la funcionalidad de ILM. Aunque algunas implementaciones de ILM simples no necesita ningún código en absoluto, más necesario algún tipo de aprovisionamiento de cuentas de usuario o grupos, por lo que probablemente está destinado a escribir código. No se preocupe, aunque. Código de aprovisionamiento de ILM es bastante sencillo una vez los conceptos clave hacia abajo y comprender cuándo y cómo se reproduce el código en el panorama de IDA.

Elementos ILM

Como ocurre con cualquier tarea compleja, tiene que comprender los conceptos importantes antes de adentrarnos.

Metaverse los directorios conectados El metaverso (MV) es simplemente una base de datos. Se trata de una base de datos bastante compleja, pero todavía sólo una base de datos. ILM utiliza la MV para almacenar la configuración de todos los directorios conectados (CD) que importar los datos o exportar datos fuera de la MV. Tenga cuidado, no profundizar en la base de datos MV. Y nunca trabajar con él. No intente ejecutar informes directamente desde la base de datos MV o cambiar nada en él. Sólo terminará se dañe. (Hablar aquí de experiencia.)

agentes de administración Agentes de administración (agentes de administración) son las herramientas que se utiliza para definir CD. Puede crear una regla para importar y exportar datos en el MV desde un CD mediante el agente de administración importar y exportar reglas. Esta regla también define que MA contribuye a que el atributo y cómo datos se purgan de la MV una vez desaparece de todos los CD. TechNet tiene documentos de escenario descargable y regla establece que puede utilizar para comenzar rápidamente una vez que comprenda cómo funciona. Una vez haya asimilado escenarios sencillos, a continuación, soluciones más complejas que implican muchos orígenes de datos, manipulaciones de datos complejo y reglas detalladas pueden implementarse mediante ILM.

Los agentes de administración pueden filtrar datos desde el CD que no es necesario para realizar la conexión más eficaz. Por ejemplo, no tiene que examinar cada unidad organizativa en Active Directory. Seleccionar unidades organizativas necesarias hacer buscando objetos modificados o nuevos mucho más rápidos. En una base de datos conectado de SQL Server, filtrando datos innecesarios puede guardar mucho tiempo al procesamiento importar reglas (aunque es un método más eficaz utilizar una vista de SQL Server para proporcionar sólo los datos necesarios para el agente de administración en primer lugar).

espacio de conector, importar y exportar Cada MA conecta la MV a través de un espacio único conector (CS) que refleja los elementos de datos del CD. Datos se mueven a o desde el CS para la MV según las reglas de importación y exportación. Crear un nuevo objeto en un directorio conectado consiste sencilla de crear un conector en el CS para ese CD y, a continuación, exportar ese objeto en el CD.

El ejemplo de la figura 1 muestra un MA conectado a un Active Directory. Éste es el MA más sencillo y frecuente que puede configurarse. la figura 2 muestra los atributos que se transmiten dentro y fuera de la MV. Las flechas de definir la dirección del flujo de datos. Tenga en cuenta que no todos los atributos están seleccionados, sólo los que se consideran necesarios para implementar el tipo de datos modelo de flujo. Los datos distribuido como - es sin ningún cambio a menos que haya una extensión de importación o exportación.

fig01.gif

Figura 1 se que conecta de un agente de administración de ILM para un directorio conectado, en este caso, un Active Directory, con la capacidad de seleccionar unidades organizativas específicas.

fig02.gif

Figura 2 el flujo de atributos define cómo cada atributo se importar y exportar de ILM.

Durante los flujos de atributo, puede proceder a través de un atributo que se importa desde varios CDs. Si el atributo se produce en más de un CD, tiene que decidir qué CD contribuirá el atributo. Esto se denomina precedencia de atributo.

unirse y proyectos Unirse a significa conectar una entrada en un espacio de conector a un objeto de MV existente. Los criterios para la regla de combinación son totalmente hasta. Si va a combinar los usuarios de una base de datos en el MV, podría utilizar los números de empleado o alguna combinación de nombres y números. Deberá utilizar algo que hace una conexión única entre el CD y MV dentro el CS. Recuerde que los criterios de unión deben ser únicos o la regla de combinación producirá un error. Dicho esto, ILM es totalmente extensible y si deseara, podría escribir código para decidir cuál de las entradas que no son únicas para unirse a.

Proyectar significa inserta datos en el MV de espacio de conexión del directorio conectado. Para ello, deberá crear una proyección regla (consulte la figura 3 ), lo que implica unos pocos clics del mouse. Aprovisionamiento, obtendremos a en un minuto, lo inserta los datos en CS de un CD de la MV y definitivamente esto implica más de unos cuantos clics del mouse (ratón). Considérelo de esta forma: "del proyecto en" "provisión out" de la MV las MV. Puede prever sin escribir código, pero a provisión, tendrá que escribir código. Eso no quiere para decir que no puede implementar un flujo de datos no cualquier aprovisionamiento. Si todos los objetos ya existen y sólo desea asegurarse de que los atributos permanecen sincronizados, no necesitará ningún código. Configurar todas las importación y exportación de flujos de datos y reglas de unión y está casi buenos para ir.

fig03.gif

Figura 3 reglas de combinación y proyección se utilizan para definir cómo se asocian con objetos o crean en ILM.

Un agente de administración puede tener varias reglas de combinación, cada uno con varios criterios de combinación, pero sólo puede haber una regla de proyección.

Aprovisionamiento y Deprovisioning (baja)

El código en la figura 4 muestra un ejemplo de lo que necesita para aprovisionar un nuevo usuario en Active Directory. ¿Cómo podemos averiguar que necesitábamos crear un nuevo usuario? En este caso particular, hemos obtenido la información desde un sistema de H o R, pero igual de bien podría procedan desde algo tan simple como un archivo de hoja de cálculo o texto con información nueva de los usuarios y un agente de administración configurar para importar los usuarios la MV. ILM es muy flexible y puede importar datos desde una variedad de orígenes. Por ahora, vamos a ceñirse a Active Directory. El código de ejemplo utilizado aquí se deriva de escenarios de MIIS 2003 disponible para su descarga desde" Escenarios de Microsoft ® Identity Integration Server 2003."

Figura 4 Configuración de nuevos objetos en los directorios conectados

''   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

En esencia, el código comprueba si un usuario ya existe. Si no existe el usuario, un nuevo conector se crea para el usuario, como se muestra en la figura 5 . Si existe el usuario, ya habrá un conector de Active Directory en el CS, lo que significa que ILM no necesita consultar Active Directory propiamente dicho, sólo el CS de agente de administración que se conecta a Active Directory. La regla de exportación define los datos que se va a extenderse a Active Directory, por lo que el código de aprovisionamiento sólo necesita crear el conector y permitir que las reglas de flujo que siga el resto. Algo que recuerde, si inserta los datos dentro de aprovisionamiento de código, que se insertan datos sólo cuando el conector se crea, no en cada ciclo de sincronización como con el flujo de datos configurado mediante las reglas de flujo.

Figura 5 crear un nuevo conector

'
                ' 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

Para configurar el aprovisionamiento, tendrá que tomar el código de aprovisionamiento y utilizar Visual Studio para crearlo en un archivo DLL. El nombre que se asigna el archivo DLL no mucho cuestión, pero tiene que colocar el archivo DLL en la carpeta extensiones donde está instalado ILM y, a continuación, utilizar su nombre para configurar el aprovisionamiento. Una cosa que recordar es que aprovisionamiento sucede en el MV, no en los agentes de administración individuales. El código ejecuta siempre que un agente de administración viajes a través de algo que necesita ser creado, pero no es parte de la configuración MA aprovisionamiento; es parte de la configuración de administrador de identidades ILM general, como se muestra en la figura 6 . Solución buena un paso cuando experimente errores durante las ejecuciones de MA es temporalmente deshabilitar aprovisionamiento así aislar las pruebas a sólo la importación y exportar reglas y no el código de aprovisionamiento. Una vez confirmar que la importación y exportar reglas están trabajando, puede iniciar la solución de problemas el código de aprovisionamiento para encontrar el problema.

fig06.gif

Figura 6 uso una extensión de reglas personalizada para definir la configuración

Privación es el proceso de desconectar un objeto de la MV. Hay tres opciones para especificar el estado de un objeto:

  1. Hacer un objeto "desconector" significa que ya no está unido el objeto, pero no se quitará el CD. Si no está filtrada, también puede ser final hasta el fondo derecho en el CS en la siguiente importación.
  2. De forma similar hacer un objeto "desconector explícita" significa el objeto ya no está unido y no se quitará el CD, pero en este caso también está marcado para no reimportar.
  3. Eliminar el objeto desde el CD de decir exactamente. El objeto se eliminará el CD y de CS en la siguiente ejecución de exportación.

Tenga mucho cuidado con las opciones deprovisioning, como puede ser un dolor de cabeza importante si no se realizado correctamente y, aún peor, puede destruir datos seleccionando la opción incorrecta. Siempre realizar las pruebas en un entorno de laboratorio con copias de seguridad buena.

Importación y exportación extensiones

En algún momento, probablemente encontrará la necesidad de hacer algo con el CD de datos al importar o exportar, como combinar varios atributos para formar un nombre completo o conectar el nombre de usuario con nombre de dominio para formar una dirección de correo electrónico. Cuando esto sucede, es el momento para iniciar la creación de una extensión de reglas, que es esencialmente el código que permite cambios complejos. En la importación, una extensión de reglas significa que puede tomar varios atributos de CD como entrada para un único atributo de MV. En la exportación, significa que puede traer varias MV atributo a un único atributo de CD. Observe que el elemento común aquí es que el origen del flujo de datos puede utilizar varios atributos pero el destino del flujo de datos debe ser un solo atributo. De nuevo, esto es bastante sencilla lo que pasa de código y la DLL resultante tendrá que colocarse en la carpeta extensiones. Después de utilizar ese nombre en la definición de la extensión de las reglas de la configuración MA (consulte la figura 7 ) así como en el código para definir la regla que obtiene implementada.

fig07.gif

Figura 7 Extensiones de reglas de flujo de atributo de personalizado pueden ser writtenfor atributo complejo fl ows.

Ejecutar perfiles

Una vez haya agentes de administración configurado para importar y exportar datos, tiene que saber ILM para ejecutar una importación, exportación o una sincronización. Para ello, configurar un perfil de ejecución para cada una de estas operaciones en la configuración MA y, a continuación, ejecute uno de ellos en un momento para obtener los datos para desplazarse por los pasos adecuados de CD para VC para MV y de MV a VC en CD (consulte la figura 8 ).

fig09.gif

Figura 8 fluye de datos de los directorios conectados a la metaversethrough el conector espacio y vuelva a.

Las operaciones pueden ser completo, que inspecciona todo, o delta, que inspecciona sólo aquellos objetos que han cambiado. Por lo tanto, para una importación completa, ILM se inspeccionar cada objeto en el directorio conectado y importar todo el espacio del conector. Una exportación completa no la inversa de CS en CD. Una sincronización completa sincronizará cada objeto en el MV a cada objeto conectado, mientras que una sincronización delta sincroniza sólo los objetos modificados. Cuando está habilitado, aprovisionamiento obtiene desencadena durante la sincronización y decide si los nuevos conectores son necesarias en un directorio conectado examinando el CS para ese CD.

Para ejecutar un perfil, haga clic con el botón secundario en un agente de administración, seleccione Ejecutar y, a continuación, elija un perfil. Varios pasos pueden combinarse en un único perfil. Por ejemplo, suele configurar un perfil de "Total importar & total Sync" en cada MA, así como "Delta importar & delta sincronizar" y "Exportar" perfiles. Los perfiles también se pueden ejecutar desde archivos de comandos mediante una herramienta denominada runMA.vbs, disponible gratuitamente descarga en los escenarios mencionados anteriormente.

Perfiles de agente de administración de ILM normalmente se ejecutan secuencialmente desde una secuencia de comandos por lotes en el servicio Programador de Windows. Sí, parece un throwback, pero aunque cosas probablemente cambiarán en el futuro, por ahora debe generar sólo una simple secuencia de comandos para ejecutar los agentes de administración mediante runMA. La mayoría de los datos de directorio no cambian en tiempo real de todos modos. Utilizar al programador de tareas en el servidor ILM para ejecutar esta secuencia de comandos tantas veces como necesario mantener al día. Recuerde que agentes de administración que necesita para ejecutarse en un orden específico según el modelo de sincronización de datos y puede tener un impacto significativo sobre utilización de la red, por lo tanto, equilibrar la necesidad de sincronización de datos con la necesidad de conflictiva, posiblemente, un impacto mínimo en la red.

El futuro

ILM se puede obtener una actualización en el futuro que aparecerá una nueva interfaz basada en Web, la integración del flujo de trabajo, aprovisionamiento mediante una interfaz de usuario basada en Web y otro cambio de nombre. ILM se está adoptando en la familia Forefront de productos de administración de acceso y seguridad y pronto se conocerá como Forefront Identity Manager (FIM) 2010. Busque artículos en 2010 FIM como obtiene más cerca de versión para ver cómo puede aplicar las lecciones aprendidas en este artículo para el siguiente nivel de administración de identidades y acceso.

John McGlinchey , MCP, MCSA, MCSE es consultor jefe de Microsoft Consulting Services basado en el área de Philadelphia, PA, centrándose en Administración de identidades y acceso. John tiene más de 30 años de experiencia en la industria informática, incluyendo más de 20 años de experiencia de consultoría. Blogs en blogs.TechNet.com/johnmcg/, y es uno de IDAGUYS en blogs.TechNet.com/idaguys/quién regularmente el blog sobre temas de IDA. Figura ir.