ダイナミックドメイン(動的ドメイン)について実例とともに説明します。
検証環境
製品 | バージョン | 備考 |
---|---|---|
TDV | 8.5.2 | Windows Server 2019 で実行 |
PostgreSQL | 12 | 外部データソースとして利用 |
ダイナミックドメインとは
ユーザがTDV Serverに対してダイナミックドメインを利用して接続すると、TDV Serverは認証を行わず、認証をデータソースに委任します。
これにより、TDV Serverがパススルーログインが有効になっている「セキュリティで保護された」データソースに対してクエリを実行するときに、接続に利用される認証情報が動的に変わります。
エンドユーザは、既存のログイン情報をデータソースでの認証に使用して、TDVに個別にログインしなくても、過去と同じアクセス許可を取得できます。
以下の図は、ダイナミックドメインとそれ以外のドメイン(compositeやAD、LDAP)との違いを示したものです。
動作確認
実際にTDV Server上の公開テーブルに対してダイナミックドメインを利用して接続し動作確認を行います。
データサービス
本記事の検証では、以下のようなデータサービスを利用します。
ダイナミックドメインにより公開テーブルorderdetails
に対してクエリを実行するユーザは、データソースであるdemo_postgres
で認証されます。
データソース(PostgreSQL)
データソースとして以下のようなPostgreSQLデータベースを利用します。
各テーブルには、PostgreSQL上のユーザに対して以下のように権限が付与されています。
権限が付与されているのは、以下の2ユーザのみです。
ユーザ | 用途 |
---|---|
dynamic | TDV Server上でイントロスペクト実行時に利用 |
dynamic_test01 | ダイナミックドメインによる接続に利用 |
データソース設定
データソース(demo_postgres
)には以下のようにパススルーを有効化しておきます。
ダイナミックドメイン有効化
TDV Studioの 管理 > 構成 から、Server > Configuration > Security > Enable Dynamic Domain LoginをTrue
に設定します。
クエリ実行
クライアントから公開テーブルのorderdetails
にクエリを実行し、データソース側で権限を付与されているユーザとそうでないユーザの結果の違いを確認します。
今回はクエリの実行に [TDVインストールフォルダ]\apps\jdbc\JdbcSample.bat
を利用します。
データソース側で権限が付与されているdynamic_test01
ユーザでクエリを実行すると、以下のように正常にデータが取得できることがわかります。
一方で、データソース側で権限が付与されていないdynamic_test02
ユーザでクエリを実行すると、以下のようにデータ取得に失敗することがわかります。
TDV Managerのユーザ管理でdynamicドメインのユーザ一覧に先ほどクエリ実行をしたユーザが表示されていることがわかります。
これらのユーザは元々TDV Server上のcompositeドメインやその他のドメインに存在していたユーザではなく、先ほどのクエリ実行時にdynamicドメイン内に作成されたユーザです。