Hoy vamos a tratar un tema muy interesante que ha traído algunos quebraderos de cabeza a los usuarios de MOSS y vamos a intentar ayudaros a saber exactamente que está pasando con nuestro people picker. Imagino que todos conocéis el famoso people picker, pero para el que no lo conozco os dejo una imagen del mismo.

Como veis, el people picker nos sirve para buscar usuarios dentro de nuestra granja de SharePoint para darle permisos, añadirle en las audiencias o hacer otra operaciones con los usuarios. Lo primero de todo es distinguir los dos tipos de people picker que tenemos. Estos dos tipos son los siguientes:

  •  People Picker situado en la configuración del sitio dentro de la configuración de personas y grupos. Este people picker sirve para buscar usuarios ó grupos usando el proveedor de autenticación que tengamos configurado en la aplicación web y dar permisos a los mismos según nuestros requerimientos. Normalmente esta búsqueda se realizará en nuestro Directorio Activo.

 

  • People Picker situado en la configuración de nuestro Shared Services en la sección Audiencias y dentro de la única opción que tenemos dentro. Las audiencias, a grandes rasgos, sirven para configurar si un determinado usuarios ó un grupo de usuarios pueden ver por ejemplo una web part situada en una página de nuestra aplicación web.

Teniendo presente esta división mencionada anteriormente, ahora vamos a ver en que se diferencian cada uno cuando los estamos usando y veremos algunas nociones de como podemos saber porque puede que nuestro people picker no encuentre los usuarios deseados en un momento dado.

El funcionamiento del primer people picker descrito consiste en un acceso directo a nuestro origen de datos de usuarios configurado en nuestro proveedor de autenticación. En el caso de que estemos utilizando Directorio Activo, este people picker se conectará directamente al Directorio Activo para obtener los usuarios que estamos buscando. Sabiendo esto y en el caso de que nuestros usuarios no aparezcan en el people picker os vamos a presentar una serie de pasos a seguir y comprobaciones que podéis hacer para intentar encontrar el motivo de este comportamiento.

1. Captura de network monitor para comprobar conectividad y tráfico. Al capturar esta traza podremos aplicar un filtro LDAP a ficha traza y veremos algo similar a la siguiente imagen:

Network Monitor

Como vemos al filtrar la captura viendo únicamente el tráfico LDAP tenemos varias trazas que representan la comunicación entre nuestro servidor MOSS y nuestro controlador de dominio. En el caso de que estas trazas no aparezcan debemos tener en cuenta si MOSS y el DC están en el mismo servidor. Si es así, no existirá tráfico y por lo tanto no podremos ver estas trazas. Ahora dentro de nuestro troubleshooting vamos a diferenciar dos tipos de comportamientos:

    • Sólo vemos trazas del tipo Search Request. En la columna "Description" podemos ver de que tipo son las consultas ldap y si se da el caso de que sólo vemos trazas del tipo Search Request quiere decir que el DC no está contestando a nuestra petición de búsqueda.
    • Vemos trazas como las imagenes pero nuestro usuario no aparece en la búsqueda de MOSS. Para ver este comportamiento debemos de buscar la traza en la que MOSS realiza la petición de búsqueda que le hemos indicado, es decir, la búsqueda de nuestro usuario. Para ello debemos fijarnos en los detalles de las trazas de tipo Search Request y buscar dentro de los detalles de la trama el filtro aplicado en dicha traza. Debemos ver algo similar a la siguiente imagen:

Network Monitor frame details

En la imagen vemos un campo llamado filter. Nos vamos a centrar en este campo para hacer pruebas y poder así comprobar si el filtro aplicado es el adecuado. Tras la traza del tipo Search Request debe aparecer una traza del tipo Search Result que nos indica si la búsqueda ha sido correcta o no y los elementos que devuelve dicha búsqueda dentro del campo SearchResultEntry. Para comprobar si este filtro es correcto o no utilizaremos la herramienta LDP que se encuentra dentro de las Support Tools de Windows Server 2003.

