Compartir a través de


Sharepoint: Como autenticar por Formularios(es-ES)

Muchas veces nos encontramos que tenemos que publicar el Sharepoint en forma Publica y no queremos crear cuentas de Active Directory por cada uno de ellos. Para eso vamos a crear una servicio de autenticación por Formularios. Recomiendo que el SQL no este en el mismo servidor para evitar cualquier ataque extra.

Vamos a usar un par de herramientas como por ejemplo las Web parts de FBA que desarrollo Steve Peschka ( FBA Configuration Manager for SharePoint 2013 ) y por otro lado vamos a usar las Web part de Chris Coulson ( SharePoint 2013 FBA Pack ) para lo que es password reset.

Vamos a crear primero la base de datos donde van a estar almacenados los perfiles de todos los usuarios que creamos.

Ingresamos al "SQL  Server Magmant Studio" y nos conectamos con la instancia que querramos. En mi caso es la que viene por defecto.

https://stucker2016.files.wordpress.com/2016/05/sql-connection.png

Luego expandimos las Base de Datos. Una ves que vemos el árbol se posicionan donde dice Database y haciendo botón derecho seleccionan el que dice New Database...

https://stucker2016.files.wordpress.com/2016/05/new-database.png

Ponemos como nombre Externos que va a ser el nombre de la base de datos.

https://stucker2016.files.wordpress.com/2016/05/create-database.png?w=680

Una ves que tenemos la base de datos vamos al server que tiene el Sharepoint. y abrimos ejecutamos el comando aspnet_regsql.exe que se encuentra en

%Windows%\Microsoft.NET\Framework64\v4.0.30319

esto le abrirá una Wizzard para poder crear las tablas necesarias para poder tener el  proveedor de asp.net para suscripciones  y roles.

https://stucker2016.files.wordpress.com/2016/05/aspnetw1.png

Apretamos Next >

https://stucker2016.files.wordpress.com/2016/05/aspnetw2.png

Seleccionamos Configire SQL Server for aplication services y apretamos Next>

https://stucker2016.files.wordpress.com/2016/05/aspnetw3.png

En el desplegable que dice Database Seleccionamos la base de Datos Externos y apretamos Next>

https://stucker2016.files.wordpress.com/2016/05/aspnetw4.png

Apretamos Next>

https://stucker2016.files.wordpress.com/2016/05/aspnetw5.png

Apretamos Finish.

Si quieren ver el resultado de esto. Ingresen al "SQL  Server Magmant Studio" refresquen la conexión, expandan las base de datos, expandan la base de datos externos y expandan Tables. Van a ver que se generaron muchas tablas que empiezan con el subfijo aspnet estas son del sistema de autenticación que vamos a usar.

https://stucker2016.files.wordpress.com/2016/05/externos-expandidos.png

Ya que tenemos las bases creadas vamos a configurar las conexiones para que Sharepoint las reconozca.

Nos dirigimos a la carpeta Config que tenemos en la carpeta donde ejecutamos el comando anterior y buscamos el archivo Machine.config y lo editamos en mi caso voy a usar el Notepad++ una buena alternativa para editar archivos grandes o de programación. Lo pueden conseguir aquí

una ves que tenemos abiertos el Machine.config buscamos las linea <connectionStrings>

y agregamos abajo el siguiente codigo.

<add name="SubscripcionesSQL" connectionString="server=.;database=externos;Trusted_Connection=true" />

https://stucker2016.files.wordpress.com/2016/05/connectionstring.png

En donde dice server pongan el server\instancia en caso de no ser el local como es mi caso. y donde dice database ponen el nombre de la base de datos que le dieron en el paso anterior.

Ahora busquen la linea <membership> y abajo de <providers> pongan lo siguiente:

<add connectionStringName="SubscripcionesSQL" applicationName="/"

name="SQL_Suscripciones"

type="System.Web.Security.SqlMembershipProvider, System.Web,

Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

https://stucker2016.files.wordpress.com/2016/05/membresia.png

Vamos a agregar el proveedor de roles para eso busquen la linea <roleManager> y abajo de <providers> pongan lo siguiente:

<add connectionStringName="SubscripcionesSQL" applicationName="/"

name="SQL_Roles" type="System.Web.Security.SqlRoleProvider, System.Web,

Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

https://stucker2016.files.wordpress.com/2016/05/roles.png?w=680

Ahora vamos a modificar el web.config del servicio SecurityTokenService para eso abran el IIS y expandan Sites > Sharepoint Web Services > SecurityTokenServiceApplication. Una ves que lo hallamos localizado hagan boton derecho > explorar

