Настройка FBA (Form-based authentication) в SharePoint 2013 (Часть 3 -Настройка config-файлов)

Часть 3 – Настройка config-файлов

Теперь создаём Веб-приложение в SharePoint.

  • Заходим в Центр администрирования SharePoint. Слева на панели кликаем “Управление приложениями”, затем заходим в “Управление веб-приложениями”.
  • Сверху на панели инструментов нажимаем “Создать”

  • Пишем Имя и выбираем необходимые опции

 

  • Ставим галочку “Разрешить проверку подлинности на основе форм (FBA)”. Вводим “Имя поставщика контроля членства в ASP .NET” и “Имя диспетчера ролей ASP .NET”, в нашем случае это “FBAMembershipProvider” и “FBARoleProvider” соответственно. Также оставляем галочку “Включить проверку подлинности Windows”, чтобы мы могли на выбор авторизоваться с помощью Windows аутентификации или с помощью FBA. Затем нажимаем “OK”.

  • Появляется окошко с надписью о том, что веб-приложение создано, кликаем “OK”.
  • Теперь нам надо установить провайдера FBA для SharePoint путём редактирования config-файлов. SharePoint состоит из нескольких веб-приложений, для каждого из которых необходимо установить провайдера FBA:
  1. Центр администрирования;
  2. Security Token Service Application;
  3. Все остальные веб-приложения, которые Вы создадите для SharePoint, и на которых Вы хотите использовать FBA.
  • Есть 2 варианта, как это сделать:

Вариант 1 - прописывать настройки для каждого из веб-приложений SharePoint.

Вариант 2 - прописать настройки в файл “machine.config”. В таком случае настройки наследуются во все веб-приложения SharePoint.

  • ПРЕЖДЕ ЧЕМ РЕДАКТИРОВАТЬ CONFIG-ФАЙЛЫ СОЗДАЙТЕ ИХ РЕЗЕРВНУЮ КОПИЮ
  • Ниже следует описание опций, которые настраиваются в config-файлах. Вы может задать их на свой выбор, но важно помнить, что если Вы используете поставщика контроля учётных записей одной базы данных в нескольких местах, они должны использовать одинаковые параметры, иначе Вы столкнётесь с различного рода проблемами пользователей, созданных с одним набором параметров, и пытающихся пройти авторизацию с отличным набором опций.

 

Опция

Описание

connectionStringName

Имя соединения с базой данных

enablePasswordRetrieval

true/false. Возможность извлечения пароля пользователя.

enablePasswordReset

true/false. Возможность сброса пароля пользователя.

requiresQuestionAndAnswer

true/false. Возможность связывания вопроса и ответа с учётной записью. Ответ должен быть получен при сбросе пароля.

applicationName

Возможность использования одной базы данных учётных записей с большим количеством различных приложений, каждое из которых имеет собственный набор пользователей. По умлочанию – “/”

requiresUniqueEmail

true/false. Определяет возможность использования различными пользователями одинакового адреса электронной почты.

passwordFormat

Clear, Hashed или Encrypted. Clear – хранение пароля в виде обычного текста. Любой пользователь имеющий доступ к базе данных может прочитать пароль. Hashed – хеширование пароля. Когда пользователь авторизуется, пароль хешируется и сравнивается с хранимым хеш-значением. Пароль пользователя не может быть извлечён, даже если украдена база данных, возможен только сброс пароля. Encrypted – шифрование пароля, человек не может прочитать пароль в базе данных, но пароль всё ещё может быть дешифрован и получен.

maxInvalidPasswordAttempts

Количество попыток ввода пароля, после чего учётная запись заблокируется. По умолчанию – 5.

passwordAttemptWindow

Количество минут, по истечении которых сбрасывается счётчик неправильных вводов пароля. По умолчанию – 10.

minRequiredPasswordLength

Минимальная длина пароля. По умолчанию – 7.

minRequiredNonalphanumericCharacters

Минимальное количество небуквенных символов в пароле. По умолчанию – 1.

passwordStrengthRegularExpression

Регулярное выражение, которое используется для проверки сложности пароля.

 

 

Вариант 1:

  • Открываем “Диспетчер служб IIS”.
  • Сначала настроим config для Центра администрирования SharePoint. Слева на панели разворачиваем узел с именем сервера, далее разворачиваем узел “сайты”. Выбираем сайт “SharePoint Central Administration v4” и щёлкаем правой кнопкой мыши по нему. Выбираем “Проводник”.

 

  • В Проводнике открываем файл “web.config” через Блокнот.
  • Теперь в файле “web.config” в разделе <configuration> найдите раздел <system.web>, в нём необходимо отыскать раздел <roleManager> с подразделом <providers>, сюда то нам и надо записать следующую строку, если мы хотим использовать роли в SharePoint

Если ОС более ранняя, чем Windows Server 2012, то в значении “Version” везде надо прописывать “2.0.0.0”.

<add name="FBARoleProvider" connectionStringName="FBADB" applicationName="/"

 type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Где “FBARoleProvider” – наш поставщик ролей, а “FBADB” – соединение с базой данных.

  • Чуть ниже в файле будет раздел <membership> с подразделом <providers> (путь получается: <configuration> <system.web> <membership> <providers>), в него вставляем строку:

 

 <add name="FBAMembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="FBADB"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="false"
 applicationName="/"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />

 

Где “FBAMembershipProvider” – поставщик учётных записей пользователей; “FBADB” – соединение с базой данных.

Можно настраивать аутентификацию путём изменения опций, описание опций было выше.

  • Далее в конце файла добавляем следующую строку перед закрытием раздела </configuration>

