Project Server 2007 エクストラネット サイト用に SQL メンバシップ プロバイダに対するフォームベース認証を構成する

更新日: 2010年2月

 

トピックの最終更新日: 2010-02-24

Microsoft Office Project Server 2007 サイトの SQL メンバシップ プロバイダに対するフォームベース認証の構成は、次の手順で行います。

  • インフラストラクチャを構成する : この手順には、ユーザー アカウント情報を格納する SQL メンバシップ プロバイダ データベースの作成と、フォーム認証を使用するユーザーが Office Project Server 2007 にアクセスするためのインターネット インフォメーション サービス (IIS) サイトの作成という、2 つの部分があります。

  • Web.config ファイルを更新して SQL メンバシップ プロバイダを追加する : SQL メンバシップ プロバイダを指定する文字列をサイトの Web.config ファイルに追加します。

  • フォーム認証を使用するユーザー アカウントをセットアップする : 追加するすべてのフォーム認証使用ユーザーの XML リストを作成し、SQL メンバシップ プロバイダ ストアにインポートします。

[!メモ] SQL メンバシップ プロバイダに対してフォームベース認証を構成する方法の詳細については、「Project Server 2007 で SQL メンバシップ プロバイダ フォーム認証を構成する」を参照してください。

インフラストラクチャを構成する

ユーザーを SQL メンバシップ プロバイダ データベースに追加できるようにインフラストラクチャを構成するには、以下の手順を実行します。

  • SQL メンバシップ プロバイダ データベースの作成

  • 新しいサイトを SQL メンバシップ プロバイダ用に構成する

SQL メンバシップ プロバイダ データベースの作成

SQL メンバシップ ストアと呼ばれる SQL メンバシップ プロバイダ データベースを SQL Server に作成するには、次の手順を使用します。SQL メンバシップ プロバイダを使用して Office Project Server 2007 にアクセスし、フォーム認証を使用するすべてのアカウントについて、アカウント情報をこのデータベースにインポートする必要があります。SQL メンバシップ ストアを作成するときに SQL Server に接続するために使用する Windows アカウントは、フォーム管理者アカウントであり、後でデータベースにユーザーを追加するために必要となります。

SQL Server を実行しているコンピュータにメンバシップ プロバイダ データベースを作成する

  1. コマンド プロンプト ウィンドウを開きます。

  2. 任意のディレクトリで、「<Windows ディレクトリ>\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -A m -E」と入力します。

    このコマンドは aspnetdb という名前のデータベースを作成し、-E オプションは既存の Windows 資格情報で認証を行います。

    次の表は、aspnet_regsql.exe コマンドで使用できる他の重要なパラメータの説明です。コマンドのすべてのオプションの一覧を見るには、-? オプションを使用してください。

    パラメータ 説明

    -d

    既定 (aspnetdb) 以外のデータベース名を指定します。このパラメータの後にデータベース名を入力します。たとえば、「-d aspnetdb_testdbs」などと入力します。

    -S

    SQL Server を実行するリモート コンピュータに、データベースを作成します。データベースを作成する SQL Server インスタンス名を、パラメータの後に入力します。たとえば、「-s SQLServerInstance」などと入力します。

    -E

    現在の Windows 資格情報で認証を行います。

    -U

    SQL 認証を使用する場合、認証に使用する SQL Server のユーザー名を指定します。このパラメータの後にユーザー名を入力します。このパラメータを使用するときは、-P パラメータも指定する必要があります。

    -P

    SQL 認証を使用する場合、認証に使用する SQL Server のパスワードを指定します。このパラメータの後にパスワードを入力します。このパラメータを使用するときは、-U パラメータも指定する必要があります。

サイトの認証方法を指定する

次の手順を使用すると、エクストラネット サイトに使用するフォームベース認証方法として、SQL メンバシップ プロバイダを指定できます。この手順では、既に Web アプリケーションを拡張してエクストラネット サイトを作成してあるものとします。Web アプリケーションを拡張してエクストラネット サイトを作成する方法の詳細については、「Project Server エクストラネット環境用に Web アプリケーションを拡張する」を参照してください。

