次の方法で共有


SharePoint の内部サイトの管理を分散する

Pav Cherny

この記事で使用しているコードのダウンロード: SharePoint2008_06.exe (1160KB)

Microsoft Windows SharePoint Services (WSS) 3.0 と Microsoft Office SharePoint Server (MOSS) 2007 では、管理とセキュリティの柔軟なモデルがサポートされています。IT 組織はこのモデルを使用して、Web サーバーやデータベース サーバーなどのインフラストラクチャ コンポーネントの制御を一元化しながら、ホストする

サイト コレクションやサイトの制御を分散することができます。SharePoint® インフラストラクチャの管理を一元化すると、保守作業に伴うオーバーヘッドを削減したり、ビジネス ロジックを統合したりすることができます。また、SharePoint リソースへの単一のアクセス ポイントを提供し、テクノロジへの不要な投資を避けることもできます。

一方、サイトの管理を分散すると、個々の部門がそれぞれ所有している SharePoint リソース (サイト コレクション、サイト、ドキュメント ライブラリ、リスト、ワークフロー ソリューションなど) を自分たちで制御できるようになります。ただし、サイトの管理を各部門に委任すると、IT 部門による保守作業が複雑になるというデメリットがあります。たとえば、使用している環境内のサイト コレクションやサイトにアクセスできない場合、一元管理されたインフラストラクチャの、リソース利用状況、期限切れの SharePoint サイト、および古くなったコンテンツをどのようにして追跡すればよいのでしょうか。

この記事では、WSS 3.0 のセキュリティ モデルについて説明します。具体的には、SharePoint インフラストラクチャに対する一元化された管理者レベルの制御を維持しながら SharePoint サイトに対する管理者レベルの制御を個々の部門に委任すると、どのようなメリットと影響があるかについて説明します。委任されたサイト管理のしくみを説明し、サイト レベル、リスト レベル、およびアイテム レベルでの、アクセス権とセキュリティによるトリミングが、安全でユーザー フレンドリな作業環境の維持にどのように役立つかを説明します。また、Web ファーム管理者が、SharePoint に対する昇格された権限なしで、必要なサイトの統計データにアクセスする方法も紹介します。

この記事で説明している内容をテスト ラボで確認するには、technetmagazine.com で、この記事付属のリソースをダウンロードしてください。付属リソースには、Windows Server® 2008 ベースの Web ファームでの展開に関する詳細な説明が含まれており、この Web ファームは、複数の部門を持つ企業の運用環境を適切に反映したものになっています。

SharePoint インフラストラクチャとサイト コレクションの管理

SharePoint インフラストラクチャは、単一サーバーでの展開または Web ファームでの展開に基づいて構築することができます。実際、企業では、この両方を使用することがよくあります。単一サーバーでの展開は、手軽で簡単なコラボレーション ソリューションを必要とする個々の部門に適しています。この展開では、パフォーマンスと信頼性の要件は最小限に抑えられます。また、ユーザーが (多くの場合、ワークステーションのハードウェアに展開されている) 自部門の SharePoint サーバーを使用できない場合にも理解を示す傾向があります。というのも、システムの保守は、その部門で行う必要があることですが、その部門に所属するユーザーは IT 管理者ではないからです。

IT 部門が保守を行うサーバー リソースの場合、状況は一変します。パフォーマンスと信頼性は重要な要素となり、多くの場合、サービス レベル契約 (SLA) への準拠を確実にするために高可用性ソリューションの展開が必要となります。負荷分散された Web ファームでの展開、SQL Server® フェールオーバー クラスタ、および記憶域ネットワーク (SAN) に格納されたデータベースは、企業のパフォーマンス ニーズと高可用性ニーズを満たすのに役立ちます。このアーキテクチャの詳細については、図 1 を参照してください。

図 1 SQL Server フェールオーバー クラスタと SAN を使用した SharePoint インフラストラクチャ

図 1** SQL Server フェールオーバー クラスタと SAN を使用した SharePoint インフラストラクチャ **(画像を拡大するには、ここをクリックします)

図 1 に示すように、一元管理された SharePoint インフラストラクチャのリソースを保守するためには異なる役割を担った数名の管理者が連携する必要がありますが、各管理者は環境を異なる観点から捉えています。たとえば、サイト コレクションの管理者は、インフラストラクチャのサーバーを意識しません。サイト コレクションの管理者は、標準的な SharePoint ユーザー インターフェイスを使用して作業を行います。このインターフェイスは、オフィス内にある WSS 3.0 を実行しているワークステーション コンピュータでサイトをホストしても、データ センター内にある Web ファームでサイトをホストしても変わりません。

データベース管理者と SAN ストレージ エンジニアも、SharePoint インフラストラクチャを意識しません。このような管理者 (データベース管理者と SAN ストレージ エンジニア) にとっては、SharePoint データベースは他の SQL Server データベースとなんら変わりはなく、SQL Server フェールオーバー クラスタの論理ユニット番号 (LUN) も他の LUN となんら変わりはありません。SharePoint インフラストラクチャに最も直接的に関与しているのは Web ファーム管理者ですが、Web ファーム管理者は、サイト コレクション、データベース、または LUN を制御することはできません。

各部門のサイト コレクション管理者は、概してインフラストラクチャの詳細について知らない、と言って差し支えないでしょう。というのも、サイトを準備し、部門内のチームやグループにアクセス権を委任するために、このような詳細を把握する必要ないからです。新しいサイトを作成して共同作業を開始するのは簡単で、問題 (SAN テクノロジに伴う高いストレージ コストなど) が頭に浮かぶことはめったにありません。

プロジェクトや構想ごとに、新しいチーム サイトが作成され、期限切れのサイトが残存し、古くなったコンテンツが削除されないという状況により、SharePoint 環境は、目覚ましい速度で急激に拡大し、システム管理者が無視できなくなる規模に達するまで、そう時間はかかりません。たとえば、Microsoft IT が 2006 年に単純化構想を打ち出す前のことですが、マイクロソフトの社内 SharePoint 環境には、180,000 を超えるサイトが存在していたことがありました。

サイト コレクションの管理者を教育すると、一元管理された SharePoint インフラストラクチャで問題を抑制するのに役立ちます。サイト コレクションのクォータとロックを適用するのも有効ですが、こうした方法は、貴重なストレージ リソースやバックアップ リソースを浪費する古くなったチーム サイトやコンテンツには、あまり効果的ではありません。

古くなったコンテンツが存在すると、必ずしもサイト コレクションがクォータ制限を超えるというわけではありません。もちろん、SharePoint 3.0 サーバーの全体管理サイトの使用確認と削除の機能を使用して、指定した時間がたつとサイト コレクションの所有者に電子メール通知を送信して使用されていないサイト コレクションを自動的に削除するように SharePoint を構成することもできますが、この機能は個々のサイト レベルでは機能しません。サイト コレクションには、現在使用中のサイトと現在既に使用されていないサイトが含まれることがありますが、サイトの使用確認と削除の機能は、サイト レベルでは機能しません。

サイト コレクションへのアクセス権がなくても、ドキュメントやリスト アイテムの最終更新日を確認して、使用されていないサイトや古くなったコンテンツを特定できる方法については、後で説明します。このレポート機能は、既定の設定で使用できるものではありませんが、さいわい実装するのは難しくありません。

分散化された SharePoint サイト管理

SharePoint サイトの管理権限は非常に簡単に委任できます。SharePoint 3.0 サーバーの全体管理サイト、コマンド ライン ツール (Stsadm.exe)、または独自の準備ツールを使用して、Web アプリケーション、管理パス、およびサイト コレクションをインフラストラクチャ内に作成することができます。Web ファーム管理者は、サイト コレクションの作成時に、サイト コレクションの管理者と代理の管理者を指定できます。このサイト コレクションの管理者と代理の管理者には、標準のドメイン ユーザーを指定することも可能です。このような管理者には、Web ファームや他のインフラストラクチャ サーバーに対する管理者権限は必要ありません。また、サイトの管理タスクは、Web ブラウザを使用して、SharePoint ユーザー インターフェイスから直接実行します。

