SharePoint2010でフォームベース認証(FBA)を構成する
http://blogs.technet.com/b/mahesm/
SharePoint2010では、WSS3.0やMOSS2007などのFBAがサポートされています。 これは、SharePointで使用するASP.Netの機能です。 SharePoint2010クラシックベースの認証またはクレームベースの認証を使用してwebアプリケーションを作成できます。 ただし、Fbaは、要求ベース認証を使用して作成されたwebアプリケーションでのみ構成できます。
クラシックモード認証とクレームベース認証の違いは何ですか?
クラシックモード認証:統合windows認証を指します。 Webアプリケーションでクラシックモード認証を使用している場合は、フォームベース認証を構成できません。 Webアプリケーションをクラシックモード認証からクレームベース認証に変換できます。 しかし、それはPowerShellコマンドとその不可逆的なプロセスを使用してのみ行うことができます。 Webアプリケーションをクラシックモード認証からクレームベース認証に変換するための詳細な手順を示しました。
クレームベースの認証:SharePoint2010はWindows Identity Foundation上に構築されています。 これは、windowsだけでなく、非windowsベースのシステムからの認証を可能にします。 これにより、単一のURLで複数の認証を行う機能も提供されます。
SharePoint2010を使用したFBAの構成には、4つの主要な手順があります。 SQLメンバシッププロバイダーを使用してFBAを構成する手順は次のとおりです:
I>既存のwebアプリケーションを作成または変換してクレームベース認証を使用する
II>SQLデータベースでユーザー Idを作成する
III>Webを変更します。設定ファイル
IV>SQLデータベースに存在するユーザーに権限を与える
注:LDAPメンバシッププロバイダでFBAを設定する場合は、TechNetの記事を参照してください。
以下の詳細な手順を参照してください。
I>クレームベース認証を使用するように既存のwebアプリケーションを作成または変換する
注: -Webアプリケーションは、サーバーの全体管理コンソールまたはPowerShellから作成する必要がありますが、クレームベースの認証を使用する必要があります。
A.サーバーの全体管理を使用したwebアプリケーションの作成
-
-
- サーバーの全体管理コンソールを開きます。
- アプリケーション管理の下のWebアプリケーションの管理をクリックします。
- リボンの[新規]をクリックします。
- は、ページの上部からクレームベース認証を選択しました。
- webアプリケーションのポート番号を選択します。
- クレーム認証の種類の下にあるフォームベース認証(FBA)を有効にするをクリックします。 Windows認証はデフォルトで有効になっており、windows認証が必要ない場合は、チェックボックスを削除する必要があります。
- メンバシッププロバイダを追加&ロールマネージャ名
- webアプリケーションが作成されたらすぐに、webアプリケーションの認証プロバイダ設定を確認してく 私は以下のスクリーンショットを持っています:
-
メモ:-単一のURLでWindows認証とフォームベース認証を使用する場合は、[Windows認証を有効にする]と[フォームベース認証を有効にする]を選択する必要があります。
注:-理解のために、メンバシッププロバイダを”SQL-MembershipProvider”として、ロールマネージャを”SQL-RoleManager”として使用しています。 異なる名前を使用できますが、webで参照できるように名前を覚えておく必要があります。設定ファイル。 これらの名前では大文字と小文字が区別されます。
クラシックモード認証を使用して作成されたWebアプリケーションが既にある場合、またはWebアプリケーションをクラシックモード認証からクレームベース認証に変換する方法を教えてください。
そのwebアプリケーションを削除する必要はありません。 そのwebアプリケーションをクラシックモード認証からクレームベース認証に変換できます。 ただし、これはPowerShellを使用してのみ行うことができ、元に戻すことができないプロセスです。 PowerShellコマンドに従って、webアプリケーションをクラシックモード認証からクレームベース認証に変換します:
App App=get-spwebapplication”URL”
app app.useclaimsauthentication=”True”
$app.Update()
例:-
$App=get-spwebapplication”http://sp1:8000”
$アプリ。useclaimsauthentication=”True”
$app.Update()
クレームベースの認証を使用するwebアプリケーションを作成したら、サイトコレクションを作成できます。 これで、webアプリケーションにアクセスすると、下の画像に示すように、Windows認証またはフォームベース認証を選択してサイトにアクセスできます。
windows認証を選択し、サイトにログインします。 ログインすると、現在ログインしている資格情報が使用されます。 ログインしているアカウントにSharePointサイトへのアクセス権があることを確認してください。
II>メンバシッププロバイダとロールマネージャを設定します。
- SharePoint2010サーバーでコマンドプロンプトを開きます。
- C:WindowsMicrsooftに移動します。Netframework64v2.0.50727
- “aspnet_regsqlを実行します。exe”。 これにより、ASP.Net SQL Serverセットアップウィザードが開きます。 この上で次へをクリックしてください。
- 「アプリケーションサービス用のSQL Serverの構成」をクリックします。
- データベース名を指定します。 データベース名を指定しないと、データベース呼び出しaspnetdbが作成されます。
- membershipseederツールを使用して、SQLデータベースにユーザーを作成します。 Codeplexからツールとその情報を見つけることができます。 注:-データベース名を”SQL-Auth”として指定しました。
>メンバシッププロバイダーとロールマネージャの設定ファイル。
3つの異なるwebを変更する必要があります。fbaを動作させるための設定ファイル。 ウェブ…FBA Webアプリケーション、webの構成。サーバーの全体管理サイト&Webの構成。STSの設定。
FBA webアプリケーションの構成。
- 接続文字列の追加:
<コネクションストリングス>
<add name=”SQLConnectionString”connectionString=”データソース=SQL;統合セキュリティ=SSPI;初期カタログ=SQL-Auth” />
</connectionStrings>
接続文字列は、</SharePoint>の後、<systemの前に追加する必要があります。ウェブ>
- メンバシッププロバイダーとロールマネージャーの追加:
<roleManager defaultProvider=”c”enabled=”true”cacheRolesInCookie=”false””>
<プロバイダ>
<name=”c”type=”Microsoft”を追加します。——-管理。主張。SPClaimsAuthRoleProvider、マイクロソフト。SharePoint、バージョン=14.0.0。0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” />
<add connectionStringName=”SQLConnectionString” applicationName=”/” description=”Stores and retrieves roles from SQL Server” name=”SQL-RoleManager” type=”System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />
</providers>
</roleManager>
<membership defaultProvider=”i”>
<providers>
<add name=”i” type=”Microsoft.SharePoint.Administration.主張。SPClaimsAuthMembershipProvider,Microsoft.SharePoint、バージョン=14.0.0.0、カルチャ=ニュートラル、PublicKeyToken=71e9bce111e9429c” />
<add connectionStringName=”SQLConnectionString”passwordAttemptWindow=”5″enablePasswordRetrieval=”false”enablePasswordReset=”false”requiresQuestionAndAnswer=”true”applicationName=”/”requiresUniqueEmail=”true”passwordFormat=”Hashed”description=”sql Serverからメンバシップデータを格納して取得します”name=”SQL-MembershipProvider”type=”System.ウェブ…セキュリティ。SqlMembershipProvider,システム.Web、バージョン=2.0.3600。0、カルチャ=ニュートラル、PublicKeyToken=b03f5f7f11d50a3a” />
</プロバイダ>
</会員制>
</システム。web>
B.Webを変更します。サーバーの全体管理webアプリケーションの構成。
- 接続文字列の追加:
<コネクションストリングス>
<add name=”SQLConnectionString”connectionString=”データソース=SQL;統合セキュリティ=SSPI;初期カタログ=SQL-Auth” />
</connectionStrings>
接続文字列は、</SharePoint>の後、<systemの前に追加する必要があります。ウェブ>
- メンバシッププロバイダーとロールマネージャーの追加:
<roleManager defaultProvider=”A S P N E T Windowstokenroleprovider”enabled=”true”cacheRolesInCookie=”false”>
<プロバイダ>
<add connectionStringName=”SQLConnectionString”applicationName=”/”description=”SQL Serverからロールを格納して取得します”name=”SQL-RoleManager”type=”System.ウェブ…セキュリティ。SqlRoleProvider、システム。Web、バージョン=2.0.3600。0、カルチャ=ニュートラル、PublicKeyToken=b03f5f7f11d50a3a” />
</プロバイダ>
</roleManager>
<メンバーシップdefaultProvider=”SQL-MembershipProvider”>
<プロバイダ>
<add connectionStringName=”SQLConnectionString”passwordAttemptWindow=”5″enablePasswordRetrieval=”false”enablePasswordReset=”false”requiresQuestionAndAnswer=”true”applicationName=”/”requiresUniqueEmail=”true”passwordFormat=”Hashed”description=”sql Serverからメンバーシップデータを格納し、取得します” 名前=”SQL-MembershipProvider”タイプ=”システム。ウェブ…セキュリティ。SqlMembershipProvider,システム.Web、バージョン=2.0.3600.0、文化=ニュートラル、PublicKeyToken=b03f5f7f11d50a3a” />
</プロバイダ>
</会員>
STSの設定。 STS webを見つけることができます。%programfiles%common filesMicrosoft Sharedwebサーバー extensions14w e bservicessecuritytoken
<connectionStringsからの設定>
<add name=”SQLConnectionString”connectionString=”データソース=SQL;統合セキュリティ=SSPI;Initial Catalog=SQL-Auth” />
</connectionStrings>
<system.web>
<roleManager defaultProvider=”c” enabled=”true” cacheRolesInCookie=”false”>
<providers>
<add name=”c” type=”Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” />
<add connectionStringName=”SQLConnectionString” applicationName=”/” description=”Stores and retrieves roles from SQL Server” name=”SQL-RoleManager” type=”System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />
</providers>
</roleManager>
<membership defaultProvider=”i”>
<providers>
<add name=”i” type=”Microsoft.SharePoint.Administration.主張。SPClaimsAuthMembershipProvider,Microsoft.SharePoint、バージョン=14.0.0.0、カルチャ=ニュートラル、PublicKeyToken=71e9bce111e9429c” />
<add connectionStringName=”SQLConnectionString”passwordAttemptWindow=”5″enablePasswordRetrieval=”false”enablePasswordReset=”false”requiresQuestionAndAnswer=”true”applicationName=”/”requiresUniqueEmail=”true”passwordFormat=”Hashed”description=”sql Serverからメンバシップデータを格納して取得します”name=”SQL-MembershipProvider”type=”System.ウェブ…セキュリティ。SqlMembershipProvider,システム.Web、バージョン=2.0.3600。0、カルチャ=ニュートラル、PublicKeyToken=b03f5f7f11d50a3a” />
</プロバイダ>
</会員制>
</システム。上記のweb>
は</configurationの前に追加する必要があります>
IV>SQLデータベースのユーザーに権限を付与します。
- サーバーの全体管理コンソールにアクセスし、”アプリケーション管理”の下の”webア
- webアプリケーションを選択し、リボンのユーザーポリシーをクリックします。
- ユーザーの追加をクリックし、デフォルトゾーンを選択します。
- ユーザー名を入力し、適切な権限を定義してwebアプリケーションにユーザーを追加します。
共通の問題:
TechNetの記事”初期展開に必要な管理およびサービスアカウント(SharePoint Server2010)”に従って複数のサービスアカウントを使用している場合、ユーザー名を解決したり、ユーザーをwebアプリケーションに追加したりできないことがあります。 3つの異なるアカウント(ファーム管理者アカウント、Webアプリケーションのアプリケーションプールアカウント、およびサービスアプリケーションアカウント)を使 重要:
WSS3.0/MOSS2007をSharePoint2010にアップグレードすると、FBAはどうなりますか?
SharePoint2010にアップグレードする前に、webに対して行った変更を削除する必要があります。設定ファイル。 アップグレードのプロセスが終了するとすぐに、すべてのwebアプリケーションがアップグレードされます; ただし、これらはクラシックモード認証を使用します。 これらのwebアプリケーションをクラシックモード認証からクレームベース認証に変換できます。
サードパーティのツール:FBA Manager SP2010(フォームベース認証)Dev-IT