Настройка FBA в SharePoint 2010

При работе с SharePoint 2010 возникает потребность использовать авторизацию, при которой данные о пользователях хранятся не в Active Directory, а во внешних источниках, например, в SQL Server. Для таких целей используется Forms Based Authentication (FBA).

ASP.NET Membership Provider

Настроим ASP.NET Membership Provider, который использует базу данных в SQL Server для хранения ролей, пользователей и их членства. Установить этот поставщик довольно легко. Приступим!

На стенде с SharePoint 2010 или SQL Server, запустите файл aspnet_regsql.exe, который можно найти в C:\Windows\Microsoft.NET\Framework64\v2.0.50727. Запускается мастер для настройки ASP.NET SQL Server (рис. 1).

clip_image001

Рис. 1. Мастер для настройки ASP.NET SQL Server

Кликаем на Далее. На следующем шаге (рис. 2) нужно выбрать, что мы хотим сделать с базой данных. В первом случае создается новая или настраивается старая база данных для хранения информации о членстве, профилях и ролях. Во втором случае подобная информация удаляется из указанной базы данных.

В нашем случае выбираем первый пункт, и кликаем на Далее.

clip_image002

Рис. 2. Выбираем задачу для настройки базы данных

На следующем шаге (рис. 3) указываем данные для подключения к SQL Server. В качестве базы данных можно использовать существующую (выбрав ее из выпадающего списка), либо создать новую (просто набрав ее имя в поле).

clip_image003

Рис. 3. Подключение к SQL Server

Заполнив данные, кликаем на Далее, и переходим к просмотру указанных параметров подключения к SQL Server (рис. 4).

clip_image004

Рис. 4. Подтверждение параметров подключения к базе данных

Если все указано верно, то кликаем на Далее. На следующем (последнем) шаге кликаем на Готово.

После завершения работы мастера запускаем SQL Server Management Studio и даем права db_owner аккаунтам веб-приложений и пула приложений Центра администрирования для созданной базы данных.

Веб-приложение

Заходим в Центр администрирования (нужно обладать правами администратора фермы), и создаем новое веб-приложение (Управление веб-приложениями, далее Создать). В появившемся окне обязательно нужно выбрать Проверка подлинности на основе утверждений (рис. 5). Данный тип проверки подлинности позволяет использовать FBA.

clip_image005

Рис. 5. Тип проверки подлинности при создании веб-приложения

Далее выбираем тип проверки подлинности на основе утверждений (рис. 6). Также нужно написать имя поставщика контроля членства и имя диспетчера ролей ASP.NET. Названия нужно запомнить, так как они нам еще пригодятся.

clip_image006

Рис. 6. Типы проверки подлинности на основе утверждений

Заполним остальные поля, и создадим веб-приложение. Для тестирования создадим коллекцию сайтов на основе любого шаблона.

Настройка SharePoint 2010 для ASP.NET Membership Provider

Таким образом, у нас уже создано веб-приложение, и база данных для ASP.NET Membership Provider. Остается их связать. Для этого нужно будет отредактировать web.config для следующих веб-приложений и сервиса:

  • Центр администрирования
  • Security Token Service
  • Наше веб-приложение

На помощь приходит FBA Configuration Manager for SharePoint 2010. Утилита позволяет изменить 3 конфигурационных файла за один клик.

Интерфейс программы минималистичен (рис. 7). Удобно, что в выпадающем списке Sample Configuration можно выбрать шаблон SqlMembership, который нужно будет отредактировать, и кликнуть на Update Configs.

clip_image008

Рис. 7. Пример конфигурационного файла для настройки FBA

Уже на этой стадии можно проверить, что мы сделали. Откроем созданную нами коллекцию сайтов. При этом для входа на сайт нужно будет выбрать один из доступных способов (рис. 8)

clip_image009

Рис. 8. Выбор учетных данных для входа

На данный момент у нас нет пользователей, которые смогли бы войти на сайт с помощью проверки подлинности на основе форм. Есть несколько способов создания пользователей:

  • В Visual Studio создаем новое веб-приложение ASP.NET и добавляем строку подключения, MembershipProvider и RoleManager в web.config. Далее запускаем Конфигурацию ASP.NET из меню Проект, в результате чего открывается средство администрирования веб-узла
  • Используем SharePoint 2010 FBA Pack. После установки входим на сайт с помощью проверки подлинности Windows. В параметрах сайта находим FBA User Management. Кроме этого, у утилиты есть и другие полезные возможности.

Заключение

Использовать FBA не так сложно, как кажется. Да, процесс конфигурации занимает время, но его можно значительно уменьшить, используя различные утилиты.

Ссылки

Элемент membership (схема параметров ASP.NET)

Configuring claims and forms based authentication for use with a SQL provider in SharePoint 2010

Configure Forms Based Authentication (FBA) with SharePoint 2010

Configuring Forms Based Authentication for SharePoint 2010 using IIS7

16 thoughts on “Настройка FBA в SharePoint 2010

    • Сергей, это тоже неплохой вариант. Я же показал, что можно использовать инструменты, явно не изменяя web.comfig (изменения на самом деле происходят, но неправильные действия не приведут к печальным последствиям)

  1. Да, Дмитрий я про тоже, без понимания структуры, ручные изменения web.config – верный способ его испортить, а тут готовый инструмент. Жаль я не наткнулся на вашу статью в начале своих “мытарств” :) сэкономил бы кучу времени. Спасибо!

  2. Надо только не забыть, что при неверном вводе пароля несколько раз, пользователь может быть заблокирован, потому следует заранее продумать интерфейс разблокирования пользователей :)

  3. прекрассно, без сучка и задоринки сделала сразу то что нужно было, осталось тока залить бд автоматом со всеми пользователями,т.к. они уже есть со всеми данными ! :)

  4. Дмитрий, можно как дополнение к статье сделать разбор конфига того что редактируется в Configration Manager
    дескать add key= (берем оттуда или указывали там)
    без сноровки сложно )

    • Configuration Manager генерирует основную часть

      и уже затем указываются последовательно строка подключения к базе данных, далее Membership и Role

  5. Спасибо за статью, Дмитрий!
    Нужен совет. Вопрос возможно глупый, если не ответите, не обижусь =)
    Есть интранет портал, нобходимо предоставить мобильным (с АйПадами) пользователям возможность заходить на портал через интернет. Портал за Forefront TMG. У всех пользователей есть учетки в AD. Так вот вопрос по аутентификации. Придется использовать все-таки FBA и создавать для пользователей дополнительные учетки, или можно будет вводить учетные данные AD?
    Если есть на примете, какие-нибудь статьи на тему, как дать пользователям из AD доступ к порталу через интернет, буду благодарен, если поделитесь ссылками.

  6. Спасибо за пинок в нужном направлении. По-моему, это то, что нужно.

  7. Добрый день, Дмитрий. Скажите, а если у меня уже есть настроенное web-приложение для windows aутентификации, как мне его настроить еще и для FBA?

      • Статья то меня устраивает. Возможно неправильно выразился. У меня на web application стоял классический тип проверки подлинности. Проверка с помощью FBA была не доступна. Пришлось применить powershell скрипт

Leave a comment