Cómo configurar la autenticación basada en formularios (FBA)
Esta publicación está adaptada de un blog, que considero la autoridad suprema para la configuración de FBA, escrito por Chris Coulson,
Lea la autoridad suprema aquí para 2016 y aquí para 2013
2010 – Consulte los pasos de 2013, asegúrese de que la aplicación web de 2010 use autenticación basada en reclamaciones, todo es lo mismo, no se puede usar una aplicación web clásica.
Nota: Con este método, no es necesario modificar la web.configuración del administrador central o de cualquiera de las aplicaciones web, presentes o futuras. Solo necesita modificar la máquina.config y la web.configuración de los servicios web de aplicación Securitytokenservic.
So; este es el método preferido. Hay otros métodos que le permiten modificar la web del administrador central.config, la web.configuración de cada aplicación web y de la aplicación web del servicio de tokens de seguridad.config; pero, ¿quién quiere ir a todos los problemas. Y hay que repetir para cada nueva aplicación web, nada menos. Soy perezoso y preferiría que la FBA fuera una posibilidad en cada aplicación web futura y presente. También me pongo muy incompleto cuando pienso en modificar la web de administración central.config; por lo tanto, es por eso que el método que se detalla en detalle, en el blog de Chris Coulson, es óptimo.
Pasos de alto nivel
- Cree la base de datos ejecutando aspnet_regsql.exe encontrado en c:\windows\Microsoft.NET\Framework64\v4.0.30319 \
- Haga copias de seguridad de cualquier archivo que esté a punto de modificar, por ejemplo, la máquina.config, la web.configuración de la aplicación SecurityTokenServiceApplication
- Realice las ediciones, prestando mucha atención a las secciones en las que se encuentra. Al modificar la sección proveedor de membresía y la sección proveedor de rol, asegúrese de no modificar la sección proveedor de perfil
- Actualizar el Proveedor de autenticación de la aplicación web
- Instalar la solución FBAPack adecuada para facilitar la administración de usuarios
- 2016 – https://www.visigo.com/products/sharepoint-fba-pack/download/
- 2013 – ir al sitio de visigo para la última versión estable de esta descarga gratuita
- 2010 – ir al sitio de visigo para la última versión estable de esta descarga gratuita
- Inicie sesión con credenciales de Windows y agregue un usuario de FBA, luego pruebe que los trabajo del menú, y que puede iniciar sesión con el usuario de FBA
Pasos más detallados
Crear la base de datos ejecutando aspnet_regsql.exe
- Inicie sesión en su servidor de SharePoint
- c:\windows\Microsoft.NET\Framework64\v4.0.30319 \
- Ejecute aspnet_reqsql.exe como administrador
- Después de la ASP.NET Se abre el asistente de configuración SQL, lee la información y haz clic en Siguiente, ¡como un jefe!
- En la pantalla Seleccionar una opción de configuración, use la selección predeterminada de «Configurar SQL Server para servicios de aplicaciones» y haga clic en Siguiente, ¡haga clic de nuevo como un jefe!
- En la pantalla» Seleccionar el servidor y la base de datos», ingrese el alias de su SQL server o el nombre de SQL Server si Dios no lo permite, no usó un alias cuando configuró la comunidad, y
- acepte el nombre de base de datos <predeterminado>. Si cambia el nombre de la base de datos, asegúrese de actualizar el nombre de la entrada a la máquina.config cadena de conexión en los próximos pasos. Este post asume que dejaste el nombre < predeterminado> como se muestra en la siguiente captura de pantalla. Dejar el nombre predeterminado crea una base de datos llamada aspnetdb.
- Haga clic en Siguiente
Aviso: El ejemplo anterior dejó el nombre predeterminado y usó el Alias SQL < – esa última oración se habló en » SharePoint Nerd «y se tradujo significa»usé un alias SQL y la base de datos es portátil»
Después de hacer clic en siguiente, aparece la siguiente pantalla y debe hacer clic en siguiente si está de acuerdo con la información. No hace daño leerlo, ya que si hay un error tipográfico, esta es su oportunidad de cambiarlo.
Luego, en la siguiente pantalla, haga clic en Finalizar.
- Inicie sesión en SQL server
- Abra SQL Server Management Studio (SSM).exe) y proporcione su cuenta de granja de SharePoint, la cuenta de servicio que ejecuta el grupo de aplicaciones de búsqueda y servicios compartidos y la(s) cuenta (s) de servicio de grupo de aplicaciones de sitio o contenido web db_owner en aspnetdb.
Nota: si recibe algún tipo de error por no poder conectarse a la instancia de SQL server, asegúrese de que se han iniciado los servicios para SQL server y el agente de SQL server. No se preocupe por el explorador de SQL Server
- Haga clic en la carpeta de seguridad para ampliarla
- Haga clic en la carpeta de inicios de sesión para ampliarla
- Haga clic con el botón secundario en las cuentas de usuario que ejecutan el grupo de aplicaciones del servicio de tokens de seguridad(puede determinarlo desde inetmgr.eje en su servidor de SharePoint)
- haga clic en propiedades
- haga clic en Asignación de usuarios
- Seleccione aspnetdb en los Usuarios asignados a esta ventana de inicio de sesión
- Asigne el dbo en la membresía de rol de base de datos para: cualquier cuenta con la que esté trabajando
- Haga clic en Aceptar
- C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Config
- tome una copia de seguridad de la máquina.config y guárdelo con a .extensión bak
- Edite la máquina.config
- Desplácese hasta las cuerdas de conexión <>
La sección de cadenas de conexión se verá como la imagen anterior
- agregue el siguiente código
1
|
<add ConnectionString= «Server = SharePointSQL; Database = aspnetdb; Integrated Security = true»name= «FBADB» />
|
Nota: es posible que tenga que modificar el nombre del servidor SQL desde el alias que estaba usando. Es posible que no tenga un alias en su lugar y puede determinarlo mirando cliconfg.exe. Asegúrese de que la línea de código que dice «Server=SharePointSQL….is actualizado para cualquiera que sea su nombre de servidor, o preferiblemente su alias (por ejemplo, «Server=SPAlias….o » Server = MDCP15SQL
Después de actualizar las cadenas de conexión, se verá algo como esto:
Encuentre la sección < membresía> < proveedores>, se verá así
Nota: Agregarás una sección a < membresía> < proveedores> y a <Rol> <Proveedores> no a los proveedores de perfil
Asegúrese de actualizar las secciones correctas
- Agregue esto a los proveedores de membresía
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<add name=»FBAMembershipProvider»
type=»System.Web.Seguridad.SqlMembershipProvider, Sistema.Web, Versión = 4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a»
connectionStringName=»FBADB»
enablePasswordRetrieval=»false»
enablePasswordReset=»true»
requiresQuestionAndAnswer=»false»
applicationName=»/»
requiresUniqueEmail=»true»
passwordFormat=»Hash»
maxInvalidPasswordAttempts=»5″
minRequiredPasswordLength=»7″
minRequiredNonalphanumericCharacters=»1″
passwordAttemptWindow=»10″
passwordStrengthRegularExpression=»» />
|
- Ahora agregue esto a los Proveedores de roles
1
2
|
<add name=»FBARoleProvider» connectionStringName=»FBADB» applicationName=»/»
type=»System.Web.Seguridad.SqlRoleProvider, Sistema.Web, Versión = 4.0.0.0, Cultura = neutral,PublicKeyToken = b03f5f7f11d50a3a» />
|
El producto terminado debe tener este aspecto
Observe cómo las ediciones no se realizaron en los proveedores de perfiles. Cuidado con eso, es fácil de perder.
Ahora Abra la Aplicación web de Servicio de Tokens de seguridad.config
- Abra el administrador de IIS (inetmgr.exe)
- Expandir sitios
- Expandir servicios web de SharePoint
- Haga clic con el botón derecho en SecurityTokenServiceApplication
- Haga clic en Explorar
- Tome una copia de la web.config como una copia de seguridad y guardarlo con un .extensión bak
- Agregue lo siguiente justo encima de la última etiqueta de configuración de cierre < / configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<system.web>
<la membresía>
<proveedores de>
<add name=»FBAMembershipProvider»
type=»System.Web.Seguridad.SqlMembershipProvider, Sistema.Web, Versión = 4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a»
connectionStringName=»FBADB»
enablePasswordRetrieval=»false»
enablePasswordReset=»true»
requiresQuestionAndAnswer=»false»
applicationName=»/»
requiresUniqueEmail=»true»
passwordFormat=»Hash»
maxInvalidPasswordAttempts=»5″
minRequiredPasswordLength=»7″
minRequiredNonalphanumericCharacters=»1″
passwordAttemptWindow=»10″
passwordStrengthRegularExpression=»» />
</proveedores>
</la membresía>
<roleManager>
<proveedores de>
<add name=»FBARoleProvider» connectionStringName=»FBADB» applicationName=»/»
type=»System.Web.Seguridad.SqlRoleProvider, Sistema.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a» />
</proveedores de>
</roleManager>
</sistema.web>
|
Cuando haya terminado, debe verse así, solo que no tendrá la mancha amarilla.
Ok, ahora que está listo para hacer que SharePoint funcione con estos cambios, asegúrese de hacerlos en todos los servidores de la comunidad si tiene más de un servidor de SharePoint. No es necesario en SQL. Abra la administración Central para asegurarse de que no ha aniquilado su granja. Abra algunas colecciones de sitios que se encuentran en la aplicación web que aplicarán el FBA.
Puede restablecer IIS en buena medida, pero realmente no debería ser necesario, ya que los cambios en estos archivos hacen que eso ocurra automáticamente, o al menos debería.
Actualizar el proveedor de autenticación de la aplicación web
- Abra Administración central y vaya a administrar aplicaciones web
- Si no extiende la aplicación web a otra zona y utiliza la autenticación dual, seleccione la aplicación web y haga clic en proveedores de autenticación en la cinta de opciones. De lo contrario, extienda la aplicación web y, a continuación, en la zona extendida, establezca el FBA.
Para establecer el FBA, realice lo siguiente:
- Vaya a Administrar aplicaciones web
- Seleccione la aplicación Web donde desea configurar la autenticación basada en formularios
- Haga clic en Proveedores de autenticación
- Seleccione la Zona que desea configurar, en este ejemplo, estamos configurando la autenticación dual (Windows Integrado y FBA)
Una vez que se abra la pantalla de configuración de zona,
- desplácese hacia abajo hasta la sección relacionada con FBA y agregue los nombres que utilizó en las secciones proveedor de membresía y proveedor de rol de la .cambios en el archivo de configuración. Si no ha modificado los nombres de los Proveedores de Membresía y Rol en las secciones de código que dicen < add name=»FBAMembershipProvider»….y <add name=»FBARoleProvider….. entonces puedes usar estos nombres, de lo contrario usa lo que sea que los hayas cambiado también.
- Marcará la casilla Habilitar Autenticación basada en formularios (FBA) y, a continuación, ingresará los nombres que utilizó
- Haga clic en Guardar para guardar los cambios
Ahora, si intenta abrir una aplicación web o colección de sitios, obtendrá el mensaje de inicio de sesión predeterminado para FBA, le permitirá elegir entre Autenticación Integrada de Windows o Basada en formularios
Aún no puede usar FBA, incluso si lo selecciona e intenta usarlo, porque no hay ningún usuario de FBA en aspnetdb en este momento. El Paquete FBA le permitirá agregar usuarios a la base de datos. La publicación de 2013 en el blog de Chris Coulson para SharePoint 2013 explica otro método.
Solución de paquete FBA
La solución de paquete FBA le permitirá agregar y administrar usuarios
Descargar la solución e implementarla en su servidor de SharePoint. Viene con un script de implementación realmente impresionante que le permite dirigirse a una aplicación web o a toda la comunidad.
Después de guardar la solución en c:\deploy, por ejemplo, abra un shell de administración de SharePoint administrativo y ejecútelo como se muestra a continuación, si desea que se implemente en toda la comunidad
Si desea que se implemente en una aplicación web específica, en lugar de escribir .\deploy.ps1, escriba . \ deploy. ps1 http://urlToThatSpecificWebApplication.Domain.com donde domain.com es su sufijo de dominio y dominio de nivel superior (por ejemplo, sharepoint.local, Springfield.local, bdbsa.org, ssa.gov, o spt.locales, o lo que sea)