Como configurar FBA (Forms-Based Authentication) en SharePoint Server 2010 utilizando IIS 7 y ASP .NET Membership Database (SQL) como en MOSS 2007!!!

Saludos Comunidad,

Después de hacer bastantes pruebas y dañar muchas máquinas virtuales intentando configurar FBA en SharePoint 2010 como lo haciamos en MOSS 2007, finalmente creo que encontré la manera más simple y fácil de hacerlo para SharePoint Server 2010, espero en realidad que lo que digo sea verdad, por favor lean cuidadosamente todas las instrucciones y no brinquen ningún paso.

Para configurar FBA usando SQL Server con autenticación de Windows Integrada (Recomendado) seguiremos los siguientes pasos:

 

Pre-requisitos

a) Conocimiento sobre SharePoint 2010, IIS 7.5 y SQL Server 2008 (No indispensable, solicitud de apoyo del DBA)

b) SQL Server configurado como Windows Integrated Authentication

c) ASP.Net SQL Server Database (Base de datos de membresia)

d) Cuenta de usuario de dominio (esta puede ser el mismo administrador de la granja de SharePoint)

e) Asegurarse de respaldar los archivos de configuración "web.config" de: Central Administration, el servicio web llamado Security Token Service y también la Web Application en la que vamos a configurar FBA

Pasos para configurar FBA

  1. Configurar la seguridad de SQL para utilizar Windows Integrated Authentication
  2. Agregar la cuenta de dominio a los SQL Logins
  3. Crear la base de datos de FBA en SQL para almacenar a los usuarios que no son parte del dominio de Windows al que pertenence la granja de SharePoint
  4. Proveer de los permisos apropiados sobre la base de datos de SQL FBA
  5. Configurar mediante IIS Admin el sitio de la Central Administration
  6. Configurar mediante IIS Admin el servicio llamado SharePoint Security Token Service
  7. Crear la nueva aplicación web para usar FBA y después el Site Collection
  8. Configurar los proveedores de autenticación por defecto en IIS para la nueva aplicación web
  9. Crear un sitio de IIS para administrar y dar de alta a los usuarios externos

Configurar SQL Server para usar Windows Integrated Authentication

Basicamente cuando se instala SQL Server, por defecto la autenticación de Windows integrada es provisionada, en caso de que el equipo de base de datos haya configurado SQL como Mixed-Mode entonces tienen que hacer lo siguiente:

  1. Desde el Management Studio en la instancia de SQL Server donde viven las bases de datos de SharePoint
  2. Clic derecho y seleccionar propiedades
  3. En el panel del lado izquierdo seleccionar Security
  4. On the right pane choose the option Windows Authentication mode

Si tuviste que realizar el paso anterior entonces TIENES que reiniciar el servicio de SQL Server o reiniciar el servidor

Agregar la cuenta de dominio a los SQL Logins

Ahora es necesario agregar la cuenta de dominio que vamos a utilzar para el acceso a la base de datos de ASP .Net a los SQL Logins para darle control total sobre dicha base de datos cuando sea creada despúes en este artículo.

Dos cosas son importantes en este punto, escoger al SharePoint Farm Administrator que ya usas o crear una nueva cuenta de usuario de dominio para administrar la base de datos de ASP.NET . Mi recomendación es que utilices el SharePoint Farm administrator, cualquiera que sea la opción que tomes aquí está el proceso a seguir (Apóyate en tu DBA para crear el login si es necesario):

  1. Una vez que decidiste que cuenta usar abre el SQL Server Management Studio
  2. En el panel del lado izquierdo expande el nombre de la instancia de SQL Server y selecciona la carpeta llamada Security
  3. Sobre la carpeta llamda Logins haz clic derecho y después New Login
  4. Busca el nobre de la cuenta de dominio creada o bien del administrador de la granja de SharePoint y deja los demás valores por defecto manten la opcion Windows authentication seleccionada
  5. Clic OK

 

Create SQL FBA database to store non-Windows domain users

Abrir el asistente de ASP.Net y crear la base de datos de membresia donde los usuarios externos serán alojados para el acceso Extranet:

- Ve a la ruta: C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe desde el explorador de Windows y doble clic sobre el ejecutable

- Selecciona la primera opcón “Configure SQL Server for application services

- Escribe el nombre del servidor de SQL donde se alojará la base de datos. No es necesario que sea el mismo servidor donde las bases de datos de SharePoint se alojan

- Mantén la configuración de autenticación por defecto Windows Authentication

- Utiliza “Default” o escribe un nombre para la base de datos de membresia y completa el procedimiento

TLa primera vez que la base de datos de ASP.NET es creada debes elegir Windows Authentication como se menciona arriba y después crear una nueva base o incluso USAR la que tenías en MOSS 2007*

- Confirma la configuración creada y listo

*Puedes crear una nueva base de datos de ASP.NET para el almacenamiento y administración de nuevos usuarios o TAMBIÉN pudes utilizar la que tenías creada en tu granja de MOSS2007, solamente asegurate que estas configurando correctamente los permisos sobre esa base de datos migrada, el SQL Login creado (usuario de dominio o SharePoint Farm Admin) deben ser db_owenr.

Garantizar los permisos necesarios al SQL Login (Domain user/ SP Farm Admin) para la nueva base de datos SQL FBA

- Regresa al SQL Server Management Studio

- Localiza la nueva base de datos ASP.NET que creaste o asignaste en el paso anterior

- Haz clic derecho sobre ella y selecciona propiedades

- En el panel del lado derecho haz clic sobre el cuadro con los 3 puntos y busca la cuenta de usuario (escribe domainname\username) y clic OK

- Copia el nombre del campo Login name y pégalo en el campo User name

