クレーム ベースの Web アプリケーション用にフォームベースの認証を構成する (SharePoint Foundation 2010)

 

適用先: SharePoint Foundation 2010

この記事の手順は、以下の操作を行う上で参考になります。

  • クレーム ベースの Microsoft SharePoint Foundation 2010 Web アプリケーションに対してフォーム ベース認証を構成する。

  • フォーム ベース認証を使用するように構成されている既存の Windows SharePoint Services 3.0 Web アプリケーションを、SharePoint Foundation 2010 で動作するようにアップグレードする。

SharePoint Foundation 2010 へのアップグレード後、Windows SharePoint Services 3.0 Web アプリケーションは、以前のログイン方式を使用するように構成されます。Windows 認証を使用するように構成されていた Windows SharePoint Services 3.0 Web アプリケーションの場合は、アップグレードのための追加の手順は必要ありません。しかし、フォーム ベース認証、または Web SSO 認証を使用するように構成されていた Windows SharePoint Services 3.0 Web アプリケーションの場合は、SharePoint Foundation 2010 で Windows SharePoint Services 3.0 Web アプリケーションを使用する前に、クレーム ベース認証に変換する必要があります。Windows SharePoint Services 3.0 Web アプリケーションをクレーム ベース認証に変換した後、フォーム ベース認証 (または必要に応じて Web SSO 認証) を使用するように Web アプリケーション ゾーンを構成します。SharePoint Foundation 2010 で使用するメンバーシップ プロバイダーとロール プロバイダーの名前が Windows SharePoint Services 3.0 で使用する名前と一致する必要があることに注意してください。最後に、ユーザーとアクセス許可を SharePoint Foundation 2010 に移行します。

この記事の内容

  • Web アプリケーションをクレーム ベース認証に変換する

  • サーバーの全体管理を使用してフォーム ベースの Web アプリケーションが LDAP プロバイダーを使用するように構成する

  • LDAP Web.Config ファイルを構成する

  • Windows PowerShell を使用してフォーム ベースの Web アプリケーションが LDAP プロバイダーを使用するように構成する

  • ユーザーとアクセス許可を Windows SharePoint Services 3.0 から SharePoint Foundation 2010 に移行する

Web アプリケーションをクレーム ベース認証に変換する

Windows PowerShell を使用して既存の Web アプリケーションをクレーム ベース認証に変換するには、次の手順を実行します。

Web アプリケーションをクレーム ベース認証に変換するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 製品] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトで、以下を入力します。

    $w = Get-SPWebApplication "http://<server>/"
    $w.UseClaimsAuthentication = "True";
    $w.Update()
    
    $w.ProvisionGlobally()
    

注意

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

サーバーの全体管理を使用してフォーム ベースの Web アプリケーションが LDAP プロバイダーを使用するように構成する

サーバーの全体管理を使用してクレーム ベースの Web アプリケーションに対してフォーム ベース認証を構成するには、次の手順を実行します。

サーバーの全体管理を使用してクレーム ベースの Web アプリケーションに対してフォーム ベース認証を構成するには

  1. この手順を実行するユーザー アカウントがサイト コレクションの管理者であることを確認します。

  2. サーバーの全体管理で、[アプリケーション構成の管理] の [Web アプリケーションの管理] をクリックします。

  3. リボンの [新規] をクリックします。

  4. [新しい Web アプリケーション] ダイアログ ボックスの [認証] セクションで、[クレーム ベースの認証] を選択します。

  5. [認証の種類] セクションで、[ASP.NET のメンバーシップおよびロール プロバイダーの有効化] を選択します。

  6. メンバーシップ プロバイダー名およびロール マネージャー名を入力します。この記事に示されている Web.Config ファイルの例の場合、メンバーシップ プロバイダーの名前は membership で、ロール マネージャーの名前は rolemanager です。

  7. [OK] をクリックして、Web アプリケーションを作成します。

LDAP Web.Config ファイルを構成する

上記の手順に従って Web アプリケーションを作成した後、次の Web.Config ファイルを変更します。

  • サーバーの全体管理 Web アプリケーションの Web.Config ファイル

  • Security Token Service の Web.Config ファイル

  • フォーム ベース認証のクレーム ベース Web アプリケーションの Web.Config ファイル

サーバーの全体管理の Web.Config ファイルを構成するには

  1. コマンド プロンプトで「INETMGR」と入力して、IIS マネージャーを開きます。

  2. IIS で [SharePoint サーバーの全体管理] サイトに移動します。

  3. [SharePoint サーバーの全体管理] を右クリックし、[エクスプローラー] を選択します。

  4. Web.Config ファイルを開きます。

  5. <Configuration> <system.web> セクションを検索し、次のエントリを追加します。

<membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>
        <add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC= distinguishedName (of your userContainer)" 
             userObjectClass="person" 
             userFilter="(ObjectClass=person)" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" > 
      <providers>
        <add name="roleManager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC= distinguishedName (of your groupContainer)"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="((ObjectClass=group)"
             userFilter="((ObjectClass=person)"
             scope="Subtree" />
      </providers>
 </roleManager>

重要

