Translate

miércoles, 4 de febrero de 2015

Configuración del FBA en SharePoint 2013

A diferencia con la configuración de la autenticación basada en formularios de SharePoint 2010; 2013 cuenta con un par de diferencias que dan al traste con más o menos horas de esfuerzo al momento de implementarlo.

A continuación muestro el procedimiento completo para trabajar en conjunto con la solución codeplex SharePoint 2013 FBA Pack y FBA nativo de SharePoint 2013.

1. Descarga e instalación de SharePoint 2013 FBA Pack desde la página de codeplex. Ahí se verán las instrucciones de instalación, sin embargo no varía de cualquier otra solución wsp. Se activa en los sitecollection necesarios.

En este momento no se podrá configurar esta solución, ya que hace falta crear una serie de conexiones. Por lo tanto quedaremos únicamente con la solución activada

2. Si ya se tiene creado el WebApplication se tendrá que editar la opción de authentication Provider para habilitar el FBA.

En el campo ASP.NET Membership Provider Name escribiremos el nombre del miembro ASP, es mi caso lo llamaré SQLProvider y en ASP.NET Role Manager Name escribiré SQLRol

3. El siguiente paso será crear en el servidor de SQL una base de datos dedicada al almacenamiento de los usuarios creados.

- Browse to c:\Windows\Microsoft .NET\Framwork64\v4.0.30319
- Run aspnet_regsql.exe
- Click Next
- Choose Configure SQL Server for Application Services >> Click Next
- Enter your SQL Server Name , choose Windows Authentication and type in a Database Name

El nombre de la base de datos en mi ejemplo se llamó UsuariosExternos.
Es muy importante en este punto darle a la cuenta que corre el application pool del site collection permisos de owner  en esa base de datos. 



4. Ahora se tendrán que editar los archivos web.config del Web Application y el web.config del Security Token Service de todos los Front Ends de la granja de la siguiente manera:

Web. Config del web application
*Nota: Recuerde hacer una copia de seguridad del archivo web.config


Se incluye un nuevo registro de membershipProvider


  <membership defaultProvider="i">
      <providers>
        <clear />
        <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
        

<add name="sqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="fbaSQL" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
    
  </providers>
    </membership>

Seguidamente se incluye también un registro para agregar el rol


<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false">
      <providers>
        <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
        
<add name="sqlRol" type="System.Web.Security.SqlRoleProvider" connectionStringName="fbaSQL" applicationName="/" />

      </providers>
    </roleManager>

Como podrán ver marcado en rojo, se encuentran los mismos nombres de ASP.NET Membership Provider Name y ASP.NET Role Manager Name que se digitaron en el punto 2. Noten como también se hace un llamado al string de conexión hace la base de datos creada para el fin de almacenar las cuentas.

Por último, antes de cerrar el tag de  </configuration> se incluye el string de conexión

  <connectionStrings>
    <add connectionString="data source=SPDBCONTENT;integrated security=sspi; initial catalog=UsuariosExternos;" providerName="System.Data.SqlClient" name="fbaSQL" />
  </connectionStrings>


Finalizada la edición de este archivo se procede a editar el web.config del Security Token Service. Este se accede por medio del IIS, en el sitio SharePoint Web Services.
Web.config del Security Token Service

*Nota: Recuerde hacer una copia de seguridad del archivo web.config



Antes de cerrar el tag de configuration se deben incluir los dos registros de providers y el connection string de la siguiente forma:


<membership defaultProvider="sqlProvider">
<providers>
<clear />
<add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />


<add name="sqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="fbaSQL" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />

</providers>
    </membership>

    <roleManager>
<providers>
<clear />
<add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />

<add name="sqlRol" type="System.Web.Security.SqlRoleProvider" connectionStringName="fbaSQL" applicationName="/" />
</providers>
    </roleManager>

</system.web>

<connectionStrings>
<add connectionString="data source=SPDBCONTENT;integrated security=sspi; initial catalog=UsuariosExternos;" providerName="System.Data.SqlClient" name="fbaSQL" />
</connectionStrings>

Terminada la edición haga un iisreset y verifique que el CA no tenga problemas de acceso y que todo lo que funcionaba en otrora esté funcionando.

5. Con la edición de los archivos, es decir, con los datos inlcuidos en la configuración, se podrán incluir los usuarios desde la solución FBA 2013.


Cree los usuarios necesarios y asígneles un rol}