Per attivare la Form Based Authentication in
SharePoint 2010, in questo esempio basata su un
database SQL Server, è necessario avere una web application configurata con la
Claims autentication.
Fatto questo puoi creare il
database SQL Server, che conterrà gli utenti. Il database viene creato tramite comando
aspnet_regsql.exe (standard del Framework .NET 2.0).
Apri una linea di comando e digita:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regsql.exe
parte un wizard in cui va specificato il nome del server di
database, le eventuali credenziali di connessione e il nome del
database e che conterrà gli utenti (nell'esempio i server è
SharePointDB e il
database e è
WSS_FBA_Users).
Per quanto riguarda le credenziali è meglio utilizzare l'autenticazione integrata di windows e dare, tramite la Management Console, accesso al
database e all'utente con cui gira l'application pool delle web application convolte.
In seguito vanno modificati almeno 3 web.config:
- quello/i del/i sito/i di content (web application)
- quello della Central Administration
- quello del SecurityTokenServiceApplication (STS)
Quindi il web config del
sito/i sarà:
<configuration>
<SharePoint>
...
<PeoplePickerWildcards>
<clear />
<add key="FBA" value="%" />
</PeoplePickerWildcards>
...
</SharePoint>
<system.web>
...
<membership defaultProvider="i">
<providers>
<add name="i"
type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<add name="FBA"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="FBAConnectionString"
applicationName="/"
passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false"
requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
<connectionStrings>
<add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
</connectionStrings>
</configuration>
Qello della
Central Admin sarà:
<configuration>
...
<system.web>
...
<membership>
<providers>
<add name="FBA"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="FBAConnectionString"
applicationName="/"
passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false"
requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
<connectionStrings>
<add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
</connectionStrings>
</configuration>
Ed infine quello dell
'STS<configuration>
<SharePoint>
...
<PeoplePickerWildcards>
<clear />
<add key="FBA" value="%" />
</PeoplePickerWildcards>
...
</SharePoint>
<system.web>
...
<membership defaultProvider="i">
<providers>
<add name="i"
type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<add name="FBA"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="FBAConnectionString"
applicationName="/"
passwordAttemptWindow="5" enablePasswordRetrieval="false" enablePasswordReset="false"
requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" />
</providers>
</membership>
</system.web>
<connectionStrings>
<add name="FBAConnectionString" connectionString="Server=SharePointDB;Database=WSS_FBA_Users;Integrated Security=true" />
</connectionStrings>
</configuration>
In ultimo, dalla Central administration, vai in
Manage web applications, seleziona la web application con la claims abilitata, clicca su
Authentication providers, clicca su
Default, spunta la voce
Enable Forms Based Authentication (FBA) e in
ASP.NET Membership provider name inserisci il nome del membership provider (nell'esempio: FBA). Questo va ripetuto per tutte le web applications in cui si vuole abilitare la Form Based Authentication.
Fatto questo è possibile inserire nuovi utenti nel DB .
Per l'inserimento è possibile utilizzare IIS 7, la procedura è questa:
- andare in IIS è selezionare il sito della Central Administration
- doppio click sull'icona .NET Users
- nel pannello di destra cliccare su Add...
- inserisci i dati richiesti e premi Next, poi Finish
oppure usare questa solution su codeplex
SharePoint 2010 FBA Pack