次の方法で共有


認証の例

この記事の内容 :

  • SQL メンバシップ プロバイダ

  • Active Directory メンバシップ プロバイダ

  • LDAP メンバシップ プロバイダ

  • AD FS を使用した Web SSO

この記事では、いくつかの一般的なフォーム認証プロバイダと Web シングル サインオン (SSO) 認証プロバイダの構成の設定例を示します。

SQL メンバシップ プロバイダ

次の表に、ASP.NET フォーム認証を使用して SQL メンバシップ プロバイダに接続する場合の Web.config ファイルのエントリの例を示します。

構成の手順 Web.config ファイルのエントリの説明と例

ASP.NET フォーム認証を有効にします。

SharePoint サーバーの全体管理 Web サイトの [認証の編集] ページで、特定ゾーンの認証の種類をフォーム認証に設定できます。

この設定を行うと、そのゾーンに対して Web.config ファイルの認証の要素で指定されているモードが、自動的にフォームに変更されます。

次に例を示します。

<authentication mode="Forms">
</authentication>

メンバシップ プロバイダを登録します。

ローカル サーバー上で Microsoft SQL Server データベース ソフトウェアをメンバシップ プロバイダ データベースとして使用しており、メンバシップ プロバイダ名として AspNetSqlMembershipProvider を指定する場合は、Web.config ファイルに変更を加える必要がないことがあります。このシナリオでは、machine.config ファイルに AspNetSqlMembershipProvider の適切な構成が含まれている場合は、変更を加えることなくこれを Windows SharePoint Services に使用できます。

machine.config ファイルに含まれる既定の構成を適用しない場合 (リモート サーバー上で SQL Server データベースを使用する場合など) は、Web アプリケーションとサーバーの全体管理 Web サイトの両方の Web.config ファイルを編集し、メンバシップ プロバイダ データベースの connectionStrings 要素に接続情報を指定する必要があります。

次に例を示します。

<connectionStrings>

<add name="SqlProviderConnection" connectionString="server=SQLSERVERMACHINE;database=aspnetdb;Trusted_Connection=True" />

</connectionStrings>

*SQLSERVERMACHINE* を、SQL Server メンバシップ データベースをインストールしているサーバー コンピュータの名前に置き換えます。

次に、membership および providers 要素を追加し、Web.config ファイルにメンバシップ プロバイダを登録します。machine.config ファイルには既に既定のプロバイダが登録されているので、<add> 要素の前に <remove> 要素を追加する必要があります。

次に例を示します。

<membership defaultProvider="AspNetSqlMembershipProvider">

<providers>

<remove name="AspNetSqlMembershipProvider" />

<add connectionStringName="SqlProviderConnection" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</membership>

membership 要素は、Web アプリケーションとサーバーの全体管理サイトの両方の Web.config ファイルで、system.web 要素内に含める必要があります。

ロール マネージャを登録します (オプション)。

roleManager 要素を Web.config ファイルの system.web 要素に追加することで、ASP.NET の既定のロール プロバイダを使用できます。次に例を示します。

<roleManager enabled="true" />

上記の構文では、machine.config ファイルに定義されている AspNetSqlRoleProvider を使用しています。このロール マネージャは、SQL Server のローカルまたはリモート インスタンスの ASPNETDB データベースに接続できます。リモート サーバー上の SQL Server データベースをロール プロバイダ データベースとして使用する場合は、Web.config ファイルを編集し、リモート データベース サーバーの接続情報を指定する必要があります。

次に例を示します。

<connectionStrings>

<add

name="SqlProviderConnection"

connectionString="server=SQLSERVERMACHINE; database=aspnetdb; Trusted_Connection=True"

/>

</connectionStrings>

*SQLSERVERMACHINE* を、SQL データベースをホストするリモート サーバーの名前に置き換えます。メンバシップ プロバイダとロール マネージャの両方に同じ connectionStringName 要素の値を指定できるため、ロール プロバイダに新しい connectionStrings 要素を追加する必要はありません。ただし、ロール プロバイダに別のデータベースを使用する場合は、ロール プロバイダに別の connectionStrings 要素を追加する必要があります。

