FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)

Un article de Benoit Bernadin

Il y a environ 2 ans, j’avais publié un post sur comment installer le Form Base Authentication (FBA) sur une ferme SharePoint 2013. Suite a une demande, je me suis penché sur le cas de SharePoint 2016. Au final le principe général reste le même, seul les outils tierces qui aident a la mise en place, fonctionnent moins bien (ou pas du tout).

Voici les étapes qui m’ont permis de mettre d’avoir du FBA sur SP2016

Etape 1 : Préparation

Faire à minima un backup des web.config de :

• SharePoint Central Admin
• La Web App qui va utiliser le FBA (si elle existe déjà)
• Du service Security Token (qui par défaut se trouve sous le chemin suivant : C:\Program Files\Common Files\Microsoft Shared\Web Server\Extensions\16\WebServices\SecurityToken )

Ensuite télécharger le SharePoint 2013 FBA Pack: http://sharepoint2013fba.codeplex.com/.

Sur mon environnement, les scripts de déploiement ne fonctionnaient pas mais le contenu du WSP lui fonctionne correctement sous SP2016.

Autre point, comme énoncé, sur SharePoint 2013 j’utilisais un outil, FBA Configuration Manager, pour automatiser une partie de la configuration du FBA. Je n’ai pas réussi à faire fonctionner de manière correcte cet outil sur SP2016, donc j’ai fait sans.

Etape 2 : Créer la Base SQL de Membership

Cette étape est identique à SharePoint 2013. Ouvrez SQL Management Studio :

Créez une base de données vide (par exemple : SharePoint_FBA)
Utilisez l’outil du Framework .Net pour créer la structure de la base (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe à lancer en Admin)
Sélectionnez: Configure SQL Server for application services
Rentrez le nom de votre serveur SQL (E.g. MONSERVEUR\MSSQL)
Sélectionnez la base que vous venez de créer : SharePoint_FBA

blog ai3 fba1-300x242 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)

  • Vérifiez via SQL Management Studio que la base contient les tables de Membership.
  • Ajoutez le(s) compte(s) de services utilisés par les Applications Pools SharePoint dans les droits (e.g. spFar

Votre Web App ainsi que l’application Pool de Central Admin doivent avoir les schémas suivants à minima :

  • aspnet_Membership_FullAcces
  • aspnet_Persolalization_FullAccess
  • aspnet_Profile_FullAccess
  • aspnet_Roles_FullAccess
  • aspnet_WebEvent_FullAccess

Etape 3 : Préparer SharePoint à accepter le FBA

Editez le web.config du SP Central Admin, sur tout les serveurs de la ferme, pour ajouter le Membership et le Role provider

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<machineKey …. />
<membership >
 <providers>
  <add connectionStringName="fbaSQL" applicationName="/" enablePasswordReset="true" name="SQL_Membership" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 </providers>
</membership>
<roleManager>
 <providers>
  <add connectionStringName="fbaSQL" applicationName="/" name="SQL_Role" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"  />
 </providers>
</roleManager>
</system.web>
[…]
<connectionStrings>
 <add name="fbaSQL" connectionString="server= MONSERVEUR\MSSQL;database=SharePoint_FBA;Trusted_Connection=true" />
</connectionStrings>
</configuration>

 

Editez de la même façon le web.config du service web Security Token (il se trouve à cet endroit par défaut : C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\WebServices\SecurityToken )
Un petit recyclage des applications pools (ou IISReset) pour la bonne mesure et assurez-vous que le site central admin est toujours opérationnel.

Etape 4 : Activer le FBA sur une Web App

Soit vous créez une Web App SharePoint soit vous utilisez une Web App existante. Pour mon exemple la Web App existe déjà.Je suis donc allé dans Central Admin, Manage Web Application puis j’ai sélectionné la Web App cible et j’ai édité la configuration d’authentification :

blog ai3 fbasp2016-11-300x146 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)

Dans les 2 cas il suffit de reporter le nom du membership provider et du rôle manager provider dans les bonnes case :

 

blog ai3 fbasp2016-2-300x297 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)
Une fois que c’est fait, il convient de modifier le web.config de la Web App avec les mêmes informations, au même endroit que pour les autre web.config.
Attention dans le cas d’une ferme multi serveurs il faut le faire sur tous les serveurs APP et WFE.
Si comme moi vous avez sélectionnez d’avoir une authentification Windows et FBA en même temps, vous vous retrouver avec une page de login qui va vous demander de choisir :

blog ai3 fbasp2016-3-300x136 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)

Le soucis c’est que pour l’instant il n’y a pas de moyen aisé de rajouté des utilisateurs FBA, c’est la que le SharePoint 2013 FBA pack rentre en action. Pour cela il suffit de déployer le WSP (avec PowerShell) et d’activer la Feature de collection de site.
blog ai3 fbasp2016-4-300x63 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)
Ce qui nous apporte des options supplémentaires dans les settings de la collection de site cible …

blog ai3 fbasp2016-5 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)
… qui va nous permettre de gérer vos comptes utilisateur FBA

blog ai3 fbasp2016-6-300x93 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)
Reste plus qu’à créer un compte …
blog ai3 fbasp2016-8-300x264 FBA SharePoint – Le retour de la vengeance (sur SharePoint 2016)
…et profiter de la fonctionnalité. ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.