<connectionStrings>
<add connectionString="Server=cib-test-sp15-1;Database=aspnetdb;Integrated Security=true" name="FBADB" />
</connectionStrings>

Где “cib-test-sp15-1” – наш SQL Server; “aspnetdb” – база данных с учётными записями пользователей; “FBADB” – соединение с базой данных, которое мы создавали.

  • Закрываем файл с сохранением изменений
  • Затем настроим config для Security Token Service Application. В “Диспетчере служб IIS” слева на панели в разделе “сайты” открываем раздел “SharePoint Web Services”. Выбираем “SecurityTokenServiceApplication” и щёлкаем правой кнопкой мыши. Выбираем “Проводник”.

 

  • В Проводнике открываем файл “web.config” через Блокнот.
  • Далее в конце файла добавляем следующую строку перед закрытием раздела </configuration>

<system.web>
 <membership>
 <providers>
 <add name="FBAMembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="FBADB"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="false"
 applicationName="/"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />
 </providers>
 </membership>
<roleManager>
 <providers>
 <add name="FBARoleProvider" connectionStringName="FBADB" applicationName="/"
 type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 </providers>
 </roleManager>
 </system.web>
<connectionStrings>
<add connectionString="Server=cib-test-sp15-1;Database=aspnetdb;Integrated Security=true" name="FBADB" />
</connectionStrings>

 

 

  • Закрываем файл с сохранением изменений.

 

  • Теперь остаётся настроить config-файл для веб-приложения, в котором мы хотим использовать FBA авторизацию. В дальнейшем при создании нового веб-приложения, для него нужно будет тоже проделать нижеописанное. В “Диспетчере служб IIS” слева на панели в разделе “сайты” выбираем сайт с именем веб-приложения, которое мы создавали. В нашем случае – “FBATest”. Выбираем “Проводник”.

  • В Проводнике открываем файл “web.config” через Блокнот.
  • В разделе <configuration> найдите раздел <system.web>, в нём необходимо отыскать раздел <membership defaultProvider="i"> с подразделом <providers>. Сюда вставляем следующую строку

<add name="FBAMembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="FBADB"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="false"
 applicationName="/"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />

 

  • Чуть ниже в файле будет раздел <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> с подразделом <providers> (путь: <configuration> <system.web> <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> <providers>), если Вы будете использовать роли, сюда вставляем следующее

<add name="FBARoleProvider" connectionStringName="FBADB" applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

 

 

  • Далее в конце файла добавляем следующую строку перед закрытием раздела </configuration>

<connectionStrings>
<add connectionString="Server=cib-test-sp15-1;Database=aspnetdb;Integrated Security=true" name="FBADB" />
</connectionStrings>

  • Закрываем файл с сохранением изменений

Вариант 2

  • Открываем “Этот компьютер” и переходим по пути “C:\Windows\Microsoft\.Net\Framework64\v4.0.30319\Config”
  • Открываем файл “machine.config” через Блокнот

  • В разделе <configuration> ищем раздел <connectionStrings> и добавляем в него строку

<add connectionString="Server=cib-test-sp15-1;Database=aspnetdb;Integrated Security=true" name="FBADB" />

 

Где “cib-test-sp15-1” – наш SQL Server; “aspnetdb” – база данных с учётными записями пользователей; “FBADB” – соединение с базой данных, которое мы создавали.

  • Затем в разделе <configuration> найдите раздел <system.web>, в нём необходимо отыскать раздел <membership> с подразделом <providers>, сюда вставляем следующее

<add name="FBAMembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="FBADB"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="false"
 applicationName="/"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />

 

Где “FBAMembershipProvider” – поставщик учётных записей пользователей; “FBADB” – соединение с базой данных.

Можно настраивать аутентификацию изменением опций, описание опций было выше.

  • Чуть ниже в файле будет раздел <roleManager> с подразделом <providers> (путь: <configuration> <system.web> <roleManager> <providers>), сюда добавляем следующее

<add name="FBARoleProvider" connectionStringName="FBADB" applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

 

Где “FBARoleProvider” – наш поставщик ролей.

 

  • Закрываем файл с сохранением изменений.
  • Открываем “Диспетчер служб IIS”. Слева на панели разворачиваем узел с именем сервера, далее разворачиваем узел “сайты”, открываем раздел “SharePoint Web Services”. Выбираем “SecurityTokenServiceApplication” и щёлкаем правой кнопкой мыши. Выбираем “Проводник”.

  • В Проводнике открываем файл “web.config” через Блокнот.
  • Далее в конце файла перед закрытием раздела </configuration> добавляем следующее

<system.web>
 <membership>
 <providers>
 <add name="FBAMembershipProvider"
 type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
 connectionStringName="FBADB"
 enablePasswordRetrieval="false"
 enablePasswordReset="true"
 requiresQuestionAndAnswer="false"
 applicationName="/"
 requiresUniqueEmail="true"
 passwordFormat="Hashed"
 maxInvalidPasswordAttempts="5"
 minRequiredPasswordLength="7"
 minRequiredNonalphanumericCharacters="1"
 passwordAttemptWindow="10"
 passwordStrengthRegularExpression="" />
 </providers>
 </membership>
<roleManager>
 <providers>
 <add name="FBARoleProvider" connectionStringName="FBADB" applicationName="/"
 type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 </providers>
 </roleManager>
 </system.web>

 

  • Закрываем файл с сохранением изменений.

 


Опубликовано: 20.04.2015
Автор: Владислав Иванов