次に、roleManager および providers 要素を追加し、Web.config に roleManager プロバイダを登録する必要があります。既に machine.config ファイルには既定のプロバイダが登録されているので、<add> 要素の前に <remove> 要素を追加する必要があります。

次に例を示します。

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">

<providers>

<remove name="AspNetSqlRoleProvider" />

<add connectionStringName="SqlProviderConnection" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

</providers>

</roleManager>

roleManager 要素は、Web アプリケーションとサーバーの全体管理 Web サイトの両方の Web.config ファイルで、system.web 要素内に含める必要があります。

HTTP モジュールを登録します。

適用されません。

Active Directory メンバシップ プロバイダ

次の表に、ASP.NET フォーム認証を使用して Active Directory ディレクトリ サービス メンバシップ プロバイダを使用する場合の Web.config ファイルのエントリの例を示します。

注意

これは、単一のドメインを使用するシナリオでのみ有効です。

構成の手順 Web.config ファイルのエントリの説明と例

ASP.NET フォーム認証を有効にします。

サーバーの全体管理の [認証の編集] ページで、特定ゾーンの認証の種類をフォーム認証に設定できます。

この設定を行うと、そのゾーンに対して Web.config ファイルの認証の要素で指定されているモードが、自動的にフォームに変更されます。

次に例を示します。

<authentication mode="Forms">
</authentication>

たとえば、次のように、フォーム要素でログイン ページの URL も指定できます。

<authentication mode="Forms">
    <forms loginUrl="/_layouts/login.aspx"></forms>
</authentication>

メンバシップ プロバイダを登録します。

メンバシップ プロバイダに Active Directory サーバーを使用する場合は、Web.config ファイルを編集し、メンバシップ プロバイダを登録する必要があります。これを実行するには、connectionStrings 要素で Active Directory サーバーへの接続情報を指定する必要があります。

次に例を示します。

<connectionStrings>

<add name="ADConnectionString"

connectionString=

"LDAP://DirectoryServer/CN=Users,DC=DirectoryServer " />

</connectionStrings>

*DirectoryServer* をメンバシップ ディレクトリ サーバーの名前に置き換えます。

<membership defaultProvider="MembershipADProvider">

<providers>

<add name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

connectionStringName="ADConnectionString"/></providers>

</membership>

注意

上記の例では、アカウントの資格情報を指定していません。アカウントの資格情報を指定しない場合、Active Directory へのアクセスにアプリケーションのプロセス ID が使用されます。

Active Directory へのアクセスに別のアカウントが必要な場合は、connectionUsername および connectionPassword 属性で他のアカウントの資格情報を指定できます。この場合、ユーザーはユーザー名とパスワードをプレーンテキストで指定することになります。そのため、この構成セクションは暗号化することをお勧めします。詳細については、次の記事を参照してください。

ロール マネージャを登録します (オプション)。

HTTP モジュールを登録します。

適用されません。

LDAP メンバシップ プロバイダ

次の表に、LDAP (ライトウェイト ディレクトリ アクセス プロトコル) メンバシップ プロバイダで ASP.NET フォーム認証を使用する場合の Web.config ファイルのエントリの例を示します。

構成の手順 Web.config ファイルのエントリの説明と例

ASP.NET フォーム認証を有効にします。

サーバーの全体管理の [認証の編集] ページで、特定ゾーンの認証の種類をフォーム認証に設定できます。

この設定を行うと、そのゾーンに対して Web.config ファイルの認証の要素で指定されているモードが、自動的にフォームに変更されます。

<system.web>
 <!-mode=[Windows|Forms|Passport|None]>
 <authentication mode="Forms" />
</system.web>

メンバシップ プロバイダを登録します。

membership 要素は、Web.config ファイルの system.web 要素内に含める必要があります。

<membership defaultProvider="LdapMembershipProvider">

<providers>

<add

name="LdapMembership"

type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"

server="DC"

port="389"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="sAMAccountName"

userContainer="CN=Users,DC=userName,DC=local"

userObjectClass="person"

userFilter="(|(ObjectCategory=group)(ObjectClass=person))"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn"

/>

</providers>

</membership>

server および userContainer 属性に指定する値は、各自の環境に合わせて変更する必要があります。

ロール マネージャを登録します (オプション)。