新規サイトを SQL メンバシップ プロバイダ用に構成する

  1. SharePoint サーバーの全体管理 Web サイトで、[アプリケーション構成の管理] をクリックします。[アプリケーション セキュリティ] セクションで、[認証プロバイダ] をクリックします。

  2. [認証プロバイダ] ページの [Web アプリケーション] メニューで、Office Project Web Access エクストラネット サイト用の Web アプリケーションが選択されていることを確認します。

  3. 作成したばかりの拡張サイトに使用する領域を選択します (Extranet)。

  4. [認証の編集] ページの [認証の種類] セクションで、[フォーム] を選択します。この選択によって、ページ上で選択できるその他の構成オプションが変化します。

  5. [メンバシップ プロバイダ名] セクションの [メンバシップ プロバイダ名] ボックスに、メンバシップ プロバイダの名前を入力します。「AspNetSqlMembershipProvider」と入力します。

  6. [保存] をクリックします。

Web.config ファイルを更新して SQL メンバシップ プロバイダを追加する

作成した新規 IIS サイトの Web.config ファイルに、SQL メンバシップ プロバイダを追加する必要があります。また、Web アプリケーションの Windows 認証を使用するサイトの Web.config ファイルにも、同じ変更を行う必要があります。これを行うには、IIS マネージャで、SQL メンバシップ プロバイダ データベース (aspnetdb) を指すエントリをファイルに追加します。

[!メモ] ファーム内のすべてのフロント エンド Web サーバーで、次の手順を実行する必要があります。

Web.config ファイルに SQL メンバシップ プロバイダを追加する

  1. フロントエンド Web サーバー上で、インターネット インフォメーション サービス マネージャを開きます。これを行うには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに「Inetmgr」と入力して [OK] をクリックします。

  2. IIS マネージャで、コンピュータ名を展開し、[Web サイト] フォルダをクリックします。

  3. [Web サイト] フォルダの下に、前記の手順で作成した Web サイトが表示されます。このサイトを右クリックし、[エクスプローラ] をクリックします。

  4. [web.config] を右クリックし、[開く] をクリックします。次に、このファイルをメモ帳などの編集ツールで開きます。

  5. Web.config に以下のエントリを追加します。追加に最適な場所は、</ConfigSections> セクションの直後です。

    <connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="data source=127.0.0.1;Integrated Security=SSPI;Initial Catalog=aspnetdb" />
    </connectionStrings>
    

    接続文字列が、ユーザー アカウントを格納する SQL メンバシップ プロバイダ データベースを指していることを確認します (たとえば、Initial Catalog=aspnetdb)。

[!メモ] 拡張した Web アプリケーションの元のサイトの Web.config ファイルも、同じように変更します。また、この変更は、ファーム内のすべてのフロントエンド Web サーバーに対しても行う必要があります。

フォーム認証のユーザー アカウントをセットアップする

SQL メンバシップ プロバイダによってフォーム認証されるユーザー アカウントをセットアップするには、以下の作業を行う必要があります。

  • ユーザー アカウントの XML データを作成する

  • ユーザー データをメンバシップ ストアにインポートする

  • 新しいユーザー アカウントを Project Server セキュリティ グループに追加する

ユーザー アカウントの XML データを作成する

PjFormsAuthUpgrade.exe ツールは、Office Project Server 2007 と共にインストールされます。このツールを使用すると、フォーム認証を使用するユーザーを SQL メンバシップ ストアに追加できます。ここの手順では、このツールを使用して、SQL メンバシップ ストアに追加するユーザーのアカウント データを含む XML ファイルを生成します。また、GUID、ログオン名、パスワードなど、ストアで必要になる他の情報を自動的に生成します。PjFormsAuthUpgrade.exe ツールを使用して SQL メンバシップ プロバイダ データベースに新しいユーザーを追加するには、以下の手順を使用します。この手順は、Project Web Access に存在しない新規ユーザーを対象としており、それらを Project Server と SQL メンバシップ ストアの両方に追加します。

