Kerberos のトラブルシューティング

このトピックでのトラブルシューティングのヒントは、サーバーでのシングル サインオン (SSO) に関連する問題と、委任されたデータ ソースの問題に分かれています。

Tableau Server へのシングル サインオン

Kerberos SSO 環境では、Web ブラウザーまたは Tableau Desktop から Tableau Server にサインインするユーザーに、Tableau Server ではシングル サインオンを使用して自動的にサインインできないことを示すメッセージが表示される可能性があります。代わりに、Tableau Server のユーザー名とパスワードを指定するよう提案されます。

クライアント コンピューターでのサインイン エラーに関するトラブルシューティング

  • ユーザー名とパスワードを入力する - Tableau Server へのユーザーの一般的なアクセスを確認するには、ユーザー名とパスワードを入力してサインインします。

    これらの認証資格情報にエラーがある場合、Tableau Server のユーザーでない可能性があります。Kerberos SSO が機能するには、ユーザーが Tableau Server にアクセスできる必要があります。また、Active Directory によってチケット保証チケット (TGT) が付与される必要もあります (このリストで後述される TGT 項目で説明)。

  • その他のユーザーの SSO 認証資格情報を確認する - 別のユーザー アカウントを使用して、SSO による Tableau Server への接続を試行します。すべてのユーザーが影響を受ける場合、Kerberos 構成に問題がある可能性があります。

  • サーバー コンピューター以外のコンピューターを使用する - localhost で Tableau Server にサインインする場合、Kerberos SSO が機能しない可能性があります。クライアントは、Tableau Server コンピューター以外のコンピューターから接続する必要があります。

  • IP アドレスではなくサーバー名を使用する - Tableau Server 名に IP アドレスを入力すると、Kerberos SSO が機能しません。また、 にアクセスするために使用するサーバー名は、Kerberos を構成するときに使用した名前と一致する必要があります (以下の「キー テーブル エントリ」を参照してください)。

  • クライアントに TGT があることを確認する - クライアント コンピューターには Active Directory ドメインによる TGT (チケット保証チケット) が含まれている必要があります。プロキシがチケットを付与する、制約付きの委任はサポートされません。

    TGT がクライアント コンピューターに含まれていることを確認するには、次を実行します。

    • Windows の場合は、コマンド プロンプトを開いて次のように入力します。klist tgt

    • Mac の場合は、ターミナル ウィンドウを開いて次のように入力します。klist

    アウトプットには、Tableau Server を認証しようとするユーザー/ドメインの TGT が表示される必要があります。

    次の場合、クライアント コンピューターには TGT が含まれていない可能性があります。

    • クライアント コンピューターが VPN 接続を使用している。

    • クライアント コンピューターがドメインに結合されていない (たとえば、職場で使用している非作業用コンピューター)。

    • ユーザーがローカル (非ドメイン) アカウントでコンピューターにサインインした。

    • コンピューターが、Active Directory をネットーワーク アカウント サーバーとして使用していない Mac である。

  • ブラウザーのバージョンと設定を確認する - Web ブラウザーのサインイン時には、Kerberos でサポートされており、必要に応じて適切に設定されていることを確認します。

    • Internet Explorer (IE) と Chrome は、Windows ですぐに使用できます。

    • Safari は Mac ですぐに使用できます。

    • Firefox は追加の設定が必要です。

    詳細については、Kerberos SSO に対する Tableau クライアントのサポートを参照してください。

サーバーでのサインイン エラーに関するトラブルシューティング

