Denodo Security Token¶
Denodo Security Token Server は、外部の ID プロバイダー (例: Okta、PingFederate、Azure Active Directory) に認証を委任するシステムです。このシステムは認証オブジェクトを取得して有効な資格情報を生成し、その資格情報を使用して他のアプリケーションが Denodo Platform のすべてのコンポーネントにアクセスできるようにします。
さらに、このシステムは シングルサインオン 認証を実現します。シングルサインオンを使用することで、ユーザーはブラウザから Solution Manager にログインし、そのまま Denodo Platform インストール環境のあらゆるコンポーネントを開くことができます (Data Catalog や Design Studio など)。この際、パスワードの再入力を求められることはありません。
注釈
Solution Manager をインストールすると、ファイル {<SOLUTION_MANAGER_HOME>}/conf/SSOConfiguration.properties が作成されます。そして、このファイルの sso.token-enabled
プロパティの値が true でなければなりません。値を手動で変更しないでください。
アーキテクチャ¶
Denodo Security Token Server は Solution Manager の Web コンテナーで実行されるアプリケーションであり、一元化された認証サーバーを実現します。主な機能は以下のとおりです。
認証の委任: 認証を以下の外部 ID プロバイダーに委任します。
SAML
OAuth
OpenID Connect
役割の抽出: 委任された認証オブジェクトから役割を抽出します。元のアサーションまたはトークンを処理して、構成されている属性名で役割の情報を抽出できます。
一時的な資格情報の発行: 外部 ID プロバイダーによって認証されたばかりのユーザーを表す一時的な資格情報を発行します。この資格情報は Denodo 環境によって確認および検証され、その環境に対するアクセスが付与されます。
Security Token Server へアクセスできるように、Denodo Platform のコンポーネントを構成する¶
以下の状況では、Denodo Platform のコンポーネントが Denodo Security Token Server に接続する必要があります。
インストール環境のすべての Web コンポーネントで シングルサインオン を有効化する場合。この場合、ユーザーは Solution Manager にログインすれば、資格情報を再入力することなく Data Catalog や Design Studio といったコンポーネントを開くことができます。
シングルサインオンの構成は、 認証の構成 について詳しく説明しているページに従って行うことができます。
Denodo Platform インストール環境の Solution Manager から以下の 管理タスク を実行する場合。
診断と監視: サーバーの状態を確認します。その手段として、履歴データを読み込むか、リアルタイムに監視を行います。環境、クラスタ、またはサーバーを監視するために、Solution Manager のインストールで配布される Diagnostic & Monitoring Tool と、組み込みの Denodo Monitor で使用されます。
デプロイ: 環境にリビジョンをデプロイします。
ログレベルの管理: Virtual DataPort サーバーのログレベルを管理します。
自動クラウドモード を使用して環境を作成する場合、Security Token Server にアクセスできるように Solution Manager が新しいインストール環境を自動で構成します。
Denodo Platform を手動でインストールする場合、Denodo Security Token Server にアクセスできるように、インストール環境をユーザーが構成する必要があります (詳細については後述の「 Denodo Platform から Security Token Server へのコネクションの構成 」を参照)。
セキュリティ上の考慮事項¶
本番環境では、Denodo Security Token Server との通信はすべて、セキュアなチャネル (つまり SSL/TLS) 経由で行うことを強くお勧めします。生成されるトークンはセキュリティ資格情報であり、安全に送信される必要があるため、この点は重要です。このような理由から、Denodo Solution Manager および環境で使用されているすべての Denodo Platform の通信をセキュアなチャネル (つまり SSL/TLS) 経由で行う必要があります。これを有効にする方法については、「 Denodo Platform での SSL/TLS の有効化 」を参照してください。
注釈
自己署名証明書や、社内認証の SSL 証明書を使用する場合、Denodo Platform をインストールしたすべての環境で トラストストア にその証明書をインポートする必要があります。そうでない場合は Security Token Server に接続できません。
外部 ID プロバイダーに関する考慮事項¶
Denodo Security Token は、委任された認証を管理する一元的な認証システムとして機能します。このため、ID プロバイダーと Denodo Security Token との間に証明書利用者信頼を追加する必要があります。この信頼の登録には、外部プロバイダーで使用されるプロトコルに応じた一般的な構成を使用します。
SAML ID プロバイダーの場合、Denodo Security Token によって URL https://solution-manager.acme.com:19443/sso/sso-saml/metadata で公開されるサービスプロバイダー XML メタデータを使用できます。
OAuth および OpenID Connect ID のプロバイダーの場合、リダイレクト URI (認可の取得後にプロバイダーがリダイレクトする宛先の完全な URI) を追加する必要があります。Denodo Security Token のデフォルトのリダイレクト URI の形式は https://solution-manager.acme.com:19443/sso/sso-oauth/oauth-login です。OAuth の場合は末尾が /sso/sso-oauth/oauth-login で、OpenID Connect の場合は /sso/sso-openid/openid-login です。
注釈
各構成の ID プロバイダーの詳細を確認してください。
Denodo Platform から Security Token Server へのコネクションの構成¶
Denodo Platform をインストールしたすべての環境で、以下の手順に従って、インストール環境のコンポーネントが Denodo Security Token Server にアクセスできるようにします。なお、Denodo Security Token Server は Solution Manager の一部です。
Denodo Platform サーバーのコンピュータと、Solution Manager のコンピュータの時刻が同期していることを確認します。Windows の場合、[時刻を同期する] オプションが有効であることを確認してください。Linux の場合、 ネットワークタイムプロトコル (NTP) サービスが有効であることを確認してください。
コンピュータの時刻はできる限り同期させる必要があります。言い換えれば、双方のコンピュータの日時を合わせる必要があります。時刻が同期していない場合、Solution Manager と Denodo Platform コンポーネントの間のシングルサインオンプロセスに失敗する可能性があります。この場合、「Expired JWT」のエラーが出ます。
Denodo Platform をインストールしたすべての環境で、Security Token Server へのコネクションをセットアップします。この作業には GUI またはコマンドラインを使用できます。
GUI を使用する場合、インストール環境で Denodo Platform Control Center を開き (
<DENODO_HOME>/bin/denodo_platform
を開く)、[Configure] をクリックして次の内容を入力します。Host: Solution Manager のホスト名。たとえば、
solution-manager.acme.com
を入力します。Denodo Security Token は Solution Manager 上で実行されます。Port: Solution Manager の Web コンテナーで HTTPS が有効な場合、
19443
を入力します。無効の場合は19090
を入力します。Web コンテナーのポート番号を入力する理由は、Denodo Security Token Server が Solution Manager の Web コンテナーで実行されるためです。Uses SSL/TLS: Solution Manager の Web コンテナーで HTTPS が有効な場合にチェックします。
Enable Denodo Single Sign On for web applications: Denodo Security Token を使用したシングルサインオン認証を許可する場合にチェックします。
コマンドラインから作業する場合は、
<DENODO_HOME>/conf/SSOConfiguration.properties
を編集し、以下のプロパティを設定します。
sso.url: Denodo Security Token の URL。形式は、{スキーマ}://{ホスト名}:{ポート} です。これは通常、Denodo Security Token Server がデフォルトでデプロイされる Solution Manager の Web コンテナーの URL です。
たとえば、
https://solution-manager.acme.com:19443
と入力します。sso.token-enabled: Virtual DataPort (インストールされている場合) に対して Denodo Security Token を有効にします。
sso.enabled: 対象のインストール環境にデプロイされている Web アプリケーションに対して Denodo Security Token シングルサインオンを有効にします。
sso.url=https://solution-manager.acme.com:19443 sso.token-enabled=true sso.enabled=true
これらの変更を適用するには、関連するサーバーを再起動してください。
注釈
この Denodo Platform は Solution Manager の Web コンテナーポートにアクセスできる必要があります (HTTPS が有効な場合は 19443 番、無効な場合は 19090 番)。確認するには、Denodo Platform マシンから次のコマンドを実行してください。 telnet <Solution Manager Host> <Web Container Port>
公開キーのリクエストに対する HTTP タイムアウトおよび制限の構成¶
トークン署名検証を行うために URL によって公開署名キーをリクエストされた場合、低速または飽和ネットワークが問題になる可能性があります。この場合、公開キーのリクエストに対する接続タイムアウトおよび制限を構成することができます。通常、問題 (低速コネクションでタイムアウトが発生するなど) がなければ何もする必要はありません。該当する構成プロパティが存在しない場合、デフォルト値が使用されます。
SET コマンドを使用して以下に示す構成プロパティを変更することにより、Virtual DataPort サーバーで公開キーを取得するために開く HTTP コネクションの挙動を定義できます。
com.denodo.vdb.security.DndTokenAuthenticator.RemoteJWKSet.httpConnectionTimeout
:HTTP 接続タイムアウト (ミリ秒単位)。0 は無限大を表します。デフォルト値は 4000 です。com.denodo.vdb.security.DndTokenAuthenticator.RemoteJWKSet.httpReadTimeout
:HTTP 読み取りタイムアウト (ミリ秒単位)。0 は無限大を表します。デフォルト値は 4000 です。com.denodo.vdb.security.DndTokenAuthenticator.RemoteJWKSet.httpSizeLimit
:HTTP エンティティサイズ制限 (バイト単位)。0 は無限大を表します。デフォルト値は 51200 です。com.denodo.vdb.security.DndTokenAuthenticator.JWKSetCache.expirationTime
:キャッシュされた JWK set が期限切れになるまでの有効期間。負の値は期限切れにならないことを意味します。デフォルト値は 300 です。
Solution Manager/Denodo Platform のインストール環境のコンポーネントで公開キーを取得するために開く HTTP コネクションの挙動を定義するために、手動で <SOLUTION_MANAGER_HOME>/conf/SSOConfiguration.properties
と <DENODO_HOME>/conf/SSOConfiguration.properties
を編集することもできます。
sso.jwt.jwk.httpConnectionTimeout
:HTTP 接続タイムアウト (ミリ秒単位)。0 は無限大を表します。デフォルト値は 2000 です。sso.jwt.jwk.httpReadTimeout
:HTTP 読み取りタイムアウト (ミリ秒単位)。0 は無限大を表します。デフォルト値は 2000 です。sso.jwt.jwk.httpSizeLimit
:HTTP エンティティサイズ制限 (バイト単位)。0 は無限大を表します。デフォルト値は 51200 です。sso.jwt.jwk.expirationTime
:キャッシュされた JWK set が期限切れになるまでの有効期間。負の値は期限切れにならないことを意味します。デフォルト値は 300 です。
ロードバランサーの考慮事項¶
Solution Manager がロードバランサーの背後にある場合、インストール環境から外部のバランサー URL へのコネクションでエラーが発生する可能性があります。この場合、公開キーのリクエスト用に内部 URL を構成できます。
ロードバランサーの外部 URL と内部 URL を定義して、Solution Manager インストール環境から公開署名キーを取得し、公開キーを取得するために、手動でファイル <SOLUTION_MANAGER_HOME>/conf/SSOConfiguration.properties
を編集します。
sso.url
:認証のリダイレクトに使用するロードバランサーの外部 URL。sso.url=https://load-balancer.com
など。sso.jwt.jwk.sourceUrl
:公開署名キーを取得するため、およびロードバランサーの背後で発生するコネクションの問題を回避するための内部 URL。sso.jwt.jwk.sourceUrl=https://localhost:19443/sso/jwks.json
など。
組み込みの Virtual DataPort サーバーによって公開署名キーを取得するために同じ内部 URL を定義するために、手動でファイル <SOLUTION_MANAGER_HOME>/conf/vdp/VDBConfiguration.properties
を編集します。
com.denodo.vdb.security.DndTokenAuthenticator.jwkSourceUrl
:公開署名キーを取得するため、およびロードバランサーの背後で発生するコネクションの問題を回避するための内部 URL。
上記のシナリオの別の考慮事項を確認するには、「 ロードバランサーを経由するアクセスの構成 」を参照してください。
認証資格情報¶
Solution Manager は、Denodo Platform の他のコンポーネントとの通信を保護するために署名資格情報を使用します。カスタムの RSA 暗号化キー、またはシステムによって自動生成される暗号化キーを使用するように Solution Manager を構成できます。
Solution Manager の資格情報を管理するには、[Configuration] メニュー > [Authentication] をクリックします。 認証資格情報 の構成は、このタブの上部で行います。
[Autogenerated] (デフォルトのオプション) を選択した場合、Solution Manager は、自動生成された秘密キーを使用します。
[Custom] を選択した場合、以下を指定する必要があります。
KeyStore file: 以下の前提条件を満たすキーストアファイル。
1 つのキーペアのみが含まれる
キーペアが RSA アルゴリズムを使用している
KeyStore password: キーストアを保護するパスワード。キーペアも保護する場合は、同じパスワードを使用する必要があります。
注釈
資格情報を変更した場合、一部の自動化タスクが影響を受ける可能性があります。その場合は、サーバーを再起動してください。
シングルサインオンの処理順序¶
Web アプリケーションの初期認証フローは、大まかに説明すると次のようになります。
この後、ユーザーが次に別の Web アプリケーションにアクセスする場合、資格情報を使用してまたログインする必要はありません。