SharePointセキュリティ-パート2:ユーザー認証

初心者にとって、SharePointは大きくて理解できないもののようです。 一方、SharePointはIIS上で実行される通常のASP.NETアプリケーションです。 もちろん、これはセキュリティシステムに影響します。セキュリティシステムの重要な要素はユーザー認証です。



SharePointの認証方法



認証は、ユーザーの身元を確認するプロセスです。 SharePointは3つの基本認証方法をサポートしています。



Windows-メインで最も一般的な方法です。 この認証は、標準のWindowsネットワークセキュリティメカニズムと同様に機能し、ドメインコントローラーによって実行されます。 このタイプの認証は、IISレベルで構成されます。 この認証には4つの主要な実装があります。



詳細については、IISでのリクエスト認証プロセスについて説明します: http : //groff.habrahabr.ru/blog/78242/



ASP.NETフォーム -この場合、Windowsユーザー権限ではなく、フォームによって入力され、構成されたプロバイダーを使用して検証された資格情報が使用されます。 このメソッドはASP.NET機能を使用して実装され、プロバイダーのモデルに基づいて構築されています。 プロバイダーモデルでは、ユーザー権限の認証と検証にサードパーティシステムとデータウェアハウスを使用できます。 既定では、ASP.NETにはLDAPおよびSQLのプロバイダーが含まれています。 必要に応じて、カスタムプロバイダーを開発できます。



シングルサインオンサービスは、ユーザーが再認証なしでシステム間を切り替えることができるサービスです。 これにより、ユーザーはこの移行中にアカウントデータを繰り返し入力する必要がなくなります。 多くの場合、システムまたはソフトウェア製品には、ユーザー資格情報を検証する独自のメカニズムが含まれています。 SSOの役割は、あるシステムのユーザー特権を別のシステムの特権に変換することです。



多くの企業は、Microsoft SSO以外のユーザー資格情報の保存と検証に専用のシステムを使用しています。 このようなシステムをSharePointと組み合わせて使用​​する予定であり、同時に2つの場所に資格情報を保存することを拒否する必要がある場合、カスタムSSOプロバイダーを作成することができます。 SSOはMicrosoft Office SharePoint Server 2007でのみ利用でき、WSS 3.0では利用できません



選択する認証方法は?



それはすべて状況に依存します。 デフォルトでは、新しいWebアプリケーションを作成するときに、ブラウザを実行しているユーザーの資格情報を使用してNTLM認証が提案されます。 閉じたイントラネットアプリケーションの場合、通常はこれで十分です。 ただし、この動作は特定の要件を満たさないことが多く、追加の構成と他の認証方法の選択が必要です。



匿名認証は、主に、ユーザーがSharePointサイトに無料でアクセスする必要があるインターネットシナリオで使用されます。 このようなユーザーの場合、通常、サイトには読み取り権限があります。 インターネットのシナリオを検討する場合、多くの場合、ユーザーがサイトの特定のセクションにアクセスしたり、書き込み権限を取得するために登録できるようにする必要もあります。 この場合、データベースを使用して登録ユーザーの資格情報を保存するように構成されたフォームを使用した認証が理想的なオプションです。



統合Windows認証を使用する予定で、高レベルのセキュリティが必要な場合は、Kerberos認証が最適なオプションです。



「ダブルホップ」問題



Kerberos認証は、「ダブルホップ」問題の解決にも使用されます。 問題の本質は、コードを呼び出したユーザーの資格情報を使用して、コードからネットワークリソースまたはサーバーにアクセスする必要があることです。



例を考えてみましょう。 Oracleなどのサードパーティデータベースのデータを表示するWebパーツを作成しています。 さらに、Webパーツでアクセス権に従ってページを開くユーザーがアクセスできるデータのみを表示する必要があります。 つまり データベースにアクセスするときは、Webパーツを開いたユーザーのWindowsアカウントを使用する必要があります。



偽装ASP.NETの使用をすぐに提案します。 これは論理的ですが、Webパーツを備えたWebサーバーがインストールおよび構成されているコンピューター上にOracleデータベースがある場合にのみ機能します。 この理由は、ネットワーク上で偽装ユーザーの資格情報を転送できないNTLMプロトコルです。 この問題を解決する1つの方法は、ドメインでKerberos認証を使用し、データベースサーバーとWebサーバーの間で設定を委任することです。



この問題の2番目の解決策は、Win32 APIを使用して、データベースサーバーにアクセスする前にユーザーを偽装することです。 このアプローチは、シングルサインオンを使用して実装されます。



シングルサインオンは、ユーザーが資格情報を入力せずにサードパーティシステムにアクセスできる必要があるサードパーティアプリケーションでSharePointを使用する場合にも使用する価値があります。



セキュリティのレベルが低いため、基本的なHTTP認証は実際には使用されません。



認証を構成する場所と方法



すべてのSharePoint認証設定は、Webアプリケーションレベルで適用されます。 したがって、認証を設定するための開始点は、SharePointファームのサーバー管理、より具体的には、アプリケーション管理 > 認証プロバイダーページです。



画像



認証設定は、web.configファイルを編集し、IIS管理コンソールでパラメーターを設定することにより、手動で適用できます。 ただし、この方法では、インターフェイスで指定された設定がすべてのファームのWebサーバーに自動的に適用されるため、サーバーの全体管理インターフェイスを使用することをお勧めします。



一方、手動設定が不可欠な場合があります。 特に、ダイジェストHTTP認証を使用する必要がある場合は、ファーム内の各IISサーバーを構成する必要があります。 また、フォームを使用した認証が必要な場合は、手動構成が必要になります。必要なプロバイダーをファーム内のすべてのweb.configファイルに接続する必要があります。



Webアプリケーションゾーン



ゾーンは、Webアプリケーションを認証するいくつかの方法をサポートするために使用されます。 これは、たとえば、会社の従業員に加えてサイトへのアクセス(Windows認証)を顧客が利用できるようにする場合(フォームを使用した認証)に便利です。 この場合、デフォルトで作成されたゾーンが一部に使用され、統合Windows認証が構成され、既存のゾーンに基づいてクライアント用に新しいゾーンが作成され、フォームを使用した認証が構成されます。



SharePointでは、単一のWebアプリケーションに次のゾーンを使用できます。

デフォルトでは、すべてのゾーンの認証設定は同じです(NTLMで匿名アクセスが無効になっています)。 したがって、必要な設定はすべて手動で行う必要があります。



関連リンク



NTLM認証の説明

FirefoxのNTLM

「ダブルホップ」問題の説明

SharePointのKerberosロールの説明

SharePoint用にKerberosを構成する

SharePointのSSOの構成

SharePointのフォーム認証を構成する



All Articles