SharePoint FBA-brugere med sikkert gemte adgangskoder
FBA-brugerne er oprettet og har de rigtige rettigheder, men kan ikke logge ind. To steder at kigge, når adgangskoderne gemmes sikkert.
Symptomer#
Man opretter FBA-brugere og giver dem de rigtige rettigheder i SharePoint. FBA-brugerne kan bare ikke logge ind. Man går den oplagte tjekliste igennem:
- Adgangskode: korrekt og opfylder kravene
- Brugernavn: korrekt
- Rettigheder i SharePoint: helt i orden. (Man er jo administrator og ved, hvad man laver … ikke?)
Stadig virker intet login.
Det viser sig, at der kan være flere grunde til det.
For det første#
Tjek, at FBA-indstillingerne er nøjagtig de samme i web.config for Central Administration, Secure Token og den WebApp, der bruges til FBA. Sådan skal indstillingen se ud, hvis man bruger SecureStoredPassword og et par lempede adgangskodeindstillinger, for brugerne hader grundlæggende stærke adgangskodeindstillinger, og det her er ikke en kritisk WebApp. Adgangskoden skal gemmes krypteret i databasen. Som regel rører jeg ikke ret meget ved web.config. Det kan være ret risikabelt, hvis man arbejder i et produktionsmiljø. Så gå IIS-indstillingerne igennem, og sørg for, at indstillingerne for hvert site, der bruger Forms Based Authentication, ser sådan ud.
Kigger man på det i web.config-filerne, bør man ende med noget i stil med:
1<membership defaultProvider="i">
2 <providers>
3 <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
4 <add name="FBA" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
5 applicationName="/"
6 connectionStringName="FBADB"
7 enablePasswordReset="true"
8 enablePasswordRetrieval="false"
9 passwordFormat="Hashed"
10 requiresQuestionAndAnswer="false"
11 requiresUniqueEmail="false"
12 minRequiredNonalphanumericCharacters="0"
13 minRequiredPasswordLength="5"
14 />
15 </providers>
16</membership>
NOTE: De to ekstra egenskaber, minRequiredNonalphanumericCharacters og minRequiredPasswordLength, ændrer kravet til adgangskoden til 5 tegn og ingen tal.
Løsning#
Vil man have StorePasswordInSecureFormat sat til true, skal enablePasswordRetrieval sættes til false.
For det andet#
Tjek databasen. Åbn asp.net-brugerdatabasen (jeg kalder den FBADB), og kig i aspnet_Membership. PasswordFormat skal stå til 1 overalt. Gør den ikke det, er noget galt.
Tjekliste
- Brug ikke sikker lagring og password retrieval på samme tid. Det virker simpelthen ikke.
- Tjek, og tjek igen, at FBA-konfigurationen for Central Administration-sitet, Secure Token og den WebApp, hvor den skal bruges, er 100 % identisk.
- Tjek password format i FBA-brugerdatabasen.
- Tjek machine keys (sharepoint.stackexchange.com)
- Tjek web.config (qualitydata.com)
Sidst opdateret