SharePointの認証方法
認証は、ユーザーの身元を確認するプロセスです。 SharePointは3つの基本認証方法をサポートしています。
Windows-メインで最も一般的な方法です。 この認証は、標準のWindowsネットワークセキュリティメカニズムと同様に機能し、ドメインコントローラーによって実行されます。 このタイプの認証は、IISレベルで構成されます。 この認証には4つの主要な実装があります。
- 匿名アクセス -ユーザーは、ユーザー名とパスワードを入力せずにサイトにアクセスできます。 デフォルトでは、匿名アカウントはIUSR_ <computer_name>です。
- 基本HTTP認証 -この認証方法では、サーバーはユーザーにユーザー名とパスワードを要求します。これらはネットワーク上で暗号化されていない形式で送信されます。 これは、ユーザー名とパスワードに関する情報を取得する簡単な方法ですが、次のように不正アクセスに対する保護をほとんど提供しません。 パスワードはBase-64でエンコードされているため、簡単にデコードできます。 この認証方法は、ほとんどのブラウザでサポートされています。
- ダイジェストHTTP認証 -基本的なHTTP認証と同様ですが、パスワードは暗号化された形式でネットワークを介して送信されます。 この認証方法は、Windows 2003 SP2でのみ使用できます。
- Windows統合認証は、最も安全な認証方法の1つです。 統合認証が有効になっている場合、ユーザーのコンピューターのブラウザーは、ハッシュを使用したWebサーバーとの暗号交換によってパスワードの知識を証明します。 組み込みのセキュリティは、Internet Explorerでのみ使用できます。 IISおよびSharePointはそれぞれ、統合認証を実装するための2つのプロトコルをサポートしています。
- NTLMは、Windows NT用にMicrosoftが開発したネットワーク認証プロトコルです。 このプロトコルは、サーバーに送信されるパスワードではなく、サーバーとユーザーアカウント情報によって返されるキーを使用して作成されたハッシュを使用して、要求と応答に基づいて機能します。 次に、サーバーは転送されたハッシュをローカルでチェックし、それに応じてリソースへのアクセスを許可または拒否します。
- Kerberos-クライアントとサーバー間の接続を確立する前に、それらを相互に識別するメカニズムを提供します。 トークン、チケットの使用に基づいています。 このプロトコルを使用する場合、クライアントは最初にログインとパスワードを認証サーバーに送信します。 応答として、サーバーは認証トークンを返します。 さらに、ネットワーク上のリソースにアクセスするときにこのトークンを使用できますが、ネットワーク経由でアカウント情報(ユーザー名/パスワード)を送信して再認証する必要はありません。
KerberosプロトコルはNTLMよりも安全で高速ですが、追加の構成が必要で、多くの場合非常に時間がかかり、詳細な計画が必要です。
- NTLMは、Windows NT用にMicrosoftが開発したネットワーク認証プロトコルです。 このプロトコルは、サーバーに送信されるパスワードではなく、サーバーとユーザーアカウント情報によって返されるキーを使用して作成されたハッシュを使用して、要求と応答に基づいて機能します。 次に、サーバーは転送されたハッシュをローカルでチェックし、それに応じてリソースへのアクセスを許可または拒否します。
詳細については、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認証の説明
FirefoxのNTLM
「ダブルホップ」問題の説明
SharePointのKerberosロールの説明
SharePoint用にKerberosを構成する
SharePointのSSOの構成
SharePointのフォーム認証を構成する