LDAP フォーム ベース認証用の Web.config ファイルの例

更新日: 2007年6月

 

トピックの最終更新日: 2015-03-09

Microsoft Office Project Server 2007 のために LDAP データ ストアに対するフォーム ベースの認証を構成するときには、データ ストアがある場所と、サイトのユーザー アカウントを格納するディレクトリ構造内の場所を指定する必要があります。これらの設定は、Web サイトの構成ファイル (Web.config) を使用して指定します。SharePoint サーバーの全体管理 Web サイト用の Web.config ファイルでも同じ変更を行う必要があります。

ここでは、LDAP データ ストアに対して Project Server 2007 のフォーム ベースの認証を行うために、Web.config ファイルに加える必要がある変更の例を 2 つ示します。変更を適用する方法の詳細については、「LDAP データストアに対してフォーム ベース認証を使用する Project Web Access サイトを作成する」を参照してください。

Web.config ファイルの例 1

次に示すのは、フォーム認証に基づくサイトの Web.config ファイル内に存在する必要がある <membership> セクションの簡単な例です。

この基本的な例では、1 つのメンバシップ プロバイダに対してフォーム ベースの認証を使用する 1 つのサイトを使用しています。LDAP ディレクトリ ストアは "Contoso1" という名前のコンピュータに置かれていて、ポート 50000 を使用するように構成されています。認証は userFilter に一致する userContainer 内のオブジェクトに対して行われます。この場合、オブジェクトは CN=Users,OU=WSS,O=nondomain,C=US という形式によって定義されるコンテナ内のすべてのアイテムになります。

<membership defaultProvider="LDAPMembership">

<providers>

<add

name="LDAPMembership"

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

server="Contoso1"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=Contoso,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" />

</providers>

</membership>

次の表では、前述の Web.config ファイルの例で使用されているパラメータ値について説明します。

パラメータ 説明

name="LDAPMembership"

メンバシップ プロバイダ名を指定します。この値は、サーバーの全体管理の [認証プロバイダ] ページで指定されているメンバシップ プロバイダ名と一致している必要があります。この例では "LDAPMembership" がメンバシップ プロバイダ名の値です。

server="Contoso1"

LDAP サービスをホストしているコンピュータの名前を指定します。例では、この値はディレクトリ サービスがサーバー "Contoso1" に配置されていることを示しています。たとえば、Active Directory Application Mode (ADAM) のインスタンスまたは Windows Server Active Directory ディレクトリ サービス環境内のドメイン コントローラを指定できます。

port="50000"

LDAP がリッスンしているポートを指定します。既定のポートは 389 です。

useSSL="false"

LDAP データ ストアと通信するために SSL が使用されないことを指定します。

LDAP プロバイダに対しては、現在は匿名バインドのみがサポートされています。この値が false に設定されていることを確認してください。

userDNAttribute="distinguishedName"

ユーザーの識別名の属性です。この名前は Windows SharePoint Services に表示されます。

userNameAttribute="cn"

ユーザー名オブジェクトの属性。この場合は共通名 (cn) です。

userContainer="CN=Users,OU=WSS,O=nondomain,C=US"

ユーザーのコンテナの完全な識別名を定義します。

userObjectClass="user"

ユーザー オブジェクトのクラス。この場合は user です。

userFilter="(ObjectClass=user)"

userFilter は LDAP クエリの標準のフィルタで、認証の対象にする必要のあるユーザーのサブセットを制御するよう設定できます。

この例のフィルタは、ユーザー オブジェクトに対する解決のみを行うように構成されています。OU コンテナにはグループや他のオブジェクトを格納できます。

scope="Subtree"

選択の検索範囲を設定します。

otherRequiredUserAttributes="sn,givenname,cn" />

返すその他のユーザー属性。sn は姓、givenname は名前です。cn は他の 2 つの属性から作成される、対応する相対識別名です (たとえば "John Doe")。

Web.config ファイルの例 2

次に、より複雑な例を示します。このシナリオでは、企業はフォーム ベースの認証を使用する 2 つのサイトを、イントラネット用に 1 つ、エクストラネット用に 1 つ使用しています。各サイトでは異なる LDAP メンバシップ プロバイダを使用します。

このシナリオでは、サーバーの全体管理、イントラネット サイト、およびエクストラネット サイトごとに、Web.config ファイルを個別に構成する必要があります。各サイトの Web.config ファイルには、ユーザーがサイトにアクセスするために必要な特定の LDAP メンバシップ プロバイダの情報を含める必要があります。

サーバーの全体管理用の Web.config ファイル

このシナリオでは、サーバーの全体管理用の Web.config ファイルに、両方のメンバシップ プロバイダ (LDAPMembershipLDAPMembership2) に関する情報が含まれている必要があります。サーバーの全体管理用の Web.config ファイルの <membership> セクションは次のとおりです。

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=fabricam,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership"

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

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Extranet,O=fabricam,C=US"

userObjectClass="user"

userFilter="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership2"

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

</providers>

</membership>

イントラネット サイト用の Web.config ファイル

イントラネット サイト用の Web.config ファイルの <membership> セクションは次のとおりです。

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Support,O=fabricam,C=US"

userObjectClass="user"

userFilter="(ObjectClass=user)"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership"

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

</providers>

</membership>

イントラネット サイトは、LDAPMembership メンバシップ プロバイダを使用しており、CN=Users,OU=Support,O=fabricam,C=US コンテナ内のユーザーに対して認証を行っています。

エクストラネット サイト用の Web.config ファイル

エクストラネット サイトのメンバシップ プロバイダは LDAPMembership2 として定義されます。エクストラネット サイト用の Web.config ファイルの <membership> セクションは次のとおりです。

<membership defaultProvider="LDAPMembership">

<providers>

<add

server="ps2007ldap"

port="50000"

useSSL="false"

userDNAttribute="distinguishedName"

userNameAttribute="cn"

userContainer="CN=Users,OU=Extranet,O=fabricam,C=US"

userObjectClass="user"

userFilter="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"

scope="Subtree"

otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership2"

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

</providers>

</membership>

エクストラネット サイトは LDAPMembership2 メンバシップ プロバイダを使用しており、LDAPMembership ("CN=Users,OU=Extranet,O=fabricam,C=US") と同じコンテナ内のユーザーと比較して認証を行っています。ただし、エクストラネット サイトは ="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))" というフィルタを使用しています。このフィルタにより、ディレクトリで定義されている ProjectUsers グループと WSSUsers グループの両方のユーザーのみが認証されます。&amp; は、LDAP クエリで使用される通常の & を置き換える文字であることに注意してください。

例 2 の <membership> セクションの形式は、例 1 の形式とは異なっています。まったく同じ属性が含まれていますが、異なる順序になっています。これは、2 番目の例がインターネット インフォメーション サービス マネージャのユーザー インターフェイスを使用して編集されたためです。

[!メモ] インターネット インフォメーション サービス マネージャのユーザー インターフェイスを使用することによって発生する問題があります。<configuration> 要素が、<configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0"> として書き直され、このために Windows SharePoint Services でアプリケーション エラーが発生します。詳細については、「[FIX] ASP.NET の Web サイトの管理ツールの MMC スナップインを使用して, .NET Framework 2.0 ASP.NET Web サイトに、既存の Web.config ファイルを追加すると、IntelliSense が機能できません。」(https://go.microsoft.com/fwlink/?linkid=92744&clcid=0x411) を参照してください。