Security Provider con ADAM en MOSS y WSS3

Es muy común disponer de autenticaciones sobre MOSS o WSS3 contra ADAM’s o distintas ramas de un dominio AD. En lugar de utilizar un desarrollo a medida utilizaremos la infraestructura de proveedores de Sharepoint.

Security Provider contra un ADAM

Active Directory Application Mode es una herramienta muy utilizada en proyectos en los que tenemos un repositorio de usuarios pero independiente del dominio.

Crearemos una instancia de ADAM

Podremos bajar el instalador de la página de Microsoft.

Creamos una instancia del ADAM, indicamos el nombre y el puerto de acceso.

ADAM1 ADAM2 ADAM3

Indicamos la raiz de nuestro ADAM.

ADAM4

El usuario del servicio sobre el que se ejecutará el ADAM y el usuario administrador

ADAM5 ADAM6

Indicamos la plantilla MS-user.LDF para poder crear usuarios.

ADAM7

Al finalizar, conectamos con la consola de ADAM y crearemos nuestra jerarquía y usuarios necesaria. Al crear el usuario, tendremos que desbloquearlos indicando el valor FALSE en el atributo msDS-UserAccountDisabled y estableceremos la password del usuario. En los atributos del usuario editaremos el campo «userPrincipalName» con el nombre de nuestro usuario. Este campo será el que utilicemos para realizar la búsqueda.

ADAM8 ADAM9

 

Por último indicaremos al ADAM que nuestro usuario tendrá permisos de administración para que nos podamos conectar desde fuera.

Iremos CN=Roles dentro en CN=Administrators y en la propiedad «member» añadiremos nuestro usuario del ADAM.

 

ADAM14 

 

Configuración del Web.Config

Una vez creado el ADAM tendremos que indicar a nuestra WebApplication que utilice el provider adecuado para autentificar los usuarios.

Para ello seleccionaremos la opción de «Proveedores de autenticación» de la consola de administración central, seleccionaremos la zona para la que queremos utilizar el provider y elegiremos autenticación por formulario y el nombre del provider. Al aceptar los cambios, nos modificará el Web.Config del WebApplication seleccionado.

ADAM10

A continuación daremos de alta el provider en el web.config del WebApplication seleccionado y en el WebApplication de la administración central. El motivo de darlo de alta en la administración central será para poder indicar el usuario administrador de nuestra colección. Si no hacemos esto, cuando intentemos acceder nos dará un error que no será capaz de encontrar el usuario administrador, ya que la colección tendrá asignado el usuario administrador del dominio y no el de nuestro provider.

ADAM11

Tener en cuenta que una vez activemos el provider para una zona todas las validaciones de esa zona las realizará con ese provider. Así si modificamos el provider para la zona predeterminada por defecto realizará la autenticación con ese provider y no con contra el dominio.

 

Autenticación de WSS3 con ADAM

Si navegáis por internet, vereis que todos los ejemplos de provider contra un ADAM son con MOSS. Esto es porque WSS3 no implementa un provider específico para LDAP. Pero si para una estructura similar a un AD.

Utilizaremos entonces «System.Web.Security.ActiveDirectoryMembershipProvider».

En nuestro caso hemos añadido dentro de system.web:

<membership >
      <providers>
             <add connectionStringName=»ADService» connectionUsername=»CN=admin,DC=MiRaiz,DC=COM«
               connectionPassword=»MiPassword» connectionProtection=»None«
              description=»Some description.» enableSearchMethods=»true»
              attributeMapUsername=»userPrincipalName«
              name=»MiADAMProvider» type=»System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a» />
      </providers>
    </membership>

Esta configuración la tendremos que indicar en el web.config del web application de la configuración central y de nuestra applicationweb que utilizará el provider. En este último caso si queremos que se utilice el provider para la zona por defecto tendremos que añadir :

<membership  defaultProvider=»MiADAMProvider»>
      <providers>
             <add connectionStringName=»ADService» connectionUsername=»CN=admin,DC=MiRaiz,DC=COM»
               connectionPassword=»MiPassword» connectionProtection=»None»
              description=»Some description.» enableSearchMethods=»true»
              attributeMapUsername=»userPrincipalName»
              name=»MiADAMProvider» type=»System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a» />
      </providers>
    </membership>

Una vez guardad la configuración no hará falta hacer un iisreset. Iremos a la página de administradores de colecciones escribiremos nuestro usuario y pulsaremos en el People Picker.

Si intentamos buscar el usuario desde la funcionalidad de «búsqueda de personas» del people picker, no nos devolverá nada, ya que tendremos que añadir lo siguiente:

http://blogs.msdn.com/dglover/articles/395594.aspx#395595

<PeoplePickerWildcards>
      <clear />
       <add key=»MiADAMProvider» value=»*» />
</PeoplePickerWildcards>

 

Una vez realizado los cambios ya podremos utilizar nuestro ActiveDirectoryMembershipProvideren Wss3!!!.

ADAM15

 

 

Fijaros que en las credenciales de conexión con el LDAP hemos utilizado un usuario del propio ADAM. Yo no he conseguido conectar con usuario del AD, he tenido muchísimos problemas, al final creo que es un problema de envío de contraseñas al conectar con el ADAM.

 

Autenticación de MOSS con ADAM

Sobre MOSS utilizaremos «Microsoft.Office.Server.Security.LDAPMembershipProvider«.

En nuestro ejemplo:

<membership defaultProvider=»MiADAMProvider»>
      <providers>
          <add name=»MiADAMProvider» type=»Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C»
               server=»testpcserver» port=»50010″ useSSL=»false» userDNAttribute=»displayName» userNameAttribute=»CN»
               userContainer=»DC=MiRaiz,DC=com» userFilter=»|(ObjectClass=user)(ObjectClass=organizationalUnit)»
               userObjectClass=»user» scope=»Subtree» otherRequiredUserAttributes=»sn,givenname,cn» />
      </providers>
    </membership>

 

 

Enlaces que me ayudaron

http://msdn2.microsoft.com/en-us/library/ms998360.aspx

http://blogs.msdn.com/dansellers/archive/2005/10/11/479941.aspx

http://msdn.microsoft.com/en-us/library/aa479048.aspx

http://msdn.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider.aspx

http://msdn.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider.aspx

http://msdn.microsoft.com/en-us/library/aa479048.aspx

http://www.tutorials-win.com/ActiveDirectory/ADAMs-replica/

Publicado por

Mario Cortés

Mario Cortés Flores es MVP en Office 365, trabaja en Plain Concepts como Team Lead y escribe habitualmente en geeks.ms/blogs/mcortes y en Twitter @mariocortesf. Podréis encontrarlo colaborando activamente con la comunidad de MadPoint y SUGES

Un comentario sobre “Security Provider con ADAM en MOSS y WSS3”

  1. Hola Mario,

    me gustaría preguntarte una cosilla, yo tengo un sitio de project y tengo MOSS instalado pero no encuentro por ningún lado Microsoft.Office.Server.Security.LDAPMembershipProvider (supongo que será un dll), el caso es que estoy intentando configurarlo con el sistema MOSS que hay en todos los artículos y no hay manera de que me pille los usuarios.
    ¿tendré que hacerlo de la forma de WSS 3.0? en caso afirmativo ¿por que si yo tengo instalado MOSS 2007?
    te gradecería tu ayuda por favor

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *