セキュリティに関する機能拡張

最終更新日: 2010年4月14日

適用対象: SharePoint Foundation 2010

この記事の内容
クレーム ベースの ID および認証
自動パスワード変更およびアカウント管理
効果的な権限 API
Secure Store Service

Microsoft SharePoint Foundation および Microsoft SharePoint Server 2010 は、Windows SharePoint Services 3.0 と Microsoft Office SharePoint Server 2007 のセキュリティ機能に基づいて構築され、このセキュリティ機能はさらに拡張されています。ここでは、SharePoint Foundation および SharePoint Server 2010 のセキュリティに関する新機能と拡張機能の概要を示します。

クレーム ベースの ID および認証

クレームベース ID は SharePoint Foundation および SharePoint Server 2010 の ID モデルで、Windows ベース システムと非 Windows ベース システムの両方にまたがるユーザー認証、複数種類の認証方式、リアルタイム認証の強化、プリンシパルの種類の拡充、アプリケーション間でのユーザー ID 委任など、さまざまな機能が含まれます。

ユーザーが SharePoint Foundation と SharePoint Server 2010 にサインインするときに、ユーザーのトークンが検証され、ユーザーはそのトークンを使用して SharePoint にサインインします。ユーザーのトークンは、クレーム プロバイダーによって発行されるセキュリティ トークンです。SharePoint Foundation と SharePoint Server 2010 でサポートされるサインイン、あるいはアクセス モードには以下の 5 つの種類があります。

  • Windows クラシック モードでのサインイン

  • Windows クレーム モードでのサインイン

  • SAML パッシブ サインイン モード

  • ASP.NET メンバーシップおよびロール パッシブ サインイン

  • 匿名アクセス

注意

SAML パッシブ サインインには、サインインのプロセスが記述されています。Web アプリケーションのサインインが、信頼済みログイン プロバイダーからトークンを受け取るように構成されている場合、この種類のサインインは SAML パッシブ サインインと呼ばれます。信頼済みログイン プロバイダーは、SharePoint が信頼する外部 (つまり、SharePoint 外の) STS です。SharePoint へのサインインおよびさまざまなサインイン モードの詳細については、「受信クレーム: SharePoint にサインインする」を参照してください。

クレームを処理できるアプリケーションを構築する場合、ユーザーはアプリケーションに ID を一連のクレームとして提示します。あるクレームはユーザー名、また別のクレームは電子メール アドレスなどであることがあります。このしくみの基本にあるのは、何らかの外部 ID システムが構成され、そこからアプリケーションに対して、ユーザーに関するすべての必要な情報 (および、受け取った ID データが信頼できる提供元から得られたものであることを示す暗号化済みの証拠) が個々の要求と共に提供されるという考え方です。

このモデルでは、シングル サインオンの実現が非常に容易になり、ユーザーのアプリケーションは以下の点を考慮する必要がなくなります。

  • ユーザーの認証

  • ユーザー アカウントおよびパスワードの保存

  • ユーザー ID の詳細を検索するために企業のディレクトリを呼び出す

  • その他のプラットフォームあるいは企業の ID システムとの統合

このモデルでは、アプリケーションはユーザーによって提供されたクレームに対して、ID に関連する判断をします。これには、ユーザーのファースト ネームによる簡単なアプリケーションの個人用設定から、アプリケーションのより高度な機能およびリソースにアクセスするためのユーザー認証に至るまで、幅広い用途が含まれます。

クレーム ベースの ID とクレーム プロバイダーの詳細については、「クレームベース ID の概要と概念」と「クレーム プロバイダー」を参照してください。

クレーム セキュリティ トークンへの ASP.NET メンバーシップ ユーザー トークンの変換

SharePoint Foundation では、ASP.NET メンバーシップ プロバイダーが、必須の System.Web.Security.Membership.ValidateUser メソッドを実装する必要があります。ユーザー名が指定されると、ロール プロバイダー システムは、そのユーザーが属するロールのリストを返します。メンバーシップ プロバイダーは、System.Web.Security.Membership.ValidateUser メソッドを使用して資格情報を検証します (SharePoint Foundation では必須)。

ただし、実際のユーザー トークンは、SharePoint Foundation セキュリティ トークン サービス (STS) によって作成されます。SharePoint Foundation STS は、メンバーシップ プロバイダーによって検証されたユーザー名、およびメンバーシップ プロバイダーによって提供されるユーザー名に関連付けられている一連のグループ メンバーシップからクレーム セキュリティ トークンを作成します。

注意

STS の詳細については、「クレームベース ID の概要と概念」を参照してください。SharePoint へのサインインの詳細については、「受信クレーム: SharePoint にサインインする」を参照してください。

