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

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

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

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

  • フォーム ベース認証を使用するように構成された既存の Office SharePoint Server 2007 Web アプリケーションをアップグレードして SharePoint Server 2010 で動作するようにする。

SharePoint Server 2010 へのアップグレード後、Microsoft Office SharePoint Server 2007 Web アプリケーションは、レガシー ログイン用に構成されます。Windows 認証を使用するように構成された Office SharePoint Server 2007 Web アプリケーションの場合、アップグレードのために必要な追加の手順はありません。しかし、フォーム ベース認証 (または Web SSO 認証) を使用するように構成された Office SharePoint Server 2007 Web アプリケーションの場合は、まずクレーム認証に変換してからでないと、その Office SharePoint Server 2007 Web アプリケーションを SharePoint Server 2010 で使用できません。Office SharePoint Server 2007 Web アプリケーションをクレーム認証用に変換した後は、Web アプリケーション ゾーンをフォーム ベース認証 (必要であれば Web SSO 認証) 用に構成します。最後の手順では、ユーザーとアクセス許可を SharePoint Server 2010 に移行します。

この記事の内容

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

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

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

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

  • ユーザーとアクセス許可を SharePoint Server 2007 から SharePoint Server 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 http://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 コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

ユーザーとアクセス許可を SharePoint Server 2007 から SharePoint Server 2010 に移行する

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

ユーザーとアクセス許可を SharePoint Server 2007 から SharePoint Server 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 コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。