<roleManager defaultProvider="LdapRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".PeopleDCRole">

<providers>

<add

name="LdapRoleProvider"

type="Microsoft.Office.Server.Security.LDAPRoleProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"

server="DC"

port="389"

useSSL="false"

groupContainer="DC=userName,DC=local"

groupNameAttribute="cn"

groupMemberAttribute="member"

userNameAttribute="sAMAccountName"

dnAttribute="distinguishedName"

groupFilter="(ObjectClass=group)"

scope="Subtree"

/>

</providers>

</roleManager>

server および groupContainer 属性に指定する値は、各自の環境に合わせて変更する必要があります。

HTTP モジュールを登録します。

適用されません。

AD FS を使用した Web SSO

Microsoft Windows Server 2003 R2 オペレーティング システムには、組織でユーザーの ID 情報を安全に共有できるようにする Active Directory フェデレーション サービス (AD FS) が導入されています。AD FS は、1 つのオンライン セッションの間に複数の Web アプリケーションに対してユーザーを認証するための Web シングル サインオン (SSO) テクノロジを提供します。

AD FS には、メンバシップ プロバイダとロール プロバイダの次の 2 つのペアが含まれます。

  • SingleSignOnMembershipProvider/SingleSignOnRoleProvider   Windows Server 2003 R2 に含まれる標準的なメンバシップ プロバイダとロール プロバイダ。

  • SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2   部分信頼環境で動作するメンバシップ プロバイダとロール プロバイダ。これらのプロバイダは、Windows Server 2003 R2 Service Pack 2 に含まれています。

SingleSignOnMembershipProvider/SingleSignOnRoleProvider

次の表に、標準のプロバイダを使用する Web SSO AD FS 環境向けの Web.config ファイルのエントリの例を示します。

構成の手順 Web.config ファイルのエントリの説明と例

ASP.NET フォーム認証を有効にします。

<system.web>
 <!-mode=[Windows|Forms|Passport|None]>
 <authentication mode="Forms" />
</system.web>

メンバシップ プロバイダを登録します。

<membership defaultProvider="SingleSignOnMembershipProvider">

<providers>

<add

name="SingleSignOnMembershipProvider"

type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

/>

</providers>

</membership>

fs 属性の *FEDERATIONSERVER* を実際のサーバー名に置き換えます。

membership 要素は Web.config ファイルの system.web 要素内に含める必要があります。

ロール マネージャを登録します (オプション)。

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider">

<providers>

<add

name="SingleSignOnRoleProvider"

type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

/>

</providers>

</roleManager>

fs 属性の *FEDERATIONSERVER* を実際のサーバー名に置き換える必要があります。

HTTP モジュールを登録します。

<httpModules>

<add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2

2 つめの AD FS プロバイダのセットを実装する場合、メンバシップ プロバイダとロール マネージャを登録する際の設定は異なります。次の表に、部分信頼環境で動作するプロバイダを使用する Web SSO AD FS 環境向けの、Web.config ファイルのエントリの例を示します。

構成の手順 Web.config ファイルのエントリの説明と例

ASP.NET フォーム認証を有効にします。

<system.web>
 <!-mode=[Windows|Forms|Passport|None]>
 <authentication mode="Forms" />
</system.web>

メンバシップ プロバイダを登録します。

<membership defaultProvider="SingleSignOnMembershipProvider2">

<providers>

<add name="SingleSignOnMembershipProvider2"

type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

fs=https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx

/>

</providers>

</membership>

fs 属性の *FEDERATIONSERVER* を実際のサーバー名に置き換えます。

membership 要素は Web.config ファイルの system.web 要素内に含める必要があります。

ロール マネージャを登録します (オプション)。

<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">

<providers>

<add

name="SingleSignOnRoleProvider2"

type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"

/>

</providers>

</roleManager>

fs 属性の FEDERATIONSERVER を実際のサーバー名に置き換える必要があります。

HTTP モジュールを登録します。

<httpModules>

<add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />

</httpModules>

このブックをダウンロードする

このトピックは、簡単に読んだり印刷したりできるように、次のダウンロード可能なブックに収められています。

入手できるすべてのブックの一覧については、「Office SharePoint Server 2007 のダウンロード可能なブック」を参照してください。