Kerberos 認証と SQL Server

Kerberos は、ネットワーク上のクライアント エンティティおよびサーバー エンティティ (セキュリティ プリンシパル) を認証するための安全性の高い方法を提供するネットワーク認証プロトコルです。これらのセキュリティ プリンシパルは、マスタ キーおよび暗号化されたチケットに基づいた認証を使用します。

Kerberos プロトコル モデルでは、すべてのクライアント/サーバー接続は認証で始まります。クライアントとサーバーはそれぞれ、接続の両端で接続先が本物であることを確認するように設計された一連の操作を実行します。認証が成功した場合、セッションのセットアップは完了し、安全なクライアント/サーバー セッションが確立されます。

Kerberos 認証の主な利点は次のとおりです。

  • 相互認証。クライアントはサーバー プリンシパルの ID を検証でき、サーバーはクライアントを検証できます。安全なネットワーク接続はサーバー間で確立される場合もありますが、このマニュアル全体をとおして、これらの 2 つのエンティティを "クライアント" および "サーバー" と呼びます。

  • セキュリティで保護された認証チケット。暗号化されたチケットのみが使用され、チケットにパスワードが含まれることはありません。

  • 統合認証。ユーザーがいったんログオンすると、クライアント チケットの有効期限が切れない限り、Kerberos 認証をサポートする任意のサービスにアクセスするために、再びログオンする必要はありません。すべてのチケットには、チケットを生成する Kerberos 領域のポリシーによって決定される有効期間があります。

Kerberos は、安全なネットワーク接続が確立される前にエンティティ間の相互認証のメカニズムを提供します。Kerberos は信頼できるサード パーティであるキー配布センター (KDC) を使用して、認証チケットおよび対称セッション キーの生成および安全な配布を実行します。KDC はサービスとしてセキュリティで保護されたサーバー上で実行され、その領域内にあるすべてのセキュリティ プリンシパルのためにデータベースを維持します。Kerberos のコンテキストでは、領域は Windows ドメインと同じです。

注意注意

マスタ キーのセキュリティは、クライアントおよびサーバーの責任です。KDC はチケット付与サービスのみを提供します。

Windows 環境では、KDC の操作はドメイン コントローラによって制御され、通常 Active Directory が使用されます。Windows ドメインの全ユーザーは、実質的に Kerberos プリンシパルで、Kerberos 認証を使用することができます。

SQL Server と Kerberos

SQL Server で Windows 認証を使用する際は、Windows セキュリティ サポート プロバイダ インターフェイス (SSPI) を通じて間接的に SQL Server で Kerberos がサポートされます。SSPI を利用することで、アプリケーションは、セキュリティ システムに対するインターフェイスを変更せずに、コンピュータまたはネットワークで使用可能なさまざまなセキュリティ モデルを使用できるようになります。

SQL Server は、使用する認証プロトコルをネゴシエートすることを SSPI に許可し、Kerberos が使用できない場合、Windows は Windows NT Challenge/Response (NTLM) 認証に戻ります。

SQL Server 2008 は、次のプロトコルの Kerberos 認証をサポートしています。

  • TCP/IP

  • 名前付きパイプ

  • 共有メモリ

上記のプロトコルの詳細については、「ネットワーク プロトコルと TDS エンドポイント」を参照してください。

SQL Server のインスタンスへの接続には、可能な限り Kerberos 認証を使用することをお勧めします。