Independent Gateway を使用した認証モジュールの構成
セキュリティの一般的なプラクティスでは、DMZ サーバーの内部ファイアウォールは認証された要求のみを通過させます。Independent Gateway は、Tableau Server の従来の認証方法をサポートしていますが、カスタムの認証用に Apache httpd のロード可能モジュールを統合できる構成プロパティもサポートしています。
たとえば、Tableau Server で SAML を設定してカスタム認証モジュールを構成すると、IdP を使用して認証するように Independent Gateway ですべてのユーザーに要求できます。認証されたユーザーのみが Tableau Server にアクセスでき、その後で Tableau Server はユーザー アクセスの認証と認可を行うことができます。
この認証スキームの詳細については、企業環境への導入ガイドの「AuthN モジュールによる事前認証(新しいウィンドウでリンクが開く)」を参照してください。
認証モジュールを構成するには、次の手順を実行する必要があります。
- 認証モジュール構成ファイルを生成します。セットアップが完了すると、各モジュールとその構成ディレクティブは Include オプションとして扱われ、インクルードされたファイルは論理的に全体的な httpd 構成の一部になります。
- Independent Gateway を実行している各コンピューターに構成ファイルをコピーします。ファイルはすべて、各 Independent Gateway コンピューターの同じ場所にコピーする必要があります。各ファイルは、Tableau Server が管理する構成プロパティにマッピングされます。
- Tableau Server で
tsm configuration set
コマンドを使用して構成プロパティを設定します。
Independent Gateway には、TSM コマンドを使用して Tableau Server 上で行われた変更に基づいて httpd 構成を更新するロジックが含まれているため、Independent Gateway の httpd 構成ファイル (httpd.conf) は編集しないでください。
認証モジュールの構成例
エンド ツー エンド認証モジュールの構成例については、企業環境への導入ガイド「認証構成の例: 外部 IdP を使用した SAML(新しいウィンドウでリンクが開く)」を参照してください。次の例では、AWS で実行している Tableau Server on Linux の展開に対して、Okta IdP と Mellon 認証モジュールを使用して SAML を設定および構成する方法について説明します。この例では Linux のプロセスについて説明していますが、構成例は Tableau Server on Windows にも役立ちます。
構成プロパティ
次の表では、参照できるさまざまな構成ファイルについて説明しています。各ファイルは、Tableau Server で設定される構成プロパティに対応します。
構成プロパティ | 説明 |
---|---|
gateway.tsig.authn_module_block | 通常ロードされる Apache httpd モジュールのセットの最後に表示されます。その意図は、ファイルには 1 つまたは複数の LoadModule ディレクティブが含まれることです。モジュール自体はフルパスで識別される必要があります。 |
gateway.tsig.authn_global_block | すべての LoadModule の参照の後、他のほとんどの Apache httpd ディレクティブの前に表示されます。その意図は、カスタム モジュールに必要な構成ディレクティブの場所を提供することです。 |
gateway.tsig.authn_globalbottom_block | 構成ファイルの一番下に、グローバル レベルで表示されます。その意図は、特に他のさまざまなディレクティブの後に、カスタム モジュールに必要な構成ディレクティブの場所を提供することです。(これが必要になる可能性はほとんどありません) |
gateway.tsig.authn_location_block | <Location "/"> ブロックの内側に表示され、すべての URL パスをカバーします。 |
gateway.tsig.authn_directory_block | <Directory "/"> ブロックの内側に表示され、Independent Gateway が提供するすべてのファイルへのパスをカバーします。(これが必要になる可能性はほとんどありません。Independent Gateway が提供するファイルのほとんどは、画像や JavaScript ファイルなどの機密性の低い静的なアセットです) |
gateway.tsig.authn_virtualhost_block | 1 つまたは 2 つの |
<Location "/tsighk">
ブロック
通常の要求トラフィック用の <Location "/">
ブロックに加えて、Independent Gateway のハウスキーピング (HK) 要求を内部で処理するために使用される <Location "/tsighk">
ブロックもあります。これらの HK 要求には独自の認証のしくみがあり、通常のカスタム SSO ソリューションでは機能しません。
カスタム モジュールは、HK URL パスの認証を試行しないように明示的に除外する必要がある場合があります。
ご利用のモジュールを除外する必要があるかどうかを判断するには、まずモジュールを構成します。次に、Independent Gateway のアクセス ログで HK 要求を探します。少なくとも 1 分に 1、2 回はステータス チェックが表示されます。その要求が応答コード 200 を受信している場合は、おそらく問題ありません。一方、要求が応答コード 3xx (ご利用のカスタム認証プロバイダーにリダイレクト) を受信している場合は、何らかの対応が必要です。
考えられる解決策は以下のとおりです。
<Location "/tsighk">
ブロックには、AuthType None
というディレクティブがあり、それで十分かもしれません。- Independent Gateway の httpd.conf には標準の Apache httpd ディレクティブ
ProxyPreserveHost(新しいウィンドウでリンクが開く) On
があります。Off や他の値が必要になるような異常な場合は、TSM の設定項目gateway.tsig.proxypreservehost
でその値を設定できます。 <Location "/tsighk">
の認証モジュールを無効にするには、モジュール固有のディレクティブが必要になる場合があります。httpd.conf ファイルでそのブロックを直接変更することはできません。代わりに、gateway.tsig.authn_global_block
ファイルに別の<Location "/tsighk">
ブロックを作成し、Apache httpd にそれらを論理的にマージさせることができます。たとえば、オープンソースの認証モジュールとして有名な mod_auth_mellon の一部のバージョンでは、MellonEnable が適用されないセクションでAuthType None
が設定されていても、そのセクションでMellonEnable Off
を必要としています。- 前の箇条書きで説明したように、追加の
<Location "/tsighk">
セクションを作成する場合、httpd.conf ファイル内で各種のセクションが現れる順序によって、それらが互いに与える影響が異なる場合があります。標準の<Location "/tsighk">
セクションは、標準の<Location "/">
セクションの前に現れます。試験を行った結果、異なる順序が必要であることがわかった場合は、別の<Location "/tsighk">
セセクションに加えて、gateway.tsig.authn_global_block
ブロックに別の<Location "/">
セクションを定義する必要があるかもしれません。この場合、gateway.tsig.authn_location_block
ブロックには何も必要ない可能性があります。
カスタム認証モジュール構成のトラブルシューティング
Independent Gateway が httpd.conf ファイルを構成する方法を理解するには、Independent Gateway コンピューター上の空のファイルを指す値を使用して TSM 構成項目を設定すると便利です (そのファイルは存在している必要がありますが、空でもかまいません)。次に、Independent Gateway の httpd.conf ファイルを見ると、さまざまな構成ファイルの Include
ディレクティブが実際にどこにあるかを具体的に理解することができます。
Independent Gateway の httpd.conf の構成に問題があると、tsig-httpd
サービスを開始できないことがあります。他にも構成上の問題があると、Tableau Server クラスター上の Independent Gateway コンパニオン サービスから構成の更新を正常に受信できない場合があります。問題の原因を修正した後、回復する 1 つの方法は、TSIG_DATA/config/httpd.conf.stub
を TSIG_DATA/config/httpd.conf
にコピーし、tsig-httpd
サービスを再起動することです。
その他のトラブルシューティングのヒントについては、企業環境への導入ガイド (EDG) の「Tableau Server の独立したゲートウェイのトラブルシューティング(新しいウィンドウでリンクが開く)」を参照してください。EDG には、Tableau Server on Linux の展開例が記載されています。トラブルシューティングのステップは、Tableau Server の Windows または Linux バージョンに対応しています。