認証サンプル (Windows SharePoint Services)

この記事の内容 :

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

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

  • 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 データベースを使用する場合)、メンバシップ プロバイダ データベースの connectionStrings 要素で接続情報を指定するように、Web アプリケーションとサーバーの全体管理 Web サイトの両方の Web.config ファイルを編集する必要があります。

以下に例を示します。

<connectionStrings>

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

</connectionStrings>

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

次に、Web.config ファイルで membership および providers 要素を追加して、メンバシップ プロバイダを登録します。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>

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

ロール マネージャを登録します (省略可能)。

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 要素を追加する必要があります。

次に、Web.config で roleManager および providers 要素を追加して、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>

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

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>

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

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

ロール マネージャを登録します (省略可能)。

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

該当なし

AD FS を使用した Web SSO

Microsoft Windows Server 2003 R2 オペレーティング システムでは AD FS (Active Directory Federation Services) が導入され、組織でユーザーの ID 情報を安全に共有できるようになりました。AD FS には Web シングル サインオン (SSO) テクノロジが備えられ、単一のオンライン セッション中に複数の Web アプリケーションに対してユーザーを認証できます。

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

  • 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>

このドキュメントをダウンロードする

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

入手可能なドキュメントの詳細な一覧については、「Windows SharePoint Services 3.0 テクニカル ライブラリ」を参照してください。