[!メモ] PjFormsAuthUpgrade.exe ツールを使用すると、Project Server で認証されるアカウントを、Project Server 2003 から SQL メンバシップ ストアに移行することもできます。ただし、この記事では説明しません。詳細については、「Project Server 2007 で SQL メンバシップ プロバイダ フォーム認証を構成する」を参照してください。

新規ユーザー用の Users.xml ファイルを作成する

  1. コマンド プロンプト ウィンドウで、PJFormsAuthUpgrade.exe を含むディレクトリに移動します (既定の場所は Program Files\Microsoft Office Servers\12.0\Bin です)。コマンド プロンプトで次のテキストを入力します。パラメータは環境に応じてカスタマイズしてください。

    PjFormsAuthUpgrade.exe -createemptyusersfile -log forms.log -url https://localhost/pwa -usersfile users.xml
    
    オプション 説明

    -createemptyusersfile

    Users.xml ファイルを作成します。このファイルは、新規ユーザーを追加するためのテンプレートとして使用できます。

    -log

    PjFormsAuthUpgrade.exe ツールの実行時に発生する問題のトラブルシューティングを行うためのログ ファイルを生成します。ログ ファイルのパスを指定できます。パスを指定しないと、ファイルはツールのあるディレクトリと同じディレクトリに作成されます。

    -URL

    Project Server の URL を指定します。

    -usersfile

    Users.xml ファイルを作成します。ファイルが作成されるパスを指定できます。パスを指定しないと、ファイルは PjFormsAuthUpgrade.exe ツールと同じディレクトリに作成されます。

    コマンドを実行します。コマンドが正しく実行されると、PjFormsAuthUpgrade.exe ツールと同じディレクトリに Users.xml ファイルが生成されます (この例ではパスを指定していないため)。

  2. Users.xml ファイルをメモ帳で開きます。このファイルは、以下のような内容になっています。

    <?xml version="1.0"?>
    <Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="https://schemas.microsoft.com/Project/Users.xsd">
    <CreateUser>
    <DisplayName>Display Name</DisplayName>
    <EmailAddr>newuser@project.com</EmailAddr>
    <LogonName>LogonName</LogonName>
    <Password>Password</Password>
    <Guid>ab3ad5fe-6b56-41e8-a9d8-44af71b91dc4</Guid>
    <PasswordQuestion>Password Question</PasswordQuestion>
    <PasswordAnswer>Password Answer</PasswordAnswer>
    </CreateUser>
    <UpdateUser>
    <DisplayName>Display Name</DisplayName>
    <EmailAddr>upgradeduser@project.com</EmailAddr>
    <LogonName>LogonName</LogonName>
    <Password>Password</Password>
    <Guid>2e8c4617-1f38-42d2-8496-9c85eb761b5f</Guid>
    <PasswordQuestion>Password Question</PasswordQuestion>
    <PasswordAnswer>Password Answer</PasswordAnswer>
    </UpdateUser>
    </Users>
    
  3. 新しいユーザーについての情報に基づいて、Users.xml ファイルを変更します。変更後のファイルの例を次に示します。

    <?xml version="1.0"?>
    <Users xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="https://schemas.microsoft.com/Project/Users.xsd">
    <CreateUser>
    <DisplayName>Jeff Smith</DisplayName>
    <EmailAddr>JSmith@test.com</EmailAddr>
    <LogonName>JeffSmith</LogonName>
    <Password>p@ssword1</Password>
    <Guid>ab3ad5fe-6b56-41e8-a9d8-44af71b91dc4</Guid>
    <PasswordQuestion>Password Question</PasswordQuestion>
    <PasswordAnswer>Password Answer</PasswordAnswer>
    </CreateUser>
    </Users>
    

    さらにユーザーを追加するには、<CreateUser> セクションを追加し、その新規ユーザーの情報を含むように編集します。同じ GUID が複数のユーザーに使用されないように、使用する GUID を変更してください (XML ファイルの GUID の変更は、プログラムで実行することもできます)。

    これで、Project Server にインポートするデータが Users.xml ファイルに追加されました。これは XML ファイルなので、手動でもプログラムでも変更できます。パスワード、表示名、電子メール アドレス、ツールによって自動的に生成される GUID を変更する場合、変更に使用する方法はどのようなものでもかまいません。

