Denodo Security Token の構成ファイル¶
Denodo Security Token はすべての Denodo Platform インストール環境とともに配布されます。サポートされている外部 ID プロバイダーによるシングルサインオン認証を有効にするには、以下のいずれかの方法でこのトークンを構成します。
インストールされている Solution Manager を使用して、具体的な構成のページ の手順を実行します。
Solution Manager を使用していない場合は (Denodo Express を使用しているか、AWS Maketplace または Azure Marketplace から Denodo を購入した場合)、
<DENODO_HOME>/conf/denodo-sso/SSOTokenConfiguration.properties
にある構成ファイルを編集する必要があります。以降のセクションで、構成できる設定について説明します。
一般的な設定¶
authorization.token.enabled: トークン承認機能を有効または無効にします。"false" の場合、トークンによるシングルサインオンフローは使用できません。
authorization.type: 委任認証の種類を示します。指定できる値は、 saml
、 oauth
、 openid
です。それぞれの種類に固有の構成モジュールセクションがあります。これらのモジュールは、対応するプロパティ {authorization.type}.enabled=true (たとえば、SAML 認証の場合は saml.enabled=true) によって有効にします。この対応するプロパティの値は、authorization.type の値と一致している必要があります。
authorization.token.excludeOriginal: Idp によって送信された元のトークンを最終的に生成されるトークンにアタッチするかどうかを有効または無効にします。デフォルト値は "true" であり、元のトークンは除外されます。アタッチされる元のトークンは、認証委任タイプによって異なります。
SAML:
SAMLResponse
を使用します。OAuth:
access_token
を使用します。OpenID Connect:
id_token
を使用します。
forwardedHeader.enabled (オプション): クライアントで指定されたプロトコルやアドレスを反映するために Forwarded
ヘッダーと X-Forwarded-*
ヘッダーの使用を有効または無効にします。
クライアントが HTTP プロキシやロードバランサーを経由して Denodo Security Token サーバーに接続する場合に役立ちます。
firewall.hostsAllowed (オプション): Host ヘッダーで許可するドメインをホワイトリストに追加します。Host ヘッダーインジェクションのリスクを軽減します。サーバーのホスト名またはロードバランサーホスト名を使用して構成します。
logout.redirect-url (オプション): Web ツールからログアウトする際に SSO から切断するためのリダイレクト URL を構成します。
このプロパティは、ログアウトする Web アプリケーションから ID プロバイダーシステムのログアウト URL にリダイレクトされることを意味します。この URL で、SSO からログアウトした後に別の URL にリダイレクトするクエリパラメータを使用できる場合、このパラメータの値に ${loginPage}
を指定してください。Keycloak アイデンティティプロバイダーの場合の例を以下に示します。
logout.redirect-url=http://<host>:<port>/auth/realms/<realm>/protocol/openid-connect/logout?redirect_uri=${loginPage}
この ${loginPage}
を適切な値で置き換えるには、Denodo の各 Web コンポーネントの構成ファイルで sso.loginPage
プロパティに独自のログインページを定義する必要があります。
Data Catalog (
<DENODO_HOME>/conf/data-catalog/DataCatalogBackend.properties
):http://denodo-server.acme.com:9090/denodo-data-catalog/?uri=//localhost:9999#/Design Studio (
<DENODO_HOME>/conf/design-studio/DesignStudioBackend.properties
、<SOLUTION_MANAGER_HOME>/conf/design-studio/DesignStudioBackend.properties
):http://denodo-server.acme.com:9090/denodo-design-studio/?uri=//localhost:9999/admin#/Diagnostic & Monitoring Tool (
<DENODO_HOME>/resources/apache-tomcat/webapps/diagnostic-monitoring-tool/WEB-INF/classes/ConfigurationParameters.properties
、<SOLUTION_MANAGER_HOME>/resources/apache-tomcat/webapps/diagnostic-monitoring-tool/WEB-INF/classes/ConfigurationParameters.properties
):http://denodo_solution_manager.acme.com:19090/diagnostic-monitoring-tool/Scheduler Administration Tool (
<DENODO_HOME>/conf/data-catalog/DataCatalogBackend.properties
、<SOLUTION_MANAGER_HOME>/conf/data-catalog/DataCatalogBackend.properties
):http://denodo-server.acme.com:9090/webadmin/denodo-scheduler-admin/?uri=//localhost:8000#/Solution Manager Administration Tool (
<SOLUTION_MANAGER_HOME>/conf/solution-manager-web-tool/SMAdminConfiguration.properties
):http://denodo_solution_manager.acme.com:19090/solution-manager-web-tool/注釈
リダイレクトは現在のブラウザーウィンドウで実行されます。ユーザーが SSO で複数のアプリケーションで認証されている場合、ログアウトは、ログアウトが実行されたアプリケーションでのみ実行されます。残りのアプリケーションでは、セッションはアクティブのまま保持されます。
トークン署名資格情報¶
authorization.token.signing.kid : 使用する暗号化キーの識別に使用するキー ID。サーバーの初回起動時に自動生成されます。
authorization.token.signing.auto-generated : キーストアがサーバーの初回起動時に自動生成されたかどうかを示します。
authorization.token.signing.store-file : トークンに署名するためのキーペアが格納されているキーストアファイルの場所。このキーストアファイルには、以下の前提条件があります。
1 つのキーペアのみを格納
キーペアでは RSA アルゴリズムを使用
authorization.token.signing.store-pass : キーストアのパスワード。格納されているキーペアも保護されている場合、そのキーペアでも同じパスワードを使用する必要があります。
システムによって自動生成された資格情報の簡単な例 :
authorization.token.enabled=true
authorization.token.signing.auto-generated=true
認証モジュール¶
委任できる認証の種類は、 SAML 、 OAuth 、および OpenID Connect の 3 つです。以下のセクションで、各認証モジュールを構成する方法を詳しく説明します。
SAML 2.0 の委任¶
saml.enabled : SAML 認証モジュールを有効/無効にします。
saml.use-general-signing : 「 トークン署名資格情報 」に示されている一般的なキーストアを使用して SAMLRequest に署名します。
saml.sp-entityid : SAML サービスプロバイダーのエンティティ ID を示します。
saml.idp-metadata-url : URL で表した SAML ID プロバイダーのメタデータを示します。
注釈
この URL が「https」で、このサービスの SSL 証明書が Verisign や Comodo といった既知の証明機関 (CA) によって署名されていない場合、その SSL 証明書をサーバーの トラストストア に追加する必要があります。その方法については、『Virtual DataPort 管理ガイド』の「 データソースの証明書のインポート (SSL/TLS 接続) 」のセクションを参照してください。証明書を追加しておかないと、サーバーがこのサービスに接続した際に、証明書が信頼されていないため、接続が失敗します。
saml.idp-metadata-file : ファイルで表した SAML ID プロバイダーのメタデータを示します。URL で表した SAML ID プロバイダーのメタデータにアクセスできない場合に便利です。
注釈
ID プロバイダーのメタデータ saml.idp-metadata-url または saml.idp-metadata-file では、いずれか 1 つの設定のみを使用してください。
saml.extract-role.delegate : アサーションから役割を抽出するのを避け、Virtual DataPort Server での LDAP 検索に役割を委任します。この場合、Virtual DataPort Server に グローバル LDAP 認証 が必要です。デフォルト値は "false" です。
saml.extract-role.field : 役割の抽出に使用する SAML アサーションの属性の名前。たとえば、以下のコードは、controller の役割を表す Group という名前の SAML 属性を示しています。
<Attribute Name="Group" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"> <AttributeValue>controller</AttributeValue> </Attribute>
saml.sp-BaseEntityUrl: SAML エンドポイントの構築元となるベース URL。プロトコル、サーバー、ポート、コンテキストパスを含む URL である必要があります。このプロパティを指定しない場合、最初の HTTP リクエストの値に基づいて自動的に生成されますが、明示的に値を指定することをお勧めします (たとえば、 https://internal-load-balancer.com/sso/sso-saml
)。
saml.authRequestSigningAlgorithm: Idp への認可リクエストに署名するために使用するアルゴリズムの名前を構成するオプションパラメータ。指定できる値は、 SHA1withRSA
、 MD5withRSA
、 SHA224withRSA
、 SHA256withRSA
、 SHA384withRSA
、 SHA512withRSA
です。http://www.w3.org/2000/09/xmldsig#rsa-sha1
のような値も有効です。
重要
ダウンロードする XML サービスプロバイダーのメタデータエンドポイントは /sso/sso-saml/metadata です。このメタデータは、外部 ID プロバイダーに Denodo SSO Server を登録する際に便利です。
OAuth 2.0 の委任¶
oauth.enabled : OAuth 認証モジュールを有効/無効にします。
oauth.defaultProcessUri : アプリケーションのコールバックエンドポイントの相対パス (URI)。ID プロバイダーはこの URI に承認応答を送信します。フルパス (URL) は、Idp (通常、リダイレクト URI と呼ばれる) に登録されている URL に一致する必要があります。デフォルト値は、 /sso-oauth/oauth-login
です。
oauth.redirectUri: Oauth 認可サーバーに事前登録されている完全なリダイレクト URI を指定するために使用するオプションパラメータ。Denodo Security Token サーバーがプロキシまたはロードバランサーの背後にある場合に、その URL を正しく構成するのに役立ちます。たとえば、https://internal-load-balancer.com/sso/sso-oauth/oauth-login
のように指定します。
oauth.clientId : アプリケーションの登録プロセスで生成されるクライアント ID。
oauth.clientSecret : アプリケーションの登録プロセスで生成されるクライアントシークレット。
oauth.userAuthorizationUri : 認証と同意を要求します。承認コードの取得に使用します。
oauth.accessTokenUri : アクセストークン用の承認コードを交換します。
oauth.issuer : 承認サーバーの発行者 ID。
oauth.jwkUrl : アクセストークンの真正性の検証に使用するパブリックサーバーの JSON Web Key (JWK) を取得するための URL。
oauth.scopes : OAuth 承認サーバーに要求を送信する際のコンマ区切りのスコープ。
oauth.userNameClaim (オプション): ユーザー名の取得に使用される要求。デフォルト値は sub
です。
oauth.jwsAlgorithm (オプション): JSON Web Algorithms (JWA) 仕様で定義されている暗号アルゴリズム。JWT 形式の署名入りアクセストークンを検証するために使用されます。
oauth.extract-role.delegate : アクセストークンから役割を抽出するのを避け、Virtual DataPort Server での LDAP 検索に役割を委任します。この場合、Virtual DataPort Server に グローバル LDAP 認証 が必要です。デフォルト値は "false" です。
oauth.extract-role.field : アクセストークンから役割を取得するために要求の名前が抽出されます。
OpenID Connect の委任¶
openid.enabled : OpenID Connect 認証モジュールを有効/無効にします。
openid.defaultProcessUri : アプリケーションのコールバックエンドポイントの相対パス (URI)。ID プロバイダーはこの URI に承認応答を送信します。フルパス (URL) は、Idp (通常、リダイレクト URI と呼ばれる) に登録されている URL に一致する必要があります。デフォルト値は、 /sso-openid/openid-login
です。
openid.redirectUri: 認可サーバーに事前登録されている完全なリダイレクト URI を指定するために使用するオプションパラメータ。Denodo Security Token サーバーがプロキシまたはロードバランサーの背後にある場合に、その URL を正しく構成するのに役立ちます。たとえば、https://internal-load-balancer.com/sso/sso-openid/openid-login
のように指定します。
openid.clientId : アプリケーションの登録プロセスで生成されるクライアント ID。
openid.clientSecret : アプリケーションの登録プロセスで生成されるクライアントシークレット。
openid.userAuthorizationUri : 認証と同意を要求します。承認コードの取得に使用します。
openid.accessTokenUri : アクセストークン用の承認コードを交換します。
openid.issuer : 承認サーバーの発行者 ID。
openid.jwkUrl : ID トークンの真正性の確認に使用するパブリックサーバーの JSON Web Key (JWK) を取得するための URL。
openid.scopes : 承認サーバーに要求を送信する際のコンマ区切りのスコープ。
openid.userNameClaim (オプション): ユーザー名の取得に使用される要求。デフォルト値は preferred_username
です。
openid.jwsAlgorithm (オプション): JSON Web Algorithms (JWA) 仕様で定義されている暗号アルゴリズム。JWT 形式の署名入り ID トークンを検証するために使用されます。
openid.extract-role.delegate: ID トークンからロールを抽出するのを避け、Virtual DataPort サーバーでの LDAP 検索にロールを委任します。この場合、Virtual DataPort Server に グローバル LDAP 認証 が必要です。デフォルト値は "false" です。
openid.extract-role.field : ID トークンからロールを取得するために要求の名前が抽出されます。