図 2 は、委任されたサイト管理を示しています。この図は、付属リソースのワークシートに記載されている順を追った説明に基づいたものです。この例では、Web ファーム管理者は、人事部門用 (https://sharepoint/hr) と IT 部門用 (https://sharepoint/it) に別個のサイト コレクションを準備しました。

図 2 委任された SharePoint サイト管理

図 2** 委任された SharePoint サイト管理 **(画像を拡大するには、ここをクリックします)

人事部門サイト コレクション管理者と IT 部門サイト コレクション管理者は、SharePoint ユーザー インターフェイスの [サイトの操作] メニューの [サイトとワークスペース] をクリックして、サブレベル サイトを作成し、親サイトの権限を適用するか、サブレベル サイトの新しい管理者権限とユーザー権限を定義することができます。すべてのサイトは同じ SharePoint 環境でホストされていますが、明示的に別途構成しない限り、Web ファーム管理者はトップレベル サイトやサブレベル サイトにアクセスできず、人事部門サイト コレクション管理者は IT 部門のサイトにアクセスできず、IT 部門サイト コレクション管理者は人事部門のサイトにアクセスできないことに注意してください。

サイト コレクションやサイト階層のデザインは、組織の要件によって異なります。図 2 の例では、https://sharepoint/hr と https://sharepoint/it の上位にマスタ サイトを作成しませんでした。つまり、https://sharepoint というパスにサイト コレクションは存在しません。しかし、このパスにサイト コレクションを作成したり、他の管理パス (https://sharepoint/sites/hr や https://sharepoint/sites/it など) を使用したりすることは、簡単にできます。

また、人事部門と IT 部門用に個別の Web アプリケーションを作成して、より直感的なベース URL (http://hr や http://it など) を設定し、両部門用の汎用的なポータル サイトを準備し、ロールアップ Web パーツを使用してサブレベル サイトの情報をマスタ サイトに表示することもできます。個別のサイト コレクションを用意すると、自律的な管理が容易になり、部門情報へのアクセスを制限するのに役立ち、マスタ ページ、ページ レイアウト、テンプレート、Web パーツ、およびナビゲーション コントロールを各部門でカスタマイズできるようになります。また、別個のサイト コレクションは、機密データを他のサイト コレクションやコンテンツ データベースとは別の専用のコンテンツ データベースに格納するために使用することもできます。

ロール、サイトの権限、およびセキュリティによるトリミング

サイト コレクションが作成され、管理者権限が委任されると、サイト コレクションの管理者は、トップレベル サイトを開き、[サイトの操作] メニューの [サイトの設定] をクリックしてサイト コレクションを管理できます。実行できる管理作業には、サイト コレクション内の全サイトに対する完全な権限を持った他のサイト コレクション管理者を追加 (または削除) すること、グループを作成すること、作成したグループをロールと関連付けること、および作成したグループにユーザーを追加して読み取りや投稿者の権限を与えることなどがあります。また、サブレベルのグループ サイトやチーム サイトを準備することもできます。

SharePoint に対する権限をユーザーに個別に与えることもできますが、特定のロールに基づいて SharePoint グループを作成することをお勧めします。たとえば、SharePoint には、閲覧者、投稿者、および所有者の各ロール用の 3 つのグループが既定で組み込まれています。閲覧者は読み取り専用のアクセス権を持ち、投稿者はリストやドキュメント ライブラリにアイテムを追加したり Web ページを個人用に設定したりすることが可能で、所有者はフル コントロールの権限を持ちます。

SharePoint の注目すべき特色の 1 つは、ユーザー ロールに基づいてセキュリティによるトリミングが実行されるということです。つまり、ユーザー インターフェイスには、そのユーザーが実際にアクセスする権限を持っているリンクやアイテムのみが表示されます。あるユーザーがリストまたは特定のリスト アイテムなどのリソースにアクセスできないように設定すると、このユーザーのユーザー インターフェイスでは、そのリストやアイテムが表示されなくなります (リストの場合は [リストの設定] で明示的に権限を構成し、リスト アイテムの場合はそのアイテムのコンテキスト メニューの [権限の管理] を使用することで、リソースへのアクセスを拒否します)。ユーザーがアクセスする権限がないアイテムの URL をブラウザで直接指定すると、"エラー: アクセス拒否" というページが表示されます。

図 3 は、セキュリティによるトリミングが実際に行われている画面を示しています。人事部門サイト コレクション管理者は完全な権限を持っており、[サイトの操作] メニューにアクセスして、管理タスクを実行することができます。一方、人事部門の閲覧者は、このサイト コレクションに対して読み取り専用の権限しか持っていないので、ユーザー インターフェイスに、[サイトの操作] メニューは表示されません。

図 3 SharePoint インターフェイスでユーザー ロールに基づいてセキュリティによるトリミングが行われているようす

図 3** SharePoint インターフェイスでユーザー ロールに基づいてセキュリティによるトリミングが行われているようす **(画像を拡大するには、ここをクリックします)

セキュリティによるトリミングは、アクセスできない機能、リンク、およびアイテムが非表示になるので、役に立ちます。しかし、Web ファーム管理者もアクセス権がないと SharePoint ユーザー インターフェイスを使用してサイトやサイトのリソースを表示できないことになります。アクセス権がないリソースは Web ページや Web パーツに表示されません。また、SharePoint エンタープライズ検索では、クエリを送信しているユーザーの ID に基づいて、セキュリティによるトリミングがクエリ時に実行されるので、アクセスできないリソースは検索結果にも表示されません。

コマンド ラインについて

昇格された権限を持っていなくて、必要な情報をサイト コレクション レベルで表示する方法がグラフィカル ユーザー インターフェイスで提供されない場合は、コマンド ライン ツール Stsadm.exe を使用すると問題が解決することがあります。たとえば、https://sharepoint という Web アプリケーション内のサイト コレクションと所有者をすべて表示するには、

Stsadm -o enumsites -url https://sharepoint

というコマンドを使用し、その後、次のコマンドを使用すると、すべてのサブサイトを表示できると考えるかもしれません。

Stsadm -o enumsubwebs -url <サイト コレクション>

しかし、通常、Web ファーム環境では、上記のように Stsadm.exe を実行すると、データベースへのアクセス権がないことを示すエラー メッセージが表示されます。Stsadm.exe を実行しているユーザーが Web ファーム管理者であり、SharePoint 3.0 サーバーの全体管理のサイト コレクションを管理できるユーザーであっても、サイト コレクションを列挙することはできません。SQL Server へのアクセス権がない状態で Web ファームで Stsadm.exe を実行すると、次のようなエラー メッセージが表示されます。

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN>stsadm -o enumsites -url https://sharepoint

<Sites Count="2">

<Site Error="このログインで要求されたデータベース &quot;WSS_Content&quot; を開けません。ログインに失敗しました。&#xD;&#xA;ユーザー 'CONTOSO\SPAdmin' はログインできませんでした。">

<Site Error="このログインで要求されたデータベース &quot;WSS_Content&quot; を開けません。ログインに失敗しました。&#xD;&#xA;ユーザー 'CONTOSO\SPAdmin' はログインできませんでした。"/>

SharePoint 3.0 サーバーの全体管理サイトは、SharePoint サーバーの全体管理 v3 アプリケーション プールに関連付けられたシステム アカウント (CONTOSO\WssConfigAdmin など) のコンテキストで SharePoint データベースにアクセスしますが、Stsadm.exe はログオンしているユーザー (CONTOSO\SPAdmin など) のコンテキストで実行されます。そのため、Web ファーム管理者に対して、上記のエラー メッセージが表示されます。SQL Server のコンテンツ データベースに対する db_owner 権限を使用中のログイン アカウントに与えると、このアカウントで Stsadm -o enumsites -url https://sharepoint コマンドを実行できるようになりますが、サイト コレクション内のサブレベル サイトを列挙できるようにはなりません。Stsadm -o enumsubwebs -url <サイト コレクション> というコマンドを実行すると、"アクセスが拒否されました" というメッセージが表示され (HRESULT: 0x80070005 (E_ACCESSDENIED) による例外です)、振り出しに戻ってしまいます。しかし、より適切で成功する可能性が高く、SQL Server に対する昇格された権限が不要の方法があります。

コンテンツ データベースに格納されているサイト情報

標準的な SharePoint インターフェイスやツールを使用しても、必要な情報を取得できない場合は、SharePoint のコンテンツ データベースに直接アクセスする必要があります。ですが、この方法は最終的な手段として使用する必要があることに注意してください。コンテンツ データベースでは独自のスキーマとデータベース構造が使用されています。マイクロソフトでは、ユーザーがデータベースを直接操作するのを防ぐため、WSS 3.0 SDK では、これらについて部分的にしか説明していません。必要な情報へのアクセスには、可能な限り、SharePoint ユーザー インターフェイス、コマンド ライン ツール、オブジェクト モデル、または Web サービスを使用してください。

データベースに直接アクセスする以外に方法がない場合は、少なくとも、読み取り専用のアクセス権を使用するという制約を課したうえで、この方法を用いる必要があります。データベース スキーマやデータベース構造を変更することはサポートされていません。変更すると、深刻な問題が発生することがあり、サイト コレクションをバックアップから復元したり、SharePoint Web ファームを再インストールしなければならなくなる場合があります。

コンテンツ データベースに直接アクセスするレポート ソリューションの代替方法として考えられるのは、サイト コレクションの構成で Web ファーム管理者アカウントを代理所有者として指定することです。Web ファーム管理者は、SharePoint 3.0 サーバーの全体管理サイトでこの手順を実行できます。[アプリケーション構成の管理] ページの [SharePoint サイトの管理] に、この手順に対応する [サイト コレクションの管理者] リンクがあります。

サイト コレクションの代理所有者は、Web ブラウザでサイト コレクションを開き、サイトの設定を表示して、[サイトの管理] の [サイト利用状況のレポート] リンクをクリックすることができます (ただし、SharePoint 3.0 サーバーの全体管理で、利用状況の分析処理が有効になっていることが前提条件となります)。SharePoint サーバーの利用状況データをログ ファイルに記録して追跡する場合は、[サーバー構成の管理] ページの [ログおよびレポートの作成] の設定を参照してください。既定では、サイト利用状況のレポートの機能は無効になっています。

しかし、多数のサイト コレクションが存在する環境や、要件が厳しいため必要な権限を Web ファーム管理者に与えることができない環境では、サイト利用状況のレポートを個々のサイト コレクションごとに手動で作成するのは実用的ではありません。より実用的な方法は、コンテンツ データベースに格納されているすべてのサイト コレクションとサイトを重要な統計データ (アイテムの数、全アイテムのサイズを合計した値、アイテムの最終更新日など) と共に表示する、簡単な ASP.NET レポート アプリケーションを実装することです (図 4 参照)。

図 4 サイトの統計データをコンテンツ データベースから直接取得する

図 4** サイトの統計データをコンテンツ データベースから直接取得する **(画像を拡大するには、ここをクリックします)

SharePoint サーバーの全体管理 v3 アプリケーション プール アカウントを使用してこのアプリケーションを実行すると、SQL Server に対して昇格された権限がなくてもコンテンツ データベースにアクセスできます。前述のとおり、サーバーの全体管理アカウントは、SQL Server に対する必要な権限を既に持っています。

付属リソースには、SQL Server のコンテンツ データベースに対して SELECT クエリを使用する簡単なレポート ソリューションと、このソリューションを Web サーバーに展開するための順を追った説明が含まれています。このアプリケーションには、セキュリティ チェックが一切実装されていないことに注意してください。このソリューションは、匿名認証を使用して実行されます。

サーバーの全体管理アカウントはコンテンツ データベースへのアクセスに必要なセキュリティ コンテキストを提供するので、ユーザーを認証する必要はありません。ソリューションの Web サイトには、Windows Server 2008 の Windows® ファイアウォールによってブロックされる、カスタム ポートを使用したので、Web アプリケーションを開くことができるのはローカル ユーザーのみです。これで、私のテスト環境でのセキュリティ要件は満たされましたが、運用環境では、Windows 認証を有効にし、ASP.NET アプリケーションの仮想ディレクトリに対する制限されたアクセス権を構成するなど、セキュリティを強化する必要があります。

まとめ

SharePoint は、柔軟なサイト コレクションとサイト管理機能を提供します。これにより、各組織のニーズに応じて、サイトの管理を分散しながら SharePoint インフラストラクチャを一元管理することができます。統合された環境は、コスト削減に役立ち、部門内や部門間の情報共有を促進し、的確な専門知識を適用することで高度なセキュリティ、信頼性、およびスケーラビリティを備えた環境を保守するための基盤を提供し、社内ネットワーク内のサイトや SharePoint リソースへの単一のアクセス ポイントをユーザーに提供するので、一元管理されたインフラストラクチャは、あらゆる規模の組織において役立ちます。

また、個々の部門や事業単位は、インフラストラクチャが一元管理されても、それぞれが担当する SharePoint リソースを引き続き制御することができます。Web ファーム管理者はサイト コレクションの管理者を指定することができ、指定された管理者は、IT 部門のサポートを必要とすることなく、自分の担当範囲内でサイトの管理タスクを実行することができます。

しかし、Web サイトの制御権を各部門に委任すると、Web ファーム管理者は、標準的な SharePoint 機能やツールを使用してインフラストラクチャのリソース利用状況を監視することができなくなります。コンテンツ データベースにクォータを適用したり、サイト コレクションの管理者に電子メール通知を送信したり、レポート目的で利用状況データを追跡したりすると、問題を軽減するのに役立ちますが、SharePoint インフラストラクチャを効率的に管理するには、Web ファーム管理者は、必要なサイト メタデータを読み取り専用でコンテンツ データベースから直接取得する追加のツールを使用する必要があります。

このようなツールとして使用できるものには、SQL Server 2005 Reporting Services や、これと同様のエンタープライズ レベルのレポート ソリューションなどがあります。付属リソースの例で紹介したように、SQL Server の SELECT クエリを使用して必要な情報を取得することもできます。

Pav Cherny は、主にコラボレーションとユニファイド コミュニケーションに関するマイクロソフト テクノロジを扱う IT 専門家であり、IT 関連書籍の執筆も行っています。これまでに、IT の運用とシステム管理についてのホワイト ペーパー、製品マニュアル、書籍などを執筆してきました。Pav は、ドキュメント管理とローカライズ サービスの専門企業 Biblioso Corporation の代表取締役です。

© 2008 Microsoft Corporation and CMP Media, LLC.All rights reserved; 許可なしに一部または全体を複製することは禁止されています.