SharePoint では様々なユーザー認証方法を使用することができます。Active Directory ドメインサービス(AD DS)、 LDAP、 ローカルコンピューターの Windows ユーザー認証、 フォームベース認証 (ASP.NET SQL Server データベース認証プロバイダー) といった方法があります。
すでに Active Directory や LADP でユーザーを管理している組織では AD DS や LDAP を使用して認証をおこなうように構成すると一元管理できて便利です。
しかし、 小規模グループで SharePoint を利用する場合に AD DS や LDAP を新たに構築するのは大げさかもしれません。そんなときは、 ユーザーをデータベースで管理することができるフォームベース認証が便利です。AD DS や LDAP を必要とせず、 SharePoint の仕組みの中でユーザー管理を完結させることができます。
今回は、 SharePoint のフォームベース認証 (FBA:Forms Based Authentication) を便利にしてくれる SharePoint 2013 FBA Pack を紹介します。SharePoint 2013 FBA Pack をインストールすると次のことができるようになります。
- SharePoint のサイト設定ページからユーザーの作成、 編集、 削除、 検索ができるようになります。
- ユーザーが自身のパスワードを変更することができるようになります。
- パスワードリカバリー。パスワードを忘れてしまったユーザーが自身の操作で新しいパスワードを発行することができます。管理者がパスワードを再発行する必要がありません。
前提条件
Windows Server 2012 R2 に SharePoint Foundation 2013 SP1 がインストールされている前提での手順説明となります。SharePoint Foundation 2013 SP1 のインストールについては 「SharePoint Foundation 2013 SP1 をインストールする」 を参照してください。
SQL Serverデータベースを構成する
FBAPack の使用は SharePoint でフォームベース認証が構成されていることが前提となっています。まずはフォームベース認証用の SQL Server データベースを構成していきます。
エクスプローラーで C:\Windows\Microsoft.NET\Framework64\v4.0.30319
を開いて、 aspnet_regsql.exe
を実行します。
ASP.NET SQL Server セットアップ ウィザードを進めていきます。
セットアップ オプションの選択では アプリケーション サービスのために SQL Server を構成する
を選択します。
サーバー名には SQL Server インスタンスを指定します。SharePoint Foundation 2013 をスタンドアロンでインストールしている場合はインスタンス名が SHAREPOINT
となっています。サーバー名の末尾に \SHAREPOINT
を追加します。
以下のメッセージが表示されれば完了です。
IISの認証プロバイダーを構成する
インターネット インフォメーション サービス (IIS) マネージャー
を起動します。サイト SharePoint - 80
を選択して、 接続文字列
を開きます。
LocalSqlServer
をダブルクリックして接続文字列を編集します。
SQL Server
を選択します。- サーバー
.\SHAREPOINT
を入力します。 - データベース
aspnetdb
を入力します。 Windows 統合セキュリティを使用する
を選択します。
サイト SharePoint - 80
を選択して、 プロバイダー
を開きます。
プロバイダー画面上部の機能として .NET の役割
が表示されていることを確認して、 追加...
を押します。
以下の内容を入力して、 役割プロバイダーを追加します。
- 種類
SqlRoleProvider (System.Web.Security.SqlRoleProvider, 4.0.0.0)
を選択します。 - 名前
FBARoleProvider
を入力します。 - ConnectionStringName
LocalSqlServer
を選択します。 - ApplicationName
/
を入力します。
プロバイダー画面上部の機能を .NET ユーザー
に変更して、 追加...
を押します。
以下の内容を入力して、 ユーザープロバイダーを追加します。
- 種類
SqlMembershipProvider (System.Web.Security.SqlMembershipProvider, 4.0.0.0)
を選択します。 - 名前
FBAMembershipProvider
を入力します。 - ConnectionStringName
LocalSqlServer
を選択します。 - ApplicationName
/
を入力します。 - EnablePasswordReset
True
に変更します。 - RequiresUniqueEmail
True
に変更します。 - StorePasswordInSecureFormat
True
に変更します。
これで SharePoint - 80
サイトの認証プロバイダーの構成が完了しました。SharePoint Web Services
サイトに対しても同じ操作をおこなって認証プロバイダーを構成してください。
SharePoint Web Services
サイトに対して行う作業
- 接続文字列
LocalSqlServer
の内容を編集する - プロバイダー 役割
FBARoleProvider
を追加する - プロバイダー ユーザー
FBAMembershipProvider
を追加する
手順は SharePoint - 80
とまったく同じです。
SharePointの認証プロバイダーを設定する
SharePoint 2013 サーバーの全体管理
を起動して、 セキュリティの 認証プロバイダーの指定
を選択します。
認証プロバイダーの領域 既定
をクリックすると、 認証の編集が表示されます。クレーム認証の種類を以下のように変更して保存します。
フォーム ベース認証 (FBA) の有効化
にチェックを入れます。- ASP.NET メンバーシップ プロバイダー名
FBAMembershipProvider
を入力します。 - ASP.NET ロール マネージャー名
FBARoleProvider
を入力します。
SharePoint 2013 FBAPack 1.3.4をインストールする
以下のサイトにアクセスして SharePoint2013FBAPack.1.3.4.zip
をダウンロードします。
ダウンロードした SharePoint2013FBAPack.1.3.4.zip
を適当なフォルダに展開します。
管理ツール → サービス を開いて SharePoint Administration
サービスを 開始
します。
SharePoint 2013 管理シェル
を起動して、 SharePoint2013FBAPack.1.3.4.zip
を展開したフォルダに移動します。以下のように SharePoint サイトを指定して deploy コマンドを実行します。
.¥deploy http://svr01/
FBAPackのインストールを確認する
ブラウザーを起動して SharePoint サイトにアクセスします。既定のサインインページを使用する設定でフォームベース認証を有効化しているため、 はじめに認証方法を選択する画面が表示されます。まだユーザーを作成していないので、 Windows 認証
を選択して管理者アカウントでサインインします。
サイトの設定
を開いて 「ユーザーと権限」 に FBA Membership Request Management
、 FBA Site Configuration
、 FBA User Management
、 FBA Role Management
が表示されていれば、 FBAPack のインストールは成功です。
ユーザーを作成する
FBA User Management
を開いて、 New User
をクリックするとユーザー情報を入力する画面が表示されます。ユーザー情報を入力して、 OK を押します。
ユーザーをサイトのメンバーとして追加する
ユーザーを作成しただけでは、 まだサイトにアクセスすることはできません。ユーザーをサイトのメンバーとして追加する必要があります。
サイトの設定
→ ユーザーとグループ
を開き、 新規
→ ユーザーの追加
を選択します。作成したユーザー名を入力して 共有 を押します。
作成したユーザーでアクセスしてみる
新たにブラウザーを起動して SharePoint サイトにアクセスします。同じコンピューターでアクセスする場合は、 管理者アカウントで自動ログオンしてしまわないように InPrivate ブラウズを使用します。
認証の種類として フォーム認証
を選択します。
フォーム認証
を選択すると、 サインインするためのフォームが表示されます。作成したユーザーのユーザー名とパスワードを入力して サインイン を押します。
SharePoint サイトが表示されて、 ページ右上に作成したユーザーの名前が表示されていれば成功です。