- Al final de la ventana en la sección Database Role Membership selecciona db_owner y haz click in OK

 

Configurar el sitio de la Central Administration

Es tiempo de crear: Connection String, Role Provider, y Membership Provider en el IIS Manager para obtener acceso a la nueva base de datos de ASP.NET.

Hagámoslo primero para el sitio de SharePoint Central Administration y después repitamos exactamente los mismos pasos para el servicio web Security Token service, y la aplicación web de SharePoint, al final vamos a crear un sitio de IIS común para administrar a los usuarios de la base de datos ASP .NET.

No olvides realizar respaldos de los archivos de configuración web.config, es sumamente importante en caso de que necesites regresar al estado original. Usa siempre ambientes de prueba antes de hacerlo en producción

- Abre IIS Manager y encuentra el sitio SharePoint Central Administration v4 debajo de la carpeta Sites

- En el panel del centro haz clic en Connection Strings

- En el panel del lado izquierdo llamado Actionshaz clic en Add

- Escribe un nombre para la conexión

- Escribe el nombre del servidor de base de datos donde se encuentra la base de datos de ASP .NET

- Escribe el nombre de la base de datos que recientemente creaste o migraste

- Mantén seleccionada la opción Use Windows Integrated Security

- Clic OK

- Regresa al sitio de IIS para ahora crear los proveedores

- Haz doble clic sobre Providers en la vista llamda IIS Features view y vamos a crear Role Provider y Membership Provider

- Sobre el menu desplegable selecciona primero .Net Roles para crear el proveedor de roles, después seleeciona .Net Users para configurar las membresias de usuarios

     

- Esto es todo para el sitio de Central Administration v4

 

Configure SharePoint Security Token Service

Repitamos exactamente los mismos pasos ahora para configurar el servicio web llamado Security Token service. Tenemos que usar los mismos nombres para: Connection String, Role Provider y Membership Provider

Create the new Web Application to use FBA and Site Collection

Ahora vamos a SharePoint en el sitio de la Central Administration y vamos a crear la nueva aplicación web que usará la autenticación basada en formas

Es importante recordar que en SharePoint 2010 la única manera de configurar FBA es creando las aplicaciones web seleccionando la opción “Claims Based Authentication” de lo contrario no podrás hacerlo.

- Vamos a la Central Administration

- En la categoría llamada Application Management hacemos clic en Manage Web Application

- En el menú superior seleccionamos New

- Escogemos Claims Based Authentication para que las opciones de Forms Based Authentication se habiliten

- Es importante que la opción Enable Windows Authentication con NTLM se mantengan seleccionadas por lo siguiente:

  • El Rastreo no se pierda para la aplicación web
  • La ventana de login del sitio mostrará ambas opciones Windows Authentication y Forms-Base Authentication

- Ahora debemos seleccionar Enable Forms Based Authentication (FBA) y escribir tanto el Membership Provider como el Role Provider

- Ahora es necesario crear la colección de sitios para la aplicación web, cualquier definición de sitios que escogas será decisión tuya

- Hasta este punto el administrador de la colección de sitios TIENE que ser el SharePoint Farm Admin ya que nuestra base de datos de ASP.NET SQL esta vacia, o bien puedes usar la cuenta de usuario de dominio que especificaste como db_owner de la base de datos

- Ahora tenemos que repetir los pasos anteriores para crear: Connection String, Role Provider, y Membership Provider usando los mismos nombres no lo olviden

SharePoint Server 2010 tiene que usar “i” como Membership Provider por defecto, así mismo “c” como Role Provider por defecto, ya que “I” es el proveedor relacionado directamente con: Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider. (https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.claims.spclaimsauthmembershipprovider_members.aspx)

 

Create IIS Site to administer ASP.NET users**

Vamos a crear un sitio común de IIS para administrar los roles y las cuentas de usuario de nuestra base de datos de ASP.NET

- Desde el IIS Manager hagamos clic derecho sobre la carpeta Sites y seleccionamos New Site

- Le damos un nombre y los demas valores los dejamos por defecto

- Revuisamos lo que hicimos para configura el sitio de la Central Administration v4 y configuramos:

  • Connection String
  • Role Provider
  • Membership Provider

- Para este sitio no debemo dejar como “i” y “c” los proveedores por defecto, esta vez vamos a usar FBARoleProvider & FBAMembershipProvider

- Tiempo de hacer pruebas, abre el sitio de SharePoint que creaste y configuraste con FBA

- Primero utiliza Windows Integrated Authentication, y escribe las credenciales del SharePoint Farm Admin o la cuenta de dominio que diste de alta como administrador del sitio, funcionó?

- Cambia de usuario y escoge ahora Forms-Based Authentication, funcionó? Estoy seguro que no pues no hemos dado de alta usuarios en la base de datos de ASP .NET y tampoco les hemos dado permisos en SharePoint

- Regresemos al IIS Manager y vamos a crear roles y usuarios para FBA

   

- Ok, Ahora ya podemos agregar a estos usuarios como miembros de los sitios de SharePoint, volvamos al sitio de SharePoint e iniciemos sesión con el SharePoint Farm Administrator

- En la colección de sitios vamos a Site Actions > Site Permissions

- Seleccionamos el grupo al cual deseamos que pertenezcan el o los usuarios externos

- Hagamos clic en New

- Clic sobre el icono de la libreta de direcciones o simplemente escribimos el nombre de usuario que se encuentra en la base de datos de ASP .NET

Les deseo mucha suerte y recuerden que su retroalimentación es muy importante para nosotros, por favor déjenos saber si el artículo es realmente útil y si en verdad esta configuración de FBA para SharePoint 2010 es como lo describí la más simple y rápida.

Hasta la próxima