Hosting de Calidad
  • Inicio
  • Precios y servicios
  • F.a.q y ayudas
  • Realizar pedido
  • Webs alojadas
  • Quienes somos
  • Foro HyD
  • Contacto

    Zona Dominios

    Entrar
    registro de dominios


    Zona Hosting

    Entrar
    alojamiento web


    5 Métodos de Pago
    Tarjeta de crédito
    Domiciliación
    Transferencia
    Soporte Epagado
    Soporte Paypal

    Liberalización .es

    Ver mas
    dominios .es


  •  
     
     
    Funciones LDAP

    XLVIII_ Funciones LDAP

    Introducción

    LDAP es el protocolo de acceso a directorios ligero (Lightweight Directory Access Protocol), un protocolo usado para acceder a "Servidores de Directorio"_ El directorio es una clase especial de base de datos que contiene información estructurada en forma de árbol_

    El concepto es similar a la estructura de directorios de los discos duros, pero en este caso, el directorio raiz es "El Mundo" y los subdirectorios de primer nivel son los "países"_ Niveles inferiores de la estructura de directorio contienen entradas para compañías, organizaciones o lugares, y en niveles aún inferiores se encuentran las entradas para la gente, y quizás de equipos informáticos y documentos_

    Para referirse a un fichero en un subdirectorio del disco duro se usa algo como


        /usr/local/misapps/docs
       

    Las barras marcan cada división en la referencia al fichero, y la secuencia es leida de izquierda a derecha_

    El equivalente a la referencia a un fichero en LDAP es el "distinguished name" (nombre distinguible), abreviado como "db"_ Un ejemplo de dn podría ser_


        cn=Pedro Pérez,ou=Contabilidad,o=Mi Compañía,c=ES
       

    Las comas marcan cada división en la referencia, y la secuencia se lee de derecha a izquierda_ Este dn se leería como:


        country = ES
        organization = Mi Compañía
        organizationalUnit = Contabilidad
        commonName = Pedro Pérez
       

    De la misma manera que no hay reglas estrictas sobre como organizar la estructura de directorios de un disco duro, un administrador de un servidor de directorio puede establecer cualquier estructura que sea útil para sus propósitos_ Sin embargo hay algunos acuerdos tácitos que siempre deben seguirse_ El mensaje es que no se puede escribir código para acceder un directorio si no se conoce algo de su estructura, igual que no se puede usar una base de datos sin algún conocimiento sobre lo que está disponible en ella_

    Información sobre LDAP se puede encontrar en:

    Netscape SDK tiene una Guia de programación muy buena en HTML_

    Requerimientos

    Se necesita obtener y compilar las bibliotecas LDAP cliente de la Universidad de Michigan ldap_3_3 package, Netscape Directory SDK 3_0 ó OpenLDAP si queremos que PHP soporte LDAP_

    Instalación

    LDAP support in PHP is not enabled by default_ You will need to use the __with_ldap[=DIR] configuration option when compiling PHP to enable LDAP support_ DIR is the LDAP base install directory_

    Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine_ (Ex: C:\WINNT\SYSTEM32, C:\WINDOWS\SYSTEM32 or c:\WINDOWS\SYSTEM)_ For PHP <= 4_2_0 copy libsasl_dll, for PHP >= 4_3_0 copy libeay32_dll and ssleay32_dll to your SYSTEM folder_

    Configuración en tiempo de ejecución

    El comportamiento de estas funciones está afectado por los valores definidos en php_ini_

    Tabla 1_ LDAP configuration options

    NameDefaultChangeable
    ldap_max_links"_1"PHP_INI_SYSTEM
    For further details and definition of the PHP_INI_* constants see ini_set()_

    Tipos de recursos

    Esta extensión no tiene ningún tipo de recurso definido_

    Constantes predefinidas

    Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución_

    LDAP_DEREF_NEVER (integer)

    LDAP_DEREF_SEARCHING (integer)

    LDAP_DEREF_FINDING (integer)

    LDAP_DEREF_ALWAYS (integer)

    LDAP_OPT_DEREF (integer)

    LDAP_OPT_SIZELIMIT (integer)

    LDAP_OPT_TIMELIMIT (integer)

    LDAP_OPT_PROTOCOL_VERSION (integer)

    LDAP_OPT_ERROR_NUMBER (integer)

    LDAP_OPT_REFERRALS (integer)

    LDAP_OPT_RESTART (integer)

    LDAP_OPT_HOST_NAME (integer)

    LDAP_OPT_ERROR_STRING (integer)

    LDAP_OPT_MATCHED_DN (integer)

    LDAP_OPT_SERVER_CONTROLS (integer)

    LDAP_OPT_CLIENT_CONTROLS (integer)

    LDAP_OPT_DEBUG_LEVEL (integer)

    GSLC_SSL_NO_AUTH (integer)

    GSLC_SSL_ONEWAY_AUTH (integer)

    GSLC_SSL_TWOWAY_AUTH (integer)

    Ejemplos

    Recuperar informacion para todas las entradas donde el apellido empiece por "P" de un servidor de directorio, mostrando un extracto con el nombre y dirección de correo electrónico_

    Ejemplo 1_ Ejemplo de búsqueda LDAP

    <?php
    // La secuencia b&aacute;sica para trabajar con LDAP es conectar, autentificarse,
    // buscar, interpretar el resultado de la b&uacute;squeda y cerrar la conexi&oacute;n_
    
    echo "&lt;h3>Prueba de consulta LDAP&lt;/h3>";
    echo "Conectando ___";
    $ds=ldap_connect("localhost");  // Debe ser un servidor LDAP v&aacute;lido!
    echo "El resultado de la conexi&oacute;n es "_$ds_"&lt;p>";
    
    if ($ds) { 
        echo "Autentificandose  ___"; 
        $r=ldap_bind($ds);     // Autentificaci&oacute;n an&oacute;nima, t&iacute;picamente con
                               // acceso de lectura
        echo "El resultado de la autentificaci&oacute;n es "_$r_"&lt;p>";
    
        echo "Buscando (sn=P*) ___";
        // Busqueda de entradas por apellidos
        $sr=ldap_search($ds,"o=Mi Compa&ntilde;ia, c=ES", "sn=P*");  
        echo "El resultado de la b&uacute;squeda es "_$sr_"&lt;p>";
    
        echo "El n&uacute;mero de entradas devueltas es "_ldap_count_entries($ds,$sr)_"&lt;p>";
    
        echo "Recuperando entradas ___&lt;p>";
        $info = ldap_get_entries($ds, $sr);
        echo "Devueltos datos de "_$info["count"]_" entradas:&lt;p>";
    
        for ($i=0; $i<$info["count"]; $i++) {
            echo "dn es: "_ $info[$i]["dn"] _"&lt;br>";
            echo "La primera entrada cn es: "_ $info[$i]["cn"][0] _"&lt;br>";
            echo "La primera entrada email es: "_ $info[$i]["mail"][0] _"&lt;p>";
        }
    
        echo "Cerrando conexi&oacute;n";
        ldap_close($ds);
    
    } else {
        echo "&lt;h4>Ha sido imposible conectar al servidor LDAP&lt;/h4>";
    }
    ?>

    Usando las llamadas LDAP de PHP

    Antes de usarse las llamadas LDAP se debe saber __

    • El nombre o dirección del servidor de directorio que se va a usar

    • El "dn base" del servidor (la parte del directorio global contenida en ese servidor, que puede ser por ejemplo "o=Mi Compañia,c=ES")

    • Si es necesaria contraseña para acceder al servidor (muchos servidores ofrecen acceso de lectura para usuarios anónimos pero requieren un password para cualquier otro acceso)

    La secuencia típica de llamadas LDAP suele implementarse en aplicaciones que siguen el siguiente patrón:


      ldap_connect()    // establecer la conexión con el servidor
         |
      ldap_bind()       // login anónimo o autentificado
         |
      Hacer búsquedas o actualizaciones en el directorio
      y mostrar los resultados
         |
      ldap_close()      // Cerrar la conexión
        

    Tabla de contenidos
    ldap_8859_to_t61 __  Translate 8859 characters to t61 characters
    ldap_add __ Añade entradas a un directorio LDAP
    ldap_bind __ Autentifica en un directorio LDAP
    ldap_close __ Cierra una conexión a un servidor LDAP
    ldap_compare __ Compare value of attribute found in entry specified with DN
    ldap_connect __ Conecta con un servidor LDAP
    ldap_count_entries __ Cuenta el número de entradas de una búsqueda
    ldap_delete __ Borra una entrada de un directorio
    ldap_dn2ufn __ Convierte un dn al formato User Friendly Naming
    ldap_err2str __  Convierte un código numérico de error LDAP en un mensaje_
    ldap_errno __  Devuelve el código numérico de error para el último comando LDAP_
    ldap_error __  Devuelte el mensaje de error del último comando LDAP
    ldap_explode_dn __ Divide un DN en las partes que le componen
    ldap_first_attribute __ Devuelte el primer atributo
    ldap_first_entry __ Devuelve el identificador del primer resultado
    ldap_first_reference __  Return first reference
    ldap_free_result __ Libera la memoria que almacena los resultados
    ldap_get_attributes __ Obtiene los atributos de una entrada de un resultado de búsqueda
    ldap_get_dn __ Obtiene el DN de una entrada de un resultado
    ldap_get_entries __ Obtiene todas las entradas de un resultado
    ldap_get_option __ Get the current value for given option
    ldap_get_values_len __ Obtiene todos los valores binarios de un atributo de una entrada
    ldap_get_values __ Obtiene todos los valores de un atributo de una entrada
    ldap_list __ Búsqueda Single_level (Nivel Único)
    ldap_mod_add __ Añade valores de atributos
    ldap_mod_del __ Borra valores de atributos
    ldap_mod_replace __ Reemplaza valores de atributos
    ldap_modify __ Modifica una entrada LDAP
    ldap_next_attribute __ Obtiene el siguiente atributo de una entrada
    ldap_next_entry __ Obtiene la siguiente entrada de un resultado
    ldap_next_reference __  Get next reference
    ldap_parse_reference __  Extract information from reference entry
    ldap_parse_result __  Extract information from result
    ldap_read __ Lee una entrada
    ldap_rename __ Modify the name of an entry
    ldap_search __ Busca en un arbol LDAP
    ldap_set_option __ Set the value of the given option
    ldap_set_rebind_proc __  Set a callback function to do re_binds on referral chasing_
    ldap_sort __  Sort LDAP result entries
    ldap_start_tls __  Start TLS
    ldap_t61_to_8859 __  Translate t61 characters to 8859 characters
    ldap_unbind __ Hace logout de un directorio LDAP
     
       



    registro de dominios | alojamiento web | hosting por publicidad

       

     

    Manual de linux Manual de apache Manual de php Manual de mysql Manual de SQL Manual del Plesk Como funciona Paypal Manual de html