SQL OLTP の Kerberos 認証 (SharePoint Server 2010)

 

適用先: SharePoint Server 2010

トピックの最終更新日: 2016-11-30

このシナリオのプロセスに従って、サンプル環境の SQL Server クラスターに対する Kerberos 認証を構成します。このプロセスを完了した後、SharePoint Server サービスが Kerberos プロトコルを使用してクラスターで認証されていることを検証します。

このシナリオでは、次のことを行います。

  • Kerberos 認証を使用するように既存の SQL Server 2008 R2 クラスターを構成します。

  • クライアントが Kerberos 認証を使用してクラスターで認証できることを確認します。

  • 後のシナリオで使用するテスト データベースとサンプル データを作成します。

注意

重要な SharePoint Server データ サービス (プラットフォーム データベースへの接続など) に対して、SQL Server の Kerberos 認証を使用する必要はありません。サンプル環境には、後のシナリオで使用する追加のサンプル データベースをホストする唯一の SQL Server クラスターがあります。このシナリオで委任が適切に機能するには、Kerberos 認証を受けた接続が SQL Server クラスターで受け付けられる必要があります。

注意

Windows Server 2008 にインストールする場合は、Kerberos 認証用に次の修正プログラムのインストールが必要になる可能性があります。
Kerberos 認証は 0X80090302 または 0x8009030f、AES アルゴリズムが使用するとき Windows Server 2008 や Windows Vista を実行がコンピューターには、エラー コードと共に失敗します。 (https://support.microsoft.com/kb/969083/ja-jp)

構成チェックリスト

構成の領域 説明

DNS を構成する

SQL Server クラスター IP 用の DNS (A) ホスト レコードを作成します。

Active Directory を構成する

SQL Server サービス用のサービス プリンシパル名 (SPN) を作成します。

SQL Server Kerberos 構成を確認する

SQL Server Management Studio を使用して、SQL 接続メタデータに対してクエリを実行し、Kerberos 認証プロトコルが使用されていることを確認します。

シナリオ環境の詳細

シナリオ インフラストラクチャの図

このシナリオでは、Kerberos 認証を使用するように構成された SQL Server クラスターへの接続に対して SQL エイリアスを使用するように構成された SharePoint Server ファームが示されます。

構成手順

DNS を構成する

ユーザーの環境で SQL Server クラスターの DNS を構成します。この例には 1 つの SQL Server クラスター (MySqlCluster.vmlab.local、ポート 1433 で実行、クラスター IP は 192.168.8.135/4) があります。クラスターは、アクティブ/パッシブであり、SQL Server データベース エンジンが 1 番目のノードの既定のインスタンスで実行されます。

DNS の構成方法に関する一般的な情報については、「Managing DNS Records (英語)」を参照してください。

この例では、SQL Server クラスター用の DNS (A) レコードを構成しました。

注意

技術的には、SQL Server の SPN にインスタンス名が含まれるため (第 2 の名前が付けられたインスタンスを同じコンピューターで使用している場合)、クラスターの DNS ホストを CNAME エイリアスとして登録でき、付録 A. の「Kerberos 構成の既知の問題 (SharePoint Server 2010)」で説明されている CNAME の問題を回避できます。ただし、CNAME を使用するように選択した場合、CNAME エイリアスのDNS (A) レコードのホスト名を使用して、SPN を登録する必要があります。

Active Directory を構成する

SQL Server で Kerberos 認証を使用してクライアントを認証するには、SQL Server を実行するサービス アカウントにサービス プリンシパル名 (SPN) を登録する必要があります。SQL Server 名前付きインスタンスではなく既定のインスタンスを使用する構成では、SQL Server データベース エンジンのサービス プリンシパル名で次の形式が使用されます。

MSSQLSvc/<FQDN>:port

SQL Server 2008 の SPN を登録する方法の詳細については、「サービス プリンシパル名の登録」を参照してください。

この例では、次の SetSPN コマンドを使用して、SQL Server の SPN を SQL Server データベース エンジンのサービス アカウント (vmlab\svcSQL) に構成しました。

SetSPN -S MSSQLSVC/MySQLCluster.vmlab.local:1433 vmlab\svcSQL

SQL Server 名前付きインスタンス

既定のインスタンスではなく SQL Server 名前付きインスタンスを使用する場合、SQL Server インスタンスに固有の SPN と、SQL Server ブラウザー サービス用の SPN を登録する必要があります。名前付きインスタンスに対して Kerberos 認証を構成する方法については、以下の記事を参照してください。

SQL エイリアス

ファームを構築するときは、ベスト プラクティスとして、SQL Server コンピューターへの接続に SQL エイリアスの使用を検討する必要があります。SQL エイリアスを使用する場合、これらの接続用の Kerberos SPN の形式は変更されません。SQL Server の SPN に登録された DNS ホスト名 (A レコード) を引き続き使用します。たとえば、"MySQLCluster.vmlab.local" に対してエイリアス "SPFARMSQL" を登録した場合、SPFarmSQL に接続するときの SPN は "MSSQLSVC/MySQLCluster.vmlab.local:1433" のままです。

SQL Server Kerberos 構成を確認する

DNS とサービス プリンシパル名が構成されると、SharePoint Server を実行するコンピューターを再起動し、SharePoint Server サービスが Kerberos 認証を使用して SQL Server で認証されていることを確認できます。

クラスター構成を確認するには

  1. SharePoint Server を実行するコンピューターを再起動します — この処理により、すべてのサービスが再起動され、再接続と、Kerberos 認証を使用する再接続が強制的に行われます。

  2. SQL Server Management Studio を開いて、次のクエリを実行します。

    Select 
       s.session_id,
       s.login_name,
       s.host_name,
       c.auth_scheme
    from
    sys.dm_exec_connections c
    inner join
    sys.dm_exec_sessions s
    on c.session_id = s.session_id
    

    クエリでは、各セッションと接続に関するメタデータが返されます。セッション データは接続元の特定に役立ち、セッション情報では接続の認証スキームが明らかになります。

  3. SharePoint Server サービスが Kerberos 認証を使用して認証されていることを確認します。Kerberos 認証が適切に構成されている場合、クエリ結果の [auth_scheme] 列に [Kerberos] が表示されます。

テスト SQL Server データベースとテスト テーブルを作成する

このドキュメント内のシナリオに含まれるさまざまな SharePoint Server サービス アプリケーション間の委任をテストするには、それらのサービスがアクセスするテスト データ ソースを構成する必要があります。このシナリオの最終手順で、後で使用する "Test" と呼ばれるテスト データベースと "Sales" と呼ばれるテスト テーブルを構成します。

  1. SQL Server Management Studio で、"Test" と呼ばれる新しいデータベースを作成します。このデータベースを作成するときは、既定の設定を維持します。

  2. 以下のスキームを使用して、Test データベースに新しいテーブルを作成します。

    列名 データ型 Null を許可

    地域

    nvarchar(10)

    いいえ

    nvarchar(4)

    いいえ

    金額

    money

    いいえ

    RowId

    int

    いいえ

  3. "Sales" という名前を付けてテーブルを保存します。

  4. Management Studio で、テーブルにテスト データを挿入します。データ自体は重要ではなく、後のシナリオの機能に影響するものではありません。少しの行があれば十分です。