クライアント コンピューターから問題を解決することができない場合、次の手順として Tableau Server を実行しているコンピューターでトラブルシューティングを行います。管理者は、要求 ID を使用して Tableau Server の Apache ログでサインインの試みを検索することができます。

  • ログ ファイル - Apache の error.log でサインインに失敗した正確な時間/日付が記されたエラーを確認します。

    • ziplog アーカイブでは、これらのログは \httpd フォルダーにあります。

    • Tableau Server では、これらのログは \data\tabsvc\logs\httpd\ フォルダーにあります。

  • キー テーブル エントリ - error.log エントリに「キー テーブル エントリが HTTP/<servername>.<domain>.<org>@ と一致しません。」というメッセージが表示される場合。以下に例を示します。

    [Fri Oct 24 10:58:46.087683 2014] [:error] [pid 2104:tid 4776] [client 10.10.1.62:56789] gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, No key table entry found matching HTTP/servername.domain.com@)

    このエラーは、次のいずれかの不一致の結果発生したものです。

    • Tableau Server URL - クライアント コンピューターがサーバーにアクセスするために使用する URL

      これは、Tableau Desktop またはブラウザーのアドレス バーに入力する名前です。ショートネーム (http://servername) または完全修飾ドメイン名 (http://servername.domain.com) のいずれかです。

    • サーバー IP アドレスの DNS リバース ルックアップ (DNS 逆引き)

      これは、IP アドレスを使用して DNS 名を検索します。

      コマンド プロンプトで、次のように入力します。

      ping servername

      そして、次のように入力して、サーバーに ping して返された IP アドレスで DNS 逆引きを実行します。

      nslookup <ip address>

      nslookup コマンドが、IP アドレスのネットワーク情報を返します。応答の Non-authoritative answer 部分で、完全修飾ドメイン名 (FQDN) が次の構成値と一致することを確認します。 

      • Kerberos の .keytab ファイル

      • サーバーのサービス プリンシパル名 (SPN)

      これらの値の構成に関する詳細については、Keytab 要件の理解を参照してください。

Kerberos 構成スクリプトの確認

環境変数の keytab ファイルの生成に使用した ktpass コマンドの変更が必要になる場合があります。ナレッジ ベース記事のトラブルシューティング手順、「Tableau Server で Kerberos スクリプト構成を生成できない」(新しいウィンドウでリンクが開く)を確認してください。

データ ソース SSO

委任されたデータ ソース アクセスの失敗

vizqlserver ログ ファイルで "ワークグループ認証モード" を確認します。

  • ziplog アーカイブでは、これらのログは \vizqlserver\Logs フォルダーにあります

  • Tableau Server では、これらのログは \data\tabsvc\vizqlserver\Logs フォルダーにあります

ログ ファイルで "ワークグループ認証モード" を見つけます。"現状のまま" ではなく "kerberos 偽装" と表示されています。。

Kerberos 委任マルチドメイン構成

Tableau Server は、他の Active Directory ドメインからユーザーを委任できます。データベースが MIT Kerberos を使用している場合、データベース ユーザーのマッピングに合わせて Kerberos プリンシパルを調節する必要が生じる場合があります。具体的には、ユーザーが接続する各 Kerberos 領域の規則を使用して、krb5.conf を更新する必要があります。[realms] セクションの auth_to_local タグを使用して、マップ プリンシパル名をローカル ユーザー名にマッピングします。

たとえば、ユーザー EXAMPLE\jsmith について検討します。このユーザーの Kerberos プリンシパルは jsmith@EXAMPLE.LAN です。この場合、Tableau Server は委任ユーザーを jsmith@EXAMPLE に指定します。Tableau Server は Active Directory レガシー ドメインの別名を Kerberos Realm として使用します。

ターゲット データベースには、次のように、"jsmith@EXAMPLE.LAN” をデータベース ユーザー "jsmith" にマッピングするなどのルールが既にある場合があります。

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   DEFAULT
}

委任をサポートするため、jsmith@EXAMPLE をデータベース ユーザーにマッピングする他のルールを追加する必要があります。

EXAMPLE.LAN = {
   RULE:[1:$1@$0](.*@EXAMPLE.LAN)s/@.*//
   RULE:[1:$1@$0](.*@EXAMPLE)s/@.*//
   DEFAULT
}

詳細については、MIT Kerberos ドキュメントのトピック、「krb5.conf」(新しいウィンドウでリンクが開く)を参照してください。

クロス ドメインの制限付き委任

KDC が Windows 2012 より前の Windows サーバーで KDC が実行されているクロス ドメイン シナリオでは、委任が失敗する場合があります。発生する可能性のエラーには以下が含まれます。

  • SQL サーバー ネットワーク インタフェース: システムはドメイン コントローラーに認証要求に対処するための連絡が取れません。少し後に再試行してください。
  • SQL サーバー ネイティブ クライアント: SSPI コンテクストを生成できません。
  • ドメイン コントローラーは、次を返します。KRB-ERR-POLICY error with a status STATUS_CROSSREALM_DELEGATION_FAILURE (0xc000040b).

「クロスドメイン」とは、Tableau Server がデータ ソースとは異なるドメインで、別のサービス アカウントにより実行されているシナリオを指します。例:

  • Tableau Server は DomainA 上で DomainA サービス アカウントにより実行されています。
  • SQL Server は DomainB 上で DomainB サービス アカウントにより実行されています。

従来の制限された委任は、サーバー両方が同じドメインにある場合のみ機能しました。ユーザーは他のドメインからでも問題ありません。

上記のエラーが表示される場合、このシナリオを有効化するため、Active Directory 管理者に委任するアカウントに構成された従来型の制限された委任を削除してもらってください。委任の削除は Active Directory 管理ツール、または Active Directory プロパティ msDS-AllowedToDelegateTo. に関連する値をすべて削除することで実行できます。

既存のシングル ドメイン委任をクロスドメイン委任と共に保持する場合は、双方をリソース ベースの制限された委任を使用して構成しなくてはなりません。

Kerberos と制限された委任の詳細については、Microsoft のトピック「Kerberos Constrained Delegation Overview」(新しいウィンドウでリンクが開く)を参照してください。

Web 作成

Kerberos 委任をサポートしない Web 作成シナリオは 2 つあります。「Web 上のデータへ接続する」機能と「Web 上でデータベースを作成する」機能はまだ委任をサポートしていません。具体的には、Web 作成で Kerberos を使用するデータソースを作成する場合、データ ソースは実行サービス アカウントの認証を使用します。Kerberos 委任を使用してデータソースを作成する場合は、Tableau Desktop でパブリッシュする必要があります。実行サービス アカウントの詳細については、「実行サービス アカウントを使用したデータ アクセス」を参照してください。

フィードバックをありがとうございます。フィードバックは正常に送信されました。ありがとうございます!