自動パスワード変更およびアカウント管理

SharePoint Foundation に新しく追加されたパスワードの自動変更機能を使用すると、パスワードを自動的に更新および展開できます。複数のアカウント、サービス、および Web アプリケーションにわたるパスワード更新作業を手動で行う必要はありません。これにより、SharePoint Foundation でのパスワード管理が行いやすくなります。このパスワードの自動変更機能を使用すると、パスワードの期限が近付いているかどうか、および暗号化された強力で長いランダム文字列を使用してパスワードをリセットするかどうかを決定できます。

パスワードの自動変更機能は、管理アカウントを使用して実装します。SharePoint Foundation の管理アカウントによりセキュリティが向上し、アプリケーションが確実に切り離されます。

管理アカウント API の詳細については、次を参照してください。

効果的な権限 API

Windows SharePoint Services 3.0 では、SPWebSPListSPListItem など、セキュリティ保護が可能なオブジェクトでユーザーの効果的な権限を取得するのが困難です。特に親 (一意の対象範囲) から権限を継承しないオブジェクトが多数存在する場合、時間が経つと、サイトの権限の設定が非常に複雑になる可能性があり、管理者は、特定のユーザーに対してどの権限が効果的であるか、また特定のオブジェクトでユーザーがどのように権限を取得するかを容易には判断できません。SharePoint Foundation では、[権限の確認] という新しいリボン コマンドと、特定の範囲の特定のユーザーに対するすべてのロール割り当てをすばやく列挙する一連の効果的な権限 API が導入されています。

SPSecurableObject クラスは、新しい GetUserEffectivePermissionsInfo() メソッドを公開します。このメソッドは、指定したユーザーが持つ現在の対象範囲における効果的な権限と、この対象範囲のこのユーザーに関連するロール割り当てに関する詳細情報を持つオブジェクトを取得します。指定されたユーザーが "このアカウントでの操作はシステムとして行う" とマークされているポリシーに属している場合、このメソッドの権限マスクには、Web アプリケーション セキュリティ ポリシー情報が含まれません。このメソッドは、EnumeratePermissions 権限が付与されているユーザーのみが使用できます。EnumeratePermissions の詳細については、「SPBasePermissions 列挙」を参照してください。

また、SPSecurableObject クラスは、新しい GetUserEffectivePermissions() メソッドも公開します。現在の対象範囲について、このメソッドはユーザーの効果的な権限マスクを表す SPBasePermissions オブジェクトを返します。

SPWeb クラスには、GetWebsAndListsWithUniquePermissions() という名前の新しいメソッドがあります。サイト コレクション管理者は、このメソッドにより、一意の権限を持つ Web およびリストのコレクション、または一意の権限を持つアイテムが含まれる Web とリストのコレクションを取得します。

API は、開始 URL から、一意のセキュリティ範囲が存在する (ロール継承の破棄が発生した) コンテナーの URL のリスト (SPWeb、SPList など) を返します。一意のセキュリティ範囲が含まれないコンテナーでも、一意のセキュリティ範囲を持つ 1 つまたは多数の子アイテムが含まれていれば、そのコンテナーは、返されるリストに含まれます。

SPList クラスには、新しい GetItemsWithUniquePermissions() メソッドがあります。サイト コレクション管理者は、このメソッドにより一意の権限を持つすべてのアイテムを取得します。

これらの API の詳細については、[Microsoft.SharePoint」を参照してください。

注意

このトピックで説明するのは、新しい API の一部についてのみです。ここでは、SharePoint Foundation に追加されたセキュリティ関連の新しい API すべてを紹介しているわけではありません。

Secure Store Service

Secure Store Service は、Microsoft Office SharePoint Server 2007 シングル サインオン機能を置き換えるものです。Secure Store Service は、アカウント名やパスワードなどの資格情報の格納およびマッピングを提供するサービスです。このサービスは、セキュリティで保護された状態で、外部システムに接続するために必要な資格情報を提供し、特定の ID、あるいは ID のグループにそれらの資格情報を関連付けるデータを、保存できるようにします。ソリューションでは、現在のユーザーが異なる方法で識別されているか、あるいは認証のために異なるアカウントを持っている外部システムへの認証を試行することは一般的です。このような場合、Secure Store Service を使用して、外部システムが必要とするユーザー資格情報を格納およびマップすることができます。また、複数のユーザーが外部システム上で一連の資格情報を使用して、その外部システムにアクセスできるように Secure Store Service を設定することができます。

Secure Store Service の詳細については、「Secure Store Service」を参照してください。

関連項目

概念

セキュリティとクレームベース ID モデルの基礎知識