En informática , un servicio de directorio o servicio de nombres asigna los nombres de los recursos de red a sus respectivas direcciones de red . Es una infraestructura de información compartida para localizar, gestionar, administrar y organizar elementos cotidianos y recursos de red, que pueden incluir volúmenes, carpetas, archivos, impresoras, usuarios, grupos, dispositivos, números de teléfono y otros objetos. Un servicio de directorio es un componente crítico de un sistema operativo de red . Un servidor de directorio o servidor de nombres es un servidor que proporciona dicho servicio. Cada recurso de la red es considerado un objeto por el servidor de directorio. La información sobre un recurso en particular se almacena como una colección de atributos asociados con ese recurso u objeto.
Un servicio de directorio define un espacio de nombres para la red. El espacio de nombres se utiliza para asignar un nombre (identificador único) a cada uno de los objetos. Los directorios suelen tener un conjunto de reglas que determinan cómo se nombran e identifican los recursos de red, lo que suele incluir un requisito de que los identificadores sean únicos e inequívocos . Al utilizar un servicio de directorio, un usuario no tiene que recordar la dirección física de un recurso de red; proporcionar un nombre localiza el recurso. Algunos servicios de directorio incluyen disposiciones de control de acceso , lo que limita la disponibilidad de la información del directorio a los usuarios autorizados .
Comparación con bases de datos relacionales
Hay varias cosas que distinguen un servicio de directorio de una base de datos relacional . Los datos pueden volverse redundantes si esto mejora el rendimiento (por ejemplo, repitiendo valores en las filas de una tabla en lugar de relacionarlos con el contenido de una tabla diferente a través de una clave, técnica que se denomina desnormalización ; otra técnica podría ser la utilización de réplicas para aumentar el rendimiento real). [1]
Los esquemas de directorio son clases de objetos, atributos, enlaces de nombres y conocimiento (espacios de nombres) donde una clase de objeto tiene:
- Must - atributos que cada instancia debe tener
- Mayo : atributos que se pueden definir para una instancia pero que se pueden omitir, con una ausencia similar a NULL en una base de datos relacional
Los atributos a veces tienen varios valores, lo que permite asignar nombres a varios atributos en un mismo nivel (como la concatenación de tipo de máquina y número de serie , o varios números de teléfono para "teléfono del trabajo"). Los atributos y las clases de objetos suelen estar estandarizados en toda la industria; por ejemplo, los atributos y las clases X.500 suelen registrarse formalmente en la IANA para su ID de objeto. [ cita requerida ] Por lo tanto, las aplicaciones de directorio intentan reutilizar las clases y los atributos estándar para maximizar el beneficio del software de servidor de directorio existente.
Las instancias de objetos se ubican en espacios de nombres; cada clase de objeto hereda de su clase de objeto padre (y, en última instancia, de la raíz de la jerarquía ), agregando atributos a la lista de elementos obligatorios y permitidos. Los servicios de directorio suelen ser fundamentales para el diseño de seguridad de un sistema de TI y tienen una granularidad correspondientemente fina de control de acceso.
Replicación y distribución
La replicación y la distribución tienen significados distintos en el diseño y la gestión de un servicio de directorio. La replicación se utiliza para indicar que el mismo espacio de nombres de directorio (los mismos objetos) se copian en otro servidor de directorio por razones de redundancia y rendimiento; el espacio de nombres replicado está regido por la misma autoridad. La distribución se utiliza para indicar que varios servidores de directorio en diferentes espacios de nombres están interconectados para formar un servicio de directorio distribuido; cada espacio de nombres puede estar regido por una autoridad diferente.
Implementaciones
Los servicios de directorio formaban parte de una iniciativa de interconexión de sistemas abiertos (OSI) para la creación de estándares de red comunes y la interoperabilidad entre múltiples proveedores. Durante la década de 1980, la UIT y la ISO crearon el conjunto de estándares X.500 para servicios de directorio, inicialmente para satisfacer los requisitos de mensajería electrónica entre operadores y búsqueda de nombres de red. El Protocolo ligero de acceso a directorios (LDAP) se basa en los servicios de información de directorio X.500, utilizando la pila TCP/IP y un esquema de codificación de cadenas del Protocolo de acceso a directorios (DAP) X.500 en Internet .
Los sistemas desarrollados antes del X.500 incluyen:
- Sistema de nombres de dominio (DNS): el primer servicio de directorio en Internet, [2] todavía en uso
- Hesiod : basado en DNS y utilizado en el Proyecto Athena del MIT
- Servicio de información de red (NIS): originalmente Páginas Amarillas (YP). Implementación de Sun Microsystems de un servicio de directorio para entornos de red Unix . Cumplía una función similar a Hesiod.
- NetInfo : desarrollado por NeXT a finales de los años 80 para NEXTSTEP . Tras su adquisición por parte de Apple, se lanzó como código abierto y fue el servicio de directorio para Mac OS X antes de que quedara obsoleto para Open Directory basado en LDAP. El soporte para NetInfo se eliminó con el lanzamiento de Leopard 10.5.
- Banyan VINES : el primerservicio de directorio escalable
- Dominios NT : desarrollado por Microsoft para proporcionar servicios de directorio para máquinas Windows antes del lanzamiento del Directorio Activo basado en LDAP en Windows 2000. Windows Vista continúa admitiendo dominios NT después de relajar sus protocolos de autenticación mínimos.
Implementaciones LDAP
Las implementaciones basadas en LDAP/X.500 incluyen:
- 389 Directory Server : Implementación de servidor de código abierto gratuito de Red Hat , con soporte comercial de Red Hat y SUSE .
- Active Directory : servicio de directorio de Microsoft para Windows , que se origina a partir del directorio X.500, creado para su uso en Exchange Server , incluido por primera vez con Windows 2000 Server y compatible con versiones sucesivas de Windows.
- Servidor de directorio Apache : servicio de directorio escrito en Java, compatible con LDAP, Kerberos 5 y el protocolo de cambio de contraseña; certificado para LDAPv3
- Apple Open Directory : servidor de directorio de Apple para Mac OS X , disponible a través de Mac OS X Server
- eDirectory: la implementación de servicios de directorio de NetIQ admite múltiples arquitecturas, incluidas Windows , NetWare , Linux y varias versiones de Unix y se utiliza para la administración y configuración de usuarios y la gestión de software; anteriormente conocido como Novell Directory Services.
- Red Hat Directory Server : Red Hat lanzó Red Hat Directory Server, adquirido de la unidad Netscape Security Solutions de AOL, [3] como un producto comercial que se ejecuta sobre Red Hat Enterprise Linux como el proyecto 389 Directory Server con apoyo de la comunidad . El proyecto de código abierto original se llama FreeIPA .
- Oracle Internet Directory : (OID) es el servicio de directorio de Oracle Corporation , compatible con LDAP versión 3.
- Servidor de directorio del sistema Sun Java : servicio de directorio de Sun Microsystems [4]
- OpenDS : servicio de directorio de código abierto en Java, respaldado por Sun Microsystems [5]
- Oracle Unified Directory: (OUD) es la solución de directorio unificado de última generación de Oracle Corporation . Integra funciones de almacenamiento, sincronización y proxy.
- Los Servicios de directorio de Windows NT (NTDS), posteriormente rebautizados como Active Directory , reemplazó al antiguo sistema de dominio NT.
- Servidor de directorio de ruta crítica
- OpenLDAP : derivado de la implementación LDAP original de la Universidad de Michigan (como las implementaciones de Netscape, Red Hat, Fedora y Sun JSDS), admite todas las arquitecturas de computadoras (incluidos Unix y derivados de Unix, Linux, Windows, z/OS y varios sistemas integrados en tiempo real).
- Dominó de loto
- Directorio de Nexor
- OpenDJ es un servidor LDAP y cliente de directorio basado en Java que se ejecuta en cualquier entorno operativo, bajo licencia CDDL . Desarrollado por ForgeRock hasta 2016, [6] ahora mantenido por OpenDJ Community
Las herramientas de código abierto para crear servicios de directorio incluyen OpenLDAP, el protocolo Kerberos y el software Samba , que puede funcionar como un controlador de dominio de Windows con back-end Kerberos y LDAP . La administración está a cargo de GOsa o Samba SWAT.
Uso de servicios de nombres
Sistemas Unix
Los servicios de nombres en los sistemas Unix se configuran normalmente a través de nsswitch.conf . La información de los servicios de nombres se puede recuperar con getent .
Véase también
- Lista de control de acceso
- Lenguaje de marcado de servicios de directorio
- Modelo de base de datos jerárquico
- Formato de intercambio de datos LDAP
- Metadirectorio
- Plataforma de prestación de servicios
- Directorio virtual
Referencias
Citas
- ^ "Cuándo y cómo se debe desnormalizar una base de datos relacional". rubygarage.org . Consultado el 30 de abril de 2023 .
- ^ "RFC1034". IETF.org. 1978-11-01 . Consultado el 2018-02-13 .
- ^ "Red Hat invierte 23 millones de dólares en el negocio de soluciones de seguridad de la antigua Netscape" . Consultado el 22 de abril de 2018 .
- ^ "Oráculo y sol". Sun.com. 7 de septiembre de 2010. Consultado el 9 de enero de 2012 .
- ^ "Java.net". Opends.dev.java.net. Archivado desde el original el 4 de julio de 2007. Consultado el 9 de enero de 2012 .
- ^ "ForgeRock ha cerrado la comunidad de código abierto y ya no permite nuevos desarrollos en su plataforma bajo una licencia permisiva". timeforafork . 1 de junio de 2017. Archivado desde el original el 3 de octubre de 2017 . Consultado el 1 de junio de 2017 .
Fuentes
- Carter, Gerald (2003). Administración del sistema LDAP . O'Reilly Media . ISBN. 978-1-56592-491-8.