Con la herramienta LDP podremos realizar consultas contra nuestro Dominio para saber si esta consulta es correcta. Una vez que abrimos la aplicación LDP lo primero que tenemos que hacer es conectarnos a nuestro controlador de dominio con el menú "Connection" la opción "Connect". Aquí nos pedirá el servidor de controlador de dominio.

 LDP connect

Tras esta información necesitamos hacer un bind contra dicho servidor indicando el usuario de acceso al contenido que tenemos configurado en el servicio de búsquedas. Para ello pinchamos en el menú "Connection" y posteriormente en la opción "Bind" para indicar el usuario, password y dominio.

 

Una vez realizada esta operación podremos probar la consulta con la opción "Search" que se encuentra en el menú "Browse" de LDP. Veremos una ventana dónde debemos introducir la base de búsqueda y el filtro a aplicar. Aplicando el filtro visto anteriormente podemos comprobar si realmente dicha consulta es correcta o no. Tras ejecutar la búsqueda en la ventana principal de LDP nos indicará los elementos recuperados con ese filtro. Si no devuelve elementos tendremos un problema con nuestra consulta. Dicha consulta puede ser modificada con stsadm y las operaciones que se indican un poco más abajo de este artículo.

Os dejo un enlace con información sobre la herramienta LDP http://support.microsoft.com/kb/224543

2. Otro aspecto importante es comprobar si la cuenta de acceso al contenido que tenemos configurada en las búsquedas de MOSS y la cuenta del application pool de la aplicación web tienen acceso al directorio activo y son capaces de ver el usuario que estamos buscando. Para ello podemos seguir los mismos pasos con LDP de conexión y enlace al directorio activo y en vez de realizar una búsqueda podemos pinchar en la opción "Tree" del menú "View" y así podremos navegar en la parte izquierda de la ventana hasta llegar al usuario que estamos buscando. Si se visualiza correctamente hemos descartado problemas de acceso de la cuenta al directorio activo. Si por el contrario no somos capaces de llegar al usuario habrá que revisar los permisos de las cuentas mencionadas dentro del directorio activo.

3. Otro punto a tener en cuenta son las relaciones de confianza entre dominios cuando tenemos varios dominios ó subdominios. Es necesario comprobar que estas relaciones están funcionando correctamente con la herramienta del directorio activo destinada para dicho fín.

4. Revisar la configuración del people picker del sitio en el que estamos intentando agregar el usuario. Existen diferentes comandos de stsadm para cambiar la configuración del people picker. Son los siguientes:

  • Peoplepicker-getsiteuseraccountdirectorypath  y Peoplepicker-setsiteuseraccountdirectorypath: con este comando podemos consultar y cambiar la ruta en la que realizará la consulta al active directory dentro de un site collection. Es decir, podemos especificar que el people picker de un site collection busque los usuarios únicamente en una OU de nuestro directorio activo.

  • Peoplepicker-activedirectorysearchtimeout: configura un timeout para las consultas contra el directorio activo de nuestro people picker.

  • Peoplepicker-distributionlistsearchdomains: restringe la búsqueda de usuarios a un conjunto específico de dominios

  • Peoplepicker-onlysearchwithinsitecollection: muestra sólo los usuarios que ya están agregados al site collection dónde se está realizando la búsqueda.

  • Peoplepicker-searchadcustomfilter: permite especificar el filtro de búsqueda que se utilizará para buscar los usuarios en el directorio activo.

  • Peoplepicker-searchadcustomquery: permite moficar la consulta que se mandará al directorio activo y especificar así los campos del directorio activo dónde se buscará la cadena introducida en el people picker.

  • Peoplepicker-searchadforests: permite indicar otro dominio dónde buscar los usuarios.

Aquí os dejo un enlace que detalla en profundidad las operaciones mencionadas: http://technet.microsoft.com/en-us/library/cc263318.aspx

 Con estas operaciones de stsadm y las trazas de red se suelen resolver la mayoría de casos relacionados con el people picker de usuario. En una segunda entrega, entraremos en detalle en el people picker de las audiencias cuyo funcionamiento es sensiblemente diferente.

Espero que os sea útil dicha información.

 Un saludo, el grupo de soporte de MOSS.