上に示したエントリを追加した後、Web.Config ファイルを保存し、閉じます。

Security Token Service の Web.Config ファイルを構成するには

  1. コマンド プロンプトで「INETMGR」と入力して、IIS マネージャーを開きます。

  2. [SharePoint Web Services] サイトに移動します。

  3. [SecurityTokenServiceAppliction] サブサイトに移動します。

  4. [SharePoint サーバーの全体管理] を右クリックし、[エクスプローラー] を選択します。

  5. Web.Config ファイルを開きます。

  6. <Configuration> <system.web> セクションを検索し、次のエントリを追加します。

<membership>
      <providers>
        <add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 
             userObjectClass="person" 
             userFilter="(&amp;(ObjectClass=person))" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />
      </providers>
    </membership>
    <roleManager enabled="true" > 
      <providers>
        <add name="rolemanager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC=com"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="(&amp;(ObjectClass=group))"
             userFilter="(&amp;(ObjectClass=person))"
             scope="Subtree" />
      </providers>
    </roleManager>

重要

上に示したエントリを追加した後、Web.Config ファイルを保存し、閉じます。

フォーム ベース認証のクレーム ベース Web アプリケーションの Web.Config ファイルを構成するには

  1. コマンド プロンプトで「INETMGR」と入力して、IIS マネージャーを開きます。

  2. [クレーム フォーム] サイトに移動します。

  3. [クレーム フォーム] を右クリックし、[エクスプローラー] を選択します。

  4. Web.Config ファイルを開きます。

  5. <Configuration> <system.web> セクションを検索します。

  6. <membership defaultProvider="i"> セクションを検索し、次のエントリを追加します。

<add name="membership" 
             type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
             server="yourserver.com" 
             port="389" 
             useSSL="false" 
             userDNAttribute="distinguishedName" 
             userNameAttribute="sAMAccountName" 
             userContainer="OU=UserAccounts,DC=internal,DC=yourcompany,DC=com" 
             userObjectClass="person" 
             userFilter="(&amp;(ObjectClass=person))" 
             scope="Subtree" 
             otherRequiredUserAttributes="sn,givenname,cn" />

<roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> セクションを検索し、次のエントリを追加します。

<add name="roleManager" 
             type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
             server="yourserver.com" 
             port="389"
             useSSL="false"
             groupContainer="DC=internal,DC=yourcompany,DC=com"
             groupNameAttribute="cn"
             groupNameAlternateSearchAttribute="samAccountName"
             groupMemberAttribute="member"
             userNameAttribute="sAMAccountName"
             dnAttribute="distinguishedName"
             groupFilter="(&amp;(ObjectClass=group))"
             userFilter="(&amp;(ObjectClass=person))"
             scope="Subtree" />

重要

上に示したエントリを追加した後、Web.Config ファイルを保存し、閉じます。

警告

この Web.Config ファイル内の既存のエントリは上書きしないでください。

Windows PowerShell を使用してフォーム ベースの Web アプリケーションが LDAP プロバイダーを使用するように構成する

Windows PowerShell を使用してクレーム ベースの Web アプリケーションに対してフォーム ベース認証を構成するには、次の手順を実行します。

Windows PowerShell を使用してフォーム ベースの Web アプリケーションが LDAP プロバイダーを使用するように構成するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 製品] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトで、以下を入力します。

    $ap = New-SPAuthenticationProvider -Name "ClaimsForms" -ASPNETMembershipProvider "membership" -ASPNETRoleProviderName "rolemanager"
    $wa = New-SPWebApplication -Name "Claims Windows Web App" -ApplicationPool "Claims App Pool" -ApplicationPoolAccount "internal\appool"
      -Url https://servername -Port 80 -AuthenticationProvider $ap
    

    注意

    ApplicationPoolAccount パラメーターの値は、ファーム上の管理アカウントである必要があります。

  6. 認証プロバイダーおよび Web アプリケーションを作成した後、この記事の「LDAP Web.Config ファイルを構成する」に示されているサンプル エントリを使用して、次の Web.Config ファイルを変更します。

    • サーバーの全体管理 Web アプリケーションの Web.Config ファイル

    • Security Token Service の Web.Config ファイル

    • フォーム ベース認証のクレーム ベース Web アプリケーションの Web.Config ファイル

  7. Web.Config ファイルを作成した後、次の例に示すように、SPClaimsPrinciple およびサイト コレクションを作成します。

    $cp = New-SPClaimsPrincipal -Identity "membership:SiteOwner" -IdentityType FormsUser
    $sp = New-SPSite http://servername:port -OwnerAlias $cp.Encode() -Template "STS#0"
    

注意

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

ユーザーとアクセス許可を Windows SharePoint Services 3.0 から SharePoint Foundation 2010 に移行する 2010

Windows PowerShell を使用してユーザーおよびアクセス許可を移行するには、次の手順を実行します。

ユーザーとアクセス許可を Windows SharePoint Services 3.0 から SharePoint Foundation 2010 に移行するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 製品] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトで、以下を入力します。

    $w = Get-SPWebApplication "http://<server>/"
    $w.MigrateUsers(True)
    

注意

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。