Gestión del Directorio Activo
Alumno: David Montero Gamero
Director: Germán Rigau Claramunt
Junio 2009 - FISS
Índice













Introducción
Objetivos del Proyecto
Método de Trabajo
Funcionalidades
Diseño Arquitectónico
Tecnología Empleada
Diseño
Ejemplo de caso de uso: Mover Carpeta de Usuario
Implementación
Pruebas
Gestión del Proyecto
Conclusiones
Demo
29 de Junio de 2009
Gestión del Directorio Activo
2
Introducción
 Origen del proyecto: prácticas en la empresa Ibermática
Tecnología y Conocimiento (verano 2008).
 Antecedentes: Directorio Activo ¿Qué es? base de datos
implementada por Microsoft para almacenar todos los objetos
que componen su estructura, como pueden ser, usuarios,
grupos, servidores, puestos, etc. ¿ Qué es el CAU?
 Objetivo: desarrollar una aplicación que gestionará el
Directorio Activo del banco sin que el CAU acceda a los
servidores.
 ¿Cómo se hacia antes? Antes de la creación de esta aplicación,
el agente del CAU se validaba en los servidores del cliente
como administrador de dominio y realizaba modificaciones
directamente en el Directorio Activo.
29 de Junio de 2009
Gestión del Directorio Activo
3
Objetivos del Proyecto
 Que el CAU realice una serie de tareas sin tener que acceder




directamente a los servidores ni tener que validarse como
administradores.
Ganar agilidad y rapidez, y garantizar la seguridad del DA y de
los servidores.
Que el acceso y la utilización de la aplicación sean muy
intuitivos. Estructura de ventanas sencilla.
Implementar seguridad a la aplicación. Accesos restringidos.
Crear un registro con todos los pasos llevados a cabo por el
usuario CAU, para llevar un control de las gestiones realizadas.
29 de Junio de 2009
Gestión del Directorio Activo
4
Método de Trabajo
 Método de desarrollo de software: Proceso Unificado de
Desarrollo (PUD)
 Dirigido por casos de uso
 Centrado en la arquitectura
 Iterativo e incremental
 Fases de cada iteración
 Implementación
 Pruebas
 Organización del trabajo:
 Trabajo de desarrollo (3 iteraciones).
 Reuniones con el director del proyecto, con el cliente y
con la empresa.
 Seguir plan de contingencia y planificación temporal
para evitar problemas.
29 de Junio de 2009
Gestión del Directorio Activo
5
Funcionalidades: Casos de Uso
29 de Junio de 2009
Gestión del Directorio Activo
6
Funcionalidades
Gestionar Usuario:
 Alta de usuario
 Deshabilitar usuario
 Eliminar usuario
 Desbloquear usuario
 Reiniciar contraseña
 Obtener datos usuario
 Modificar datos usuario
 Agregar/Eliminar usuario
a grupo
 Mover Usuario
29 de Junio de 2009
Gestionar Carpeta Usuario:
 Crear carpeta de usuario
 Eliminar carpeta usuario
 Mover carpeta usuario
Gestionar Grupo:
 Alta de grupo
 Eliminar grupo
 Agregar/Eliminar grupo
Gestionar Puesto:
 Deshabilitar puesto
 Eliminar puesto
 Mover puesto
Gestión del Directorio Activo
7
Diseño Arquitectónico
 Arquitectura de 3 capas
 Aplicación Cliente/Servidor
29 de Junio de 2009
Gestión del Directorio Activo
8
Diseño Arquitectónico
 Elección Tecnológica:
 No ha habido elección tecnológica.
 Diseño de 3 capas:

Capa de Presentación: Visual Basic

Capa de Dominio: Visual Basic

Capa de Base de Datos: Directorio Activo de Windows 2003
Server.
 Mediante consultas SQL
29 de Junio de 2009
Gestión del Directorio Activo
9
Tecnología Empleada

Capa de Presentación
 Diseño de Ventanas: distribución, botones, colores,