ユーザー データをメンバシップ ストアにインポートする

新しいユーザーの Users.xml ファイルを作成した後、PJFormsAuthUpgrade.exe ツールを使用して、それらのユーザーを SQL メンバシップ プロバイダ データベースにインポートできます。

この手順の間に、Office Project Server 2007 もツールによって更新され、新規ユーザーのアカウント情報が追加されます。新規ユーザーは、Project Server セキュリティ グループにも追加されるまでは、Office Project Server 2007 にアクセスできません。

[!メモ] ストアにユーザーを追加できるのは、SQL メンバシップ プロバイダ データベースのデータベース所有者だけです。フォーム認証を使用するユーザーを追加するときは、必ずこのアカウントでログインしてください。

PjFormsAuthUpgrade.exe ツールを実行してユーザーをメンバシップ ストアにインポートする

コマンド プロンプト ウィンドウで、PjFormsAuthUpgrade.exe を含むディレクトリに移動し、次のコマンドを実行します。

PjFormsAuthUpgrade.exe -log forms.log -url https://localhost/pwa -usersfile users.xml

たとえば、次のように使用します。

PjFormsAuthUpgrade.exe -log c:\mydir\forms.log -url http://contoso/pwa -usersfile users.xml

新しいユーザーが、SQL メンバシップ ストアと Project Server に追加されます。

Project Server セキュリティ グループにユーザーを追加する

新しいユーザーが Office Project Web Access を使用して Office Project Server 2007 にログインできるためには、ユーザーを Project Server セキュリティ グループに追加する必要があります。

Project Web Access を使用して新規ユーザーを Project Server セキュリティ グループに追加する

  1. Project Web Access ホーム ページで、[サーバー設定] をクリックします。

  2. [サーバー設定] ページの [セキュリティ] セクションで、[ユーザーの管理] をクリックします。

  3. [ユーザーの管理] ページの [ユーザー名] ボックスの一覧で、新しく追加したフォーム認証のユーザー アカウントの名前をクリックします。

  4. 選択したユーザーの [ユーザーの編集] ページで、[セキュリティ グループ] セクションの [利用可能なグループ] ボックスの一覧から、ユーザーを追加するグループを選択します。[追加] をクリックして、選択したグループを [追加するユーザーを含むグループ] ボックスの一覧に移動します。

  5. ユーザー アカウントに他の必要な変更を加え、[保存] をクリックします。

コマンド プロンプトでの新規ユーザーの Project Server セキュリティ グループへの追加

Stsadm.exe コマンド ライン ツールを使用して、コマンド プロンプトからセキュリティ グループにユーザーを追加することもできます。このツールを使用するときは、Office Project Web Access の管理者グループのユーザーとして実行する必要があります。

コマンド プロンプトでの新規ユーザーの Project Server セキュリティ グループへの追加

  1. コマンド プロンプト ウィンドウで、Program Files\Common Files\Microsoft Shared\Web server extensions\12\BIN ディレクトリに移動します。

  2. 次のコマンドを実行します。

    stsadm -o projmodifyuseringroup -url http://<サーバー名>/pwa -groupname*<ユーザーを追加するグループ>-username<フォーム ユーザー>*-addorremove add

    たとえば、次のように使用します。

    stsadm -o projmodifyuseringroup -url http://contoso/pwa -groupname administrators -username Brad Sutton -addorremove add
    

    [!メモ] コマンド ライン オプションを使用して Project Server セキュリティ グループにユーザーを追加する場合、この実行可能ファイルの 1 回の実行では、1 人のユーザーが 1 つのセキュリティ グループに追加されるだけです。ただし、管理者はスクリプトを作成して手順を自動化できます。

ユーザーをセキュリティ グループに追加すると、このユーザーは Project Web Access のフォーム認証のサイトを使用して、Project Server にアクセスできるようになります。