https://stucker2016.files.wordpress.com/2016/05/sts.png

Repetimos el paso anterior de agregar la conecctionString, el membership y el RoleMembers para eso busquen la linea <connectionManagement> y arriba de esa linea pongan lo siguiente:

<connectionStrings>
 
<add name="SubscripcionesSQL" connectionString="server=.;database=externos;Trusted_Connection=true" />
 
</connectionStrings>
 
<system.web>
 
<membership>
 
<providers>
 
<add connectionStringName="SubscripcionesSQL" applicationName="/" name="SQL_Suscripciones" type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 
</providers>
 
</membership>
 
<roleManager>
 
<providers>
 
<add connectionStringName="SubscripcionesSQL" applicationName="/" name="SQL_Roles" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
 
</providers>
 
</roleManager>
 
</system.web>
 
<system.net>

Nota: Los pasos anteriores de modificar el Web.config y el machine.config se van a tener que repetir en todos los servidores de la granja que sea de sharepoint.

Ahora bien ya tenemos el sql listo solo nos falta vincular a nuestro Sharepoint con esto. Volvamos a la Consola "Administración central de Sharepoint 2013". Una ves dentro vayamos a Administración de aplicaciones > Administrar aplicaciones web

https://stucker2016.files.wordpress.com/2016/04/administracion-aplicaciones.png

Una ves aquí vamos a crear nuestra aplicación web  para eso apretamos el que dice Nueva.

https://stucker2016.files.wordpress.com/2016/05/nueva.png

Les va a abrir un popup para que le incorporemos la información que deseamos.

***Nota: Pueden hacer una conexión interna que se autentique por NTLM y otra por Windows form para eso vamos a tener que crear una aplicación web con un hostheader interno y NTLM y extender la misma a la externa con Windows Forms. ***

Vamos a modificar el puerto para que me conteste al 81, el hostheader lo vamos a dejar igual y le agregamos el tipo FBA. Los datos que le vamos a dar al FBA son

Nombre del proveedor de suscripciones de ASP.NET = SQL_Suscripciones

Nombre del administrador de roles de ASP.NET = SQL_Roles

https://stucker2016.files.wordpress.com/2016/05/aspmembresia.png

y le damos Aceptar

Les aparecerá el siguiente mensaje. Donde vamos a seleccionar "Crear colección de sitios"

https://stucker2016.files.wordpress.com/2016/05/fin-creacion.png

Nos aparecerá las opciones para crear la colección de sitios. Vamos a crear un ftp mas piola, en el titulo pongamos Archivos Publicos. Y para el tipo vamos a empresa y seleccionamos el que dice Centro de Documentación.

https://stucker2016.files.wordpress.com/2016/05/centro-de-documentacic3b3n.png

Seleccionamos el usuario que va a administrar la colección de sitios, este usuario tiene que ser del dominio y apretamos Aceptar.

Se va a crear el sitio y la colección de sitios.

https://stucker2016.files.wordpress.com/2016/05/fin-creacion-sitio.png

Bueno ahora aprieten Aceptar y vamos a implementar las Web part para administrar los usuarios.

Para eso descomprimimos el archivo SharePoint2013FBAPack.1.3.5.zip y vamos a encontrarnos con PowerShell que dice deploy ejecutenlo. Esto va a demorar unos segundos y le va a implementar la solución en todas las Web Applications. En caso de que no quieran que sea en todas pueden ejecutar los comandos add-spsolution e install-spsolution

Ahora bien vamos al sitio en cuestión y nos autenticamos por Windows, ya que todavía no tenemos definidos ningún usuario en el sitio. Una vez dentro tenemos que entrar a la configuración del sitio, para eso vamos a la tuerquita > configuración del sitio.

https://stucker2016.files.wordpress.com/2016/05/configuraciondel-sitio.png

en el grupo Administración de la colección de sitios apreten en Características de la colección de sitios

https://stucker2016.files.wordpress.com/2016/05/caracteristicas-de-la-coleccion-de-sitios.png

Una ves dentro busquen el que dice Forms based Authentication Managment y le dan activar

https://stucker2016.files.wordpress.com/2016/05/forms-based.png?w=680

una ves que este activo vuelvan a la tuerquita > configuración del sitio

https://stucker2016.files.wordpress.com/2016/05/configuraciondel-sitio.png

Y van a ver que se le agregaron varios items en el grupo Usuarios y Permisos.

https://stucker2016.files.wordpress.com/2016/05/fba.png

Con el FBA User Management van a poder crear los usuarios.