fuentes, etc.
 Software: Visual Basic Studio 6.0 Professional y
SkinBorder PRO

Capa de Gestión de Datos: Directorio Activo de
Windows Server 2003

Capa de Dominio: Visual Basic Studio 6.0 Professional.
29 de Junio de 2009
Gestión del Directorio Activo
10
Diseño

Capa de Dominio
 Casos de Uso Reales (demostración)
 Pseudocódigo (memoria)
 Clases de Diseño
 Como se ha mencionado en la memoria las clases con
las que trabaja la aplicación son las que contempla el
Directorio Activo de Windows Server 2003. Y lo que
refleja la memoria no es más que una simplificación
de la realidad, ya que el número de atributos de cada
clase que existe en el DA es muy extenso.
29 de Junio de 2009
Gestión del Directorio Activo
11
Diseño

Visión simplificada de los objetos que contempla el
Directorio Activo
.
29 de Junio de 2009
Gestión del Directorio Activo
12
Caso de Uso: Mover Carpeta Usuario

Captura de Requisitos


Mediante este caso de uso, se permite mover la Carpeta de un usuario
de un servidor de datos a otro.
Análisis
29 de Junio de 2009
Gestión del Directorio Activo
13
Caso de Uso: Mover Carpeta Usuario
Name: ElegirOrigenCarpeta(idCarpeta): origen
Responsabilities: Permite seleccionar el origen de la carpeta.
Preconditions: La carpeta existe en la ubicación seleccionada.
Postconditions: Se almacena en la variable origen la ubicación origen de la carpeta.
Salida:
Name: SeleccionarDestinoCarpeta(idCarpeta):destino
Responsabilities:Permite seleccionar el origen de la carpeta
Preconditions: Ubicación destino válida, es decir, que no exista otra carpeta con el mismo
identificador en la ubicación destino.
Postconditions: Se almacena en la variable destino la ubicación destino de la carpeta.
Salida:
Name: MoverCarpeta(idCarpeta,origen,destino):info
Responsabilities: Permite mover la carpeta
Preconditions: Ubicación destino válida, es decir, que no exista otra carpeta con el mismo
identificador en la ubicación destino.
Postconditions: Se mueve la carpeta y su contenido del origen al destino, comprueba si el usuario
asociado a la carpeta ha sido movido de Unidad Organizativa y si ahora pertenece a Oficinas agregará
en la ficha de seguridad un usuario que se encarga de hacer las copias de seguridad. También se
encargará de eliminar la carpeta origen.
Salida:
29 de Junio de 2009
Gestión del Directorio Activo
14
Caso de Uso: Mover Carpeta Usuario

Diseño
If usuario existe = true then
If carpeta existe en la ubicación origen then
If existe otra carpeta perteneciente a ese usuario en el destino then
Indicar que ya existe una carpeta para ese usuario en el destino
Else
If op = SSCC a Oficinas then
Mover carpeta origen a backup oficinas
Mover carpeta de backup oficinas a servidor oficinas
Eliminar carpeta origen
Elseif op = Oficinas a SSCC then
Mover carpeta backup origen a destino
Mover carpeta de backup destino a servidor destino
Eliminar carpeta origen
29 de Junio de 2009
Gestión del Directorio Activo
15
Caso de Uso: Mover Carpeta Usuario
Elseif op = Oficinas a Oficinas then
Mover carpeta de backup origen a backup destino
Mover carpeta de backup destino a servidor destino
Eliminar carpeta en backup origen
Eliminar carpeta servidor origen
Elseif op = SSCC a SSCC then
Mover carpeta de origen a destino
End if
Asignar Permisos en la carpeta
End if
Else
Indicar que no existe la carpeta
Show Inicio
End if
Else
Indicar que el usuario no existe
Show Inicio
End if
29 de Junio de 2009
Gestión del Directorio Activo
16
Implementación
//Caso de uso Desbloquear Usuario. Código Formulario:
If GestorUsuario.UserExists(strUser) Then
GestorUsuario.Desbloquear strUser //Aquí llamamos al modulo de código
Else
MsgBox "El usuario no existe", 0, "AdminTool" //Comunicación con el usuario
End If
//Caso de uso Desbloquear Usuario. Código Módulo:
Sub Desbloquear(ByVal user)
Set objuser = GetUser(user)
If objuser.IsAccountLocked = True Then
objuser.IsAccountLocked = False
objuser.SetInfo
MsgBox "Cuenta desbloqueada", 0, "AdminTool"
Else
Msgbox”La cuenta ya estaba desbloqueada”…
29 de Junio de 2009
Gestión del Directorio Activo
17
Implementación
 Conexión al Controlador de Dominio:
Set objSWbemLocator = CreateObject ("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(Inicio.strComputer,
"root\directory\LDAP", Inicio.USUARIO_AUTH, Inicio.PASSWORD_AUTH)
 Ejemplo de Consulta SQL:
Set colItems = objWMIService.ExecQuery("SELECT * FROM ds_user WHERE
ds_samaccountname= '" & strUser & "'", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)
 Llamada a la función Registrar Evento :
LogEvent EVENT_ERROR, vbTab & "Error al desbloquear la cuenta del
usuario " & strUser
29 de Junio de 2009
Gestión del Directorio Activo
18
Pruebas
 Pruebas Unitarias: funcionamiento de un módulo de
código
 Pruebas de integración: fase del testeo de software en la
cual módulos individuales de software son combinados y
testeados como un grupo.
 Pruebas de validación:¿Es esto lo que el cliente quiere?
 Pruebas del sistema: periodo de pruebas en real
29 de Junio de 2009
Gestión del Directorio Activo
19
Gestión: Planificación Temporal – Diagrama de Gantt
 La planificación temporal constó de 8 fases:








Fase 1: DOP
Fase 2: Captura de requisitos
Fase 3: Análisis
Fase 4: Diseño
Fase 5: Primera iteración + Pruebas
Fase 6: Segunda iteración + Pruebas
Fase 7: Tercera iteración + Memoria
Fase 8: Presentación pública
29 de Junio de 2009
Gestión del Directorio Activo
20
Gestión: Planificación Temporal – Diagrama de Gantt
29 de Junio de 2009
Gestión del Directorio Activo
21
Horas Planificadas vs Horas Reales
Horas Planificadas
180
172
Horas Reales
54
59
44
36
18
3
11
3
Dop
Captura de
requisitos
29 de Junio de 2009
18
18
9
Análisis
22
15
Diseño
24
9
Primera
Iteración
Segunda
Iteración
Gestión del Directorio Activo
Tercera
Iteración
9
Presentación
Total
22
Relación de Procesos
Formativas
18%
Tacticas
27%
29 de Junio de 2009
Operativas
55%
Gestión del Directorio Activo
23
Conclusiones




Gestión del Proyecto:
 Dificultad para la estimación temporal de las fases del proyecto (horas de
trabajo)
 Mala estimación del coste de la tercera iteración (Memoria): 44 horas en lugar
de las 24 planificadas
Desarrollo de la Aplicación:
 Implementación modular.
 Gran importancia del análisis y diseño para facilitar la implementación.
Aportación:
 Experiencia en el desarrollo completo de una aplicación:

Paso por todas fases: captura de requerimientos  implementación

Trato con clientes reales y por lo tanto con problemas reales.
 Descubrimiento del desarrollo de
software (organización, creación y
programación)
Valoraciones Personales:
 Uno de los motivos de la elección de este proyecto fue la asignatura de
Ingeniería del Software.
 Principal dificultad: escasa experiencia en la programación de aplicaciones
“grandes”.
 Experiencia enriquecedora y satisfactoria.
29 de Junio de 2009
Gestión del Directorio Activo
24
Introducción
 Directorio Activo
29 de Junio de 2009
 Catálogo global del DA
Gestión del Directorio Activo
Descargar

Document