Настройка 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:
- Центр администрирования;
- Security Token Service Application;
- Все остальные веб-приложения, которые Вы создадите для 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
Автор: Владислав Иванов