250 likes | 472 Views
Proyecto Fin de Carrera Ingeniería Técnica en Informática de Sistemas. 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
E N D
Proyecto Fin de Carrera Ingeniería Técnica en Informática de Sistemas 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 Gestión del Directorio Activo
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. Gestión del Directorio Activo
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. Gestión del Directorio Activo
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. Gestión del Directorio Activo
Funcionalidades: Casos de Uso Gestión del Directorio Activo
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 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
Diseño Arquitectónico • Arquitectura de 3 capas • Aplicación Cliente/Servidor Gestión del Directorio Activo
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 Gestión del Directorio Activo
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. Gestión del Directorio Activo
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. Gestión del Directorio Activo
Diseño • Visión simplificada de los objetos que contempla el Directorio Activo • . Gestión del Directorio Activo
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 Gestión del Directorio Activo
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: Gestión del Directorio Activo
Caso de Uso: Mover Carpeta Usuario Ifusuario existe = true then Ifcarpeta 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 Oficinasthen Mover carpeta origen a backup oficinas Mover carpeta de backup oficinas a servidor oficinas Eliminar carpeta origen Elseifop = Oficinas a SSCC then Mover carpeta backup origen a destino Mover carpeta de backup destino a servidor destino Eliminar carpeta origen • Diseño Gestión del Directorio Activo
Caso de Uso: Mover Carpeta Usuario Elseifop = 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 Endif Asignar Permisos en la carpeta Endif Else Indicar que no existe la carpeta Show Inicio Endif Else Indicar que el usuario no existe Show Inicio Endif Gestión del Directorio Activo
Implementación //Caso de uso Desbloquear Usuario. CódigoFormulario: If GestorUsuario.UserExists(strUser) Then GestorUsuario.DesbloquearstrUser //Aquí llamamos al modulo de código Else MsgBox "El usuario no existe", 0, "AdminTool" //Comunicación con el usuario EndIf //Caso de uso Desbloquear Usuario. Código Módulo: Sub Desbloquear(ByValuser) 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”… Gestión del Directorio Activo
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 Gestión del Directorio Activo
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 Gestión del Directorio Activo
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 Gestión del Directorio Activo
Gestión: Planificación Temporal – Diagrama de Gantt Gestión del Directorio Activo
Horas Planificadas vs Horas Reales Gestión del Directorio Activo
Relación de Procesos Gestión del Directorio Activo
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. Gestión del Directorio Activo
Introducción • Directorio Activo • Catálogo global del DA Gestión del Directorio Activo