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}








martes, 25 de noviembre de 2014

Configuración de search service para usuarios anónimos

El uso de una plantilla publicación en SharePoint requiere un modo de autenticación anónimo para su publicación en internet, sin embargo, las búsquedas se ven limitadas a los usuarios autenticados si no se configura el search service application de la siguiente manera:

El procedimiento para lograr una indexación de resultados del sitio se logra de la siguiente manera:


1.    Creación content source que sea el encargado de ejecutar un crawl para sitios anónimos

1.1  Este Content Source se debe indicar cual es el sitio que hará la indexación.


2.    Creación de una regla de indexación (crawl rule)
La regla que se requiere crear pretende utilizar una cuenta de servicio específica para hacer la indexación del sitio anónimo requerido.

2.1  La configuración de la regla se realiza de la siguiente manera:

3.    Creación del sitio de búsqueda.
Desde el toplevel site se debe crear un sitio de búsqueda, que sea el predeterminado para mostrar los resultados.

4.    Configuración del sitio de búsqueda desde el sitio principal
Para realizar la configuración correspondiente es requerido hacerlo desde el toplevel site en la opción Search Settings

4.1  Search Settings:
Es necesario en este apartado indicar cuál es la página de resultados a la que obedecerán las búsquedas de todo el sitio, esto en el campo “Site Collection Search Results Page



La imagen hace referencia a la página de resultados del sitio de búsqueda creado en el punto anterior


5.    Permisos anónimos en el sitio de búsqueda:
De la misma manera que está compuesta la estructura de permisos generales del sitio, se parte de la premisa que es necesario heredar este esquema para que la página específica de results pueda ser accesada por usuarios anónimos


5.    Resultado:

Inicio de la búsqueda:

Resultado con un usuario anónimo:





martes, 11 de noviembre de 2014

Procedimiento para cambiar Host Header con puerto diferente

Por lo general cuando creamos un nuevo WebApplication, el host header que toma es el nombre del servidor con un puerto random; y como no podemos entregar una intranet con un URL http://srv-apprsj-dev:8989 debemos cambiar la ruta de acceso, para que elegantemente se vea http://intranet.

El procedimiento es el siguiente:


1. En el Central Admin de SP vas a la opción Aplicación Managment – alternate Access mapping



2. Se busca el WebApplication

3. Cuando encuentren el web application le dan Edit Public URL



4.  Le cambian en el URL Default la dirección que quieren dejar ejm: http://intranet , yo le puse sol.cgccr.com aprovechando que tengo un puntero creado en mi DNS

5. En el Front end hay que abrir el IIS para editar los bindings del web application. Ubican el WA, clic en Binding, botón Edit, y le cambian el puerto al 80 y en hostheader le ponen el mismo que indicaron en el paso anterior



6.  Crean el puntero en el DNS que responda a la IP del frontend con el host header que pusieron.

7. IIs reset, y listo, ya debería abrirles bajo el host header con nombre nuevo