クロスプラットフォーム版
Version 26.1.9515
Version 26.1.9515
クロスプラットフォーム版
CData Arc のクロスプラットフォーム版には組み込みEclipse Jetty Web サーバーが含まれ、外部サーバー構成なしでArc を実行できます。さらに、インストールにはApache Tomcat、Eclipse Jetty、またはIBM WebSphere Liberty などのJava サーブレットコンテナにデプロイ可能なWAR ファイルが含まれています。
Arc の使用には、Java 17 またはそれ以降のバージョンがマシンにインストールされている必要があります。外部Java サーブレットコンテナへのデプロイにはサーブレット3.0(Jetty 8+、Tomcat 7+、WebSphere Liberty 8.5+、など)が必要です。
Note:Arc のデプロイ方法に関わらず、AppDirectory 内のファイルおよびフォルダは、アプリケーションを実行するユーザーによって読み取り / 書き込み可能である必要があります。Java 版のセットアップに同梱されるサービスインストーラーは、cdataarc を実行しているユーザーとして使用します。
アプリケーションが別のユーザーで以前実行されていて、cdataarc ユーザーがアプリケーションを実行するために必要な権限を復元したい場合は、以下のようなコマンドを使用してください:
sudo chown -R cdataarc:cdataarc /opt/arc
Windows
Windows の場合、Arc はサービスとしてデフォルトでインストールされます。アプリケーションにアクセスするには、まず、サービスが起動していることを確認する必要があります。サービスが起動したら、Web ブラウザを開いてURL にhttp://localhost:8080/ を入力すると、Arc 管理コンソールにアクセスできます。
また、サービスを使用せずにjava コマンドを介してアプリケーションを実行することもできます。CData はサービスの利用を推奨していますが、特定の構成ではこちらの方法が有効です。
サービスの起動と停止
サービスの開始と停止は、次のいずれかの方法で行います:
-
スタートメニューのショートカット(推奨)
-
コマンドプロンプトコマンド
スタートメニューのショートカット
Arc インストーラーは、アプリケーションを簡単に使用できるスタートメニューのショートカットを作成します。これらのショートカットにアクセスするには、スタートメニューを開いてCData Arc フォルダを展開します。以下のショートカットが利用可能です:
-
CData Arc 管理コンソールを起動:デフォルトのWeb ブラウザでWeb ブラウザウィンドウを開き、管理コンソールURL http://localhost:8080/ にアクセスします。サービスが起動していない場合、Web ブラウザはエラーを返します。
-
CData Arc を起動:Arc サービスを開始します。デフォルトでは、このサービスはWindows 起動時に実行されるため、アプリケーションを実行するたびにこのコマンドを実行する必要はありません。
-
CData Arc を停止:Arc サービスを停止します。このアクションは、Arc のアップグレード時に必要です。
サービス管理コンソール
サービス管理コンソールを開くには、スタートメニューを開きサービスと入力します。表示されたサービスアプリケーションを選択します。
CData Arc というサービスが表示されるまでスクロールダウンします。サービスが起動している場合は、状態カラムに実行中と表示されます。サービスを右クリックすると、サービスを開始、停止、再開するオプションにアクセスできます。
コマンドプロンプト
高度なユーザーは、Windows のコマンドプロンプトを使用して、サービスに対して手動でコマンドを発行することができます。コマンドプロンプトを開き、ディレクトリをインストールフォルダに変更します(デフォルトはC:\Program Files\CData\CData Arc です)。
Note:Microsoft PowerShell ウィンドウを使用してこれらのコマンドを発行することもできますが、構文が若干異なります。PowerShell を使用する際は、コマンドを適宜修正してください。
Arc サービスを開始するには、次のコマンドを実行します:
arc.exe -start
サービスを再開または停止するには、次のコマンドを実行します:
arc.exe --restart --ServiceName "CData Arc"
arc.exe --stop --ServiceName "CData Arc"
サービスを使わずに起動
サービスを開始せずにArc を実行するには、インストールフォルダでコマンドプロンプトを開きます。アプリケーションを開始するには、次のコマンドを実行します:
java -jar arc.jar
Linux
Arc を任意の場所にインストールしたら、Arc をサービスとして実行するか、アプリケーションを手動で実行することができます。CData は、重要なアプリケーションにArc を使用する場合は、サービスの使用をお勧めします。
Arc をサービスとして実行
Arc をサービスとして実行すると、アプリケーションをユーザープロセスから独立して実行し、再起動時に自動的に再起動することができます。これは、重要なアプリケーションに推奨される方法です。
CData では、Linux 上でArc アプリケーションを管理するデーモンの作成を推奨しています。インストールパッケージに含まれるスクリプトで、これを自動的に行うことができます。必要に応じて、手動でデーモンを作成することも可能です。
システムが systemd デーモンマネージャーを使用している場合に、Arc デーモンを設定する最も安全な方法は、インストールパッケージに含まれているスクリプトを実行することです:
bash ./service.sh
このスクリプトは、arc.service という名前のデーモンを作成します。その後、systemctl を使用してデーモンを管理できます:
systemctl enable arc
systemctl start arc
スタンドアロンアプリケーションの実行
サービスを作成せずにArc を開始するには、ターミナルでインストールディレクトリのarc.jar ファイルを開き、次のように設定ファイルを引数として指定します:
java -jar arc.jar
組み込みJetty サーバーの構成
Arc は、あらゆる環境ですぐに動作するようあらかじめ設定されています。ただし、CData Arc インストールディレクトリにarc.properties ファイルを生成することで、Arc で公開されているデータへのアクセス方法をカスタマイズできます(Windows の場合、インストールディレクトリのデフォルトはC:\Program Files\CData\CData Arc です)。
すべてのarc.properties 設定オプションについて詳しくは、arc.properties Configuration を参照してください。
Tip:これらの設定オプションは、実装内のすべての.properties ファイルで利用可能です。
arc.properties ファイルの生成
組み込みJetty サーバーをカスタマイズする前に、arc.properties ファイルを作成する必要があります。arc.jar があるインストールディレクトリで以下のコマンドを実行します:
java -jar arc.jar -GenerateProperties
これで、インストールディレクトリにarc.properties ファイルが作成されます。このファイルには、ポートを変更したりTLS / SSL を有効化したりするために変更できるパラメータが含まれています。
Note:一度このファイルを生成すると、Arc へのアップグレードでは上書きされません。
ポートの変更
組み込みサーバーがリッスンするポートを変更するには:
-
InstallationDirectoryにあるarc.propertiesファイルを見つけ、テキストエディタで開きます。 -
ポートが設定されている次の行を探します:
cdata.http.port=8080 -
この値を、希望するポート番号に変更します。
TLS/SSL の有効化
TLS / SSL 接続(HTTPS)を有効化する場合にも、以下のように、 InstallationDirectory のarc.properties ファイルを修正します:
-
cdata.tls.keyStoreType設定を、使用するキーストアのタイプに設定します。有効な値には、jks、pkcs12、およびjceks が含まれます。 -
cdata.tls.keyStorePath設定を、使用するキーストアのパスに設定します。${cdata.home} は、InstallationDirectoryを参照するために使用される場合があることに注意してください。 -
cdata.tls.keyStorePassword設定を、キーストアのパスワードに設定します。 -
cdata.tls.port設定を、サーバーをホストするために使用するポートに設定します。 -
(オプション)
cdata.http.port設定を、プレーンテキスト接続を無効にするために空の文字列に設定します。
最終的にはこのようになります:
;; HTTP
cdata.http.port=
;; TLS
cdata.tls.port=8443
cdata.tls.keyStoreType=PKCS12
cdata.tls.keyStorePath=${cdata.home}/mycertificate.pfx
cdata.tls.keyStorePassword=mypassword
Note:Arc で設定するために外部秘密鍵を取得する場合は、必ず証明書の所有者をArc (cdataarc:cdataarc) をホストするために使用されるサービスアカウントに変更してください。
Arc を別の.properties ファイルに指定する
-config パラメータを使用して、Arc をデフォルトのarc.properties ファイル以外の設定ファイルに指定します。例えば、次のコマンドを実行すると、Arc はtest.properties ファイルを検索します:
java -jar arc.jar -config test
Jetty XML ファイルの生成
ほとんどのデプロイメントで、arc.properties ファイルは、組み込みJetty サーバーに必要なすべての設定オプションを提供します。ただし、より複雑なデプロイメントが必要な場合は、Jetty XML ファイルを生成し、そこからさらに修正を加えることができます。このファイルを生成するには、arc.jar があるArc インストールディレクトリで以下のコマンドを実行します:
java -jar arc.jar -GenerateXML
コマンドが完了すると、webapp フォルダにarc.xml 設定ファイルが表示されます。そのフォルダに保存されている限り、アプリケーションの起動に使用されます。
サーバーの起動と停止
service.sh スクリプトを使用してArc サービスをセットアップする場合は、サービスとして実行を参照してください。それ以外の場合は、インプロセスで実行セクションが該当します。
インプロセスで実行
セットアップ中にアプリケーションダウンロードから抽出されるarc.jar ファイルを実行して、組み込みJetty サーバーを起動します。このファイルを実行してサーバーを起動するには、以下に示すような標準のJava 構文を使用できます:
java -jar arc.jar
サーバーを停止するには、このコマンドに-stop パラメータを渡します:
java -jar arc.jar -stop
サービスとして実行
サービス名としてarc を参照して、標準のシステムサービスコマンドを使用してArc サービスを操作できます。
サービスを起動するには、次のコマンドを送信します:
systemctl start arc
サービスを停止するには、次のコマンドを送信します:
systemctl stop arc
サービスを再開するには、次のコマンドを送信します:
systemctl restart arc
LDAP 認証の設定
次の手順では、組み込みJetty Web サーバーを使用する場合に、LDAP を使用してユーザーを認証するようにArc を設定します。
arc.properties の設定
まだ存在しない場合は、次のコマンドを使用してデフォルトのarc.properties ファイルを生成します:
java -jar arc.jar -GenerateProperties
次の必須設定は、組み込みJetty サーバーにLDAP を認証に使用するよう指示します:
cdata.loginService.ldap.enabled=true
他のセクションと同じように、ファイル内でこれをセクション分けすることもできます:
;; LDAP
cdata.loginService.ldap.enabled=true
CData Arc に必要な最小限の設定に加え、ご利用のLDAP サーバーに必要な追加設定を挿入します。Arc に必要な最小限の設定は次のとおりです:
cdata.loginService.ldap.hostname
cdata.loginService.ldap.bindDn
cdata.loginService.ldap.bindPassword
利用可能な設定のリストは以下のとおりです:
cdata.loginService.ldap.userIdAttribute
cdata.loginService.ldap.debug
cdata.loginService.ldap.forceBindingLogin
cdata.loginService.ldap.bindPassword
cdata.loginService.ldap.roleMemberAttribute
cdata.loginService.ldap.useLdaps
cdata.loginService.ldap.roleBaseDn
cdata.loginService.ldap.bindDn
cdata.loginService.ldap.userPasswordAttribute
cdata.loginService.ldap.hostname
cdata.loginService.ldap.userRdnAttribute
cdata.loginService.ldap.roleObjectClass
cdata.loginService.ldap.port
cdata.loginService.ldap.authenticationMethod
cdata.loginService.ldap.userBaseDn
cdata.loginService.ldap.contextFactory
cdata.loginService.ldap.userObjectClass
cdata.loginService.ldap.roleNameAttribute
以下はarc.properties の完全なLDAP セクションの例です:
;; LDAP
cdata.loginService.ldap.enabled=true
cdata.loginService.ldap.bindDn="CN=ldapuser,DC=example,DC=org"
cdata.loginService.ldap.hostname="127.0.0.1"
cdata.loginService.ldap.bindPassword="Adminpassword1"
cdata.loginService.ldap.port="1389"
cdata.loginService.ldap.debug=true
cdata.loginService.ldap.authenticationMethod="simple"
cdata.loginService.ldap.userBaseDn="DC=example,DC=org"
cdata.loginService.ldap.userRdnAttribute="cn"
cdata.loginService.ldap.userPasswordAttribute="userPassword"
cdata.loginService.ldap.forceBindingLogin="true"
cdata.loginService.ldap.roleBaseDn="DC=example,DC=org"
cdata.loginService.ldap.roleNameAttribute="cn"
cdata.loginService.ldap.roleMemberAttribute="member"
cdata.loginService.ldap.useLdaps="false"
Arc でLDAP ユーザーを作成する
ユーザーがLDAP サーバー経由でArc にログインできるようにするには、各LDAP ユーザーをArc に追加する必要があります。これにより、Arc は設定済みのLDAP サーバーでログインしようとしているユーザーを相互参照できるようになります。各ユーザーを作成するには、以下の手順に従います(ユーザー管理の詳細については、ユーザー管理とロールを参照してください):
- Arc を起動し、Arc 管理者ユーザーとしてログインします。
- Arc へのアクセスが必要なすべてのLDAP ユーザーを作成します。ナビゲーションバーの歯車アイコンをクリックして、ユーザーを選択します。Arc ユーザーはLDAP ユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、Arc でも同じユーザー名を使用する必要があります。
すべてのユーザーを追加したら、アプリケーションを停止できます。
設定をテストする
必要なLDAP 設定を記載したarc.properties ファイルを作成し、LDAP ユーザーをArc に追加し、LDAP サーバーの要件に基づいて構成が正しいことを確認したら、機能をテストすることができます。
java -jar arc.jar を使用してArc を起動するか、Arc サービスを起動します。ログイン画面が表示されたら、LDAP ユーザーの1つを使ってログインを試みます。LDAP サーバーにあるユーザー名とパスワードを入力します(これはArc のユーザーセクションに入力したものと同じである必要があります)。
ログインプロセスでは、ログインしたユーザーをArc で設定されたユーザーと照合し、次にLDAP サーバーと照合して、ユーザーが存在し、アプリケーションへのアクセスが許可されていることを確認します。設定が成功した場合、そのユーザーとしてアプリケーションにログインします。
Tomcat での設定
WAR ファイルの配布
Tomcat にWAR ファイルを配布するには2つのオプションがあります。
-
webappsフォルダにWAR ファイルをコピーする。 -
Tomcat の管理コンソール内でWAR ファイルの配布を行う。Apache Tomcat のドキュメントには、この方法のさらに詳しい説明があります。お使いのTomcat のバージョンのドキュメントを参照してください。
WAR ファイルがTomcat のファイルアップロードで許可されているデフォルトの最大サイズを超える可能性があります。デプロイメント中のエラーを解決するために、Manager アプリケーションのweb.xml ファイルを変更して、より大きなファイルを許可することができます。Tomcat の設定に応じて、このファイルは/usr/share/tomcat7-admin/manager/WEB-INF、または類似ディレクトリにある場合があります。このファイルでは、許容される最大ファイルサイズ(バイト単位)を変更できます。例えば、200MB のWAR ファイルのデプロイメントを許容するには、次の値を変更して許容される最大ファイルサイズを変更します:
<multipart-config>
<!-- 200 MB max -->
<max-file-size>209715200</max-file-size>
<max-request-size>209715200</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
Java 認証・承認サービス(JAAS)の設定
Arc がアプリケーション内で動的にユーザーを管理できるようにするには、次のガイドで説明するようにJAAS を設定する必要があります。このガイドでは、Tomcat の構成を制御し、コンテキストのオーバーライドを定義するためにarc.xml を使用します。CData は、Tomcat の構成を制御するためにserver.xml の代わりにarc.xml を使用することを推奨しています。また、APP_DIRECTORY やAPP_DB などのアプリケーションコンテキストをオーバーライドするものは、JAASRealm モジュールが定義されているarc.xml に移動することを推奨します。
Note:これはArc でTomcat を設定する際に必要な最初のステップです。
ログインモジュールの作成
$CATALINA_BASE/conf/ フォルダに、jaas.config という名前のJAAS コンフィギュレーションファイルを作成します。
標準認証を使用するには、jaas.config に次の内容を含めます:
Arc {
arc.LoginModule required;
};
Note:LDAP を使用する場合は、標準ログインモジュールのセットアップを続行します。完了したら、LDAP を使用したユーザー認証の手順に従います。
JAASRealm モジュールの作成(または変更)
-
$CATALINA_BASE/conf/Catalina/localhost/にarc.xmlファイルがあるかどうかを確認します。ある場合は、arc.xmlを編集して以下のXML コンテンツブロックを追加します。パスにarc.xmlが存在しない場合は、作成し、以下のXML コンテンツブロックを追加する必要があります。arc.xmlには、この内容のみを含めるようにしてください。<Context> <Realm className="org.apache.catalina.realm.JAASRealm" appName="Arc" userClassNames="arc.SimplePrincipal" roleClassNames="arc.GroupPrincipal" /> </Context>Note:Tomcat インスタンスの構成によっては、このパスが若干異なる場合があります。この例では、
Catalinaはエンジン名、localhostはserver.xmlで定義されたホスト名を示します。 -
Tomcat サーバーのコンフィギュレーションファイル
server.xmlの<Host/>要素を、以下のようにcopyXML属性をtrue に設定して更新します:<Host name="localhost" appBase="webapps" unpackWARS="true" autoDeploy="true" copyXML="true"> ... </Host>Note:アプリケーション固有のコンテキストが
server.xmlに存在する場合は、arc.xmlよりも優先されます。CData は、コンテキストのオーバーライドにはarc.xmlよりもserver.xmlを使用することを推奨しています。次に例を示します:<Context path="Arc"> ... </Context>
ログインモジュールの表示
コンフィギュレーションを表示するには、Java 仮想マシン(JVM)がログインモジュール(jaas.config)に誘導される必要があります。$CATALINA_BASE/conf/catalina.properties ファイルに次の行を追加して、JVM のjava.security.auth.login.config システムプロパティをjaas.config ファイルのパスに設定します:
java.security.auth.login.config=${catalina.base}/conf/jaas.config
LDAP を使用してユーザーを認証する
Tomcat でLDAP を使用するように Arc を構成する前に、Java 認証・承認サービス(JAAS)の設定の手順に従って、管理者ユーザーを作成できるようにします。管理者ユーザーは、LDAP ユーザーをArc に追加する前に必要です。ログインモジュールを設定し、管理者ユーザーとしてArc に正常にログインできるようになったら、次の手順に従ってLDAP サポートを設定します。
-
監理者ユーザーとしてArc にログインします。Arc へのアクセスが必要なすべてのLDAP ユーザーを作成するには、ナビゲーションバーにある設定歯車アイコンをクリックし、ユーザーを選択します。Arc ユーザーはLDAP ユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、Arc でも同じユーザー名を使用する必要があります。 -
ログインモジュールの作成で作成した
$CATALINA_BASE/conf/jaas.configファイルを、LDAP サーバーで動作するように編集します。jaas.configにいくつかの設定オプションを追加する必要があります。a.
com.sun.security.auth.module.LdapLoginModule REQUIREDを追加して、LDAP ログインモジュールが必須であることを確認します。また、以前に作成したログインモジュールをオプションにする必要もあります。これを行うには、arc.LoginModule optional;を設定します。b.必要なLDAP モジュールの設定オプションを追加します。少なくとも、次のオプションが必要です:
userProvider、authIdentity、userFilter、およびuseSSL。これらのオプションに指定する値は、LDAP サーバーおよび要件に固有のものです。サーバー管理者および / またはLDAP のマニュアルを参照のうえ、値を決定してください。以下は、その設定例です。arc.loginModuleがoptionalに、com.sun.security.auth.module.LdapLoginModuleがREQUIREDに設定されていることに注意してください。Arc { com.sun.security.auth.module.LdapLoginModule REQUIRED userProvider="ldap://openldap:1389/ou=users,dc=example,dc=org" authIdentity="CN={USERNAME},OU=users,DC=example,DC=org" userFilter="(cn={USERNAME})" useSSL=false; debug=false; arc.LoginModule optional; };Note:値に特別なトークン
{USERNAME}が含まれている場合、そのトークンはログイン時に指定されたユーザー名の値に置き換えられます。
これらの手順を完了すると、LDAP ユーザーはArc にログインできるようになります。
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、以下のように、適切な場所にあるデータディレクトリへの読み / 書きのアクセス権限を許可します:
-
Windows:
C:\ProgramData\CData\Arc\ -
Linux:
~/cdata/arc
Tomcat サーバーを再起動して、変更を反映します。これでアプリケーションにログインすることができます。
WebSphere Liberty での設定
Websphere Liberty でArc を設定するには、次の手順に従います。
WebSphere Liberty でArc アプリケーションを作成
Note:このガイドでは、Liberty でのArc の基本的なインストールについて説明します。よりカスタマイズされたLiberty インストールが必要な場合は、社内で追加の設定やオプションが必要かどうかを確認してください。
-
Download Liberty from Open Liberty or WebSphere Application Server Liberty 24.0.0.12. Arc expects the Web Profile 8 package.
- Run this command to create a server named
arc:- Windows:
.\bin\server.bat create arc - Linux:
./bin/server create arc
- Windows:
-
Copy the arc.war file to the
./usr/servers/arc/appsdirectory. -
If necessary, change the HTTP and HTTPS ports in the
httpEndpointelement in./usr/servers/arc/server.xml(a sample server.xml file is below). -
Make any additional configuration application updates by editing the server.xml file.
- Run this command to start the server:
- Windows:
.\bin\server.bat start arc - Linux:
./bin/server start arc
- Windows:
Sample server.xml file
The following is a sample server.xml file that contains settings that Arc needs to run in Liberty. It also contains the settings required for JAAS configuration. The following sections provide more detail on portions of this file.
<?xml version="1.0" encoding="UTF-8"?>
<server description="Arc server">
<!-- Enable features -->
<featureManager>
<feature>webProfile-8.0</feature>
</featureManager>
<!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
<httpEndpoint id="defaultHttpEndpoint" host="localhost" httpPort="9080" httpsPort="9443" />
<!-- Automatically expand WAR files -->
<applicationManager autoExpand="true"/>
<!-- Default SSL configuration enables trust for default certificates from the Java runtime -->
<ssl id="defaultSSLConfig" trustDefaultCerts="true" />
<webContainer AllowQueryParamWithNoEqual="true" />
<webApplication id="arc-app" contextRoot="/arc" location="arc.war">
<!-- Map role to group -->
<application-bnd>
<security-role name="cdata_admin">
<group name="cdata_admin" access-id="group:defaultWIMFileBasedRealm/cn=cdata_admin,o=defaultWIMFileBasedRealm" />
</security-role>
<security-role name="cdata_standard">
<group name="cdata_standard" access-id="group:defaultWIMFileBasedRealm/cn=cdata_standard,o=defaultWIMFileBasedRealm" />
</security-role>
<security-role name="cdata_support">
<group name="cdata_support" access-id="group:defaultWIMFileBasedRealm/cn=cdata_support,o=defaultWIMFileBasedRealm" />
</security-role>
<security-role name="cdata_user">
<special-subject type="ALL_AUTHENTICATED_USERS" />
</security-role>
</application-bnd>
</webApplication>
<jaasLoginModule id="arcLoginModule" className="arc.LoginModule" controlFlag="REQUIRED" classProviderRef="arc-app">
<options isWebSphere="true" />
</jaasLoginModule>
<jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND" loginModuleRef="arcLoginModule, hashtable, userNameAndPassword" />
<!-- logging is optional -->
<logging traceSpecification="com.ibm.ws.security.appbnd.*=all:com.ibm.ws.security.authorization.*=all:com.ibm.wsspi.security.authorization.*=all:com.ibm.ws.security.jaas.*=all:com.ibm.ws.security.auth.context.*=all:com.ibm.ws.webcontainer.*=all:arc.*=all:rssbus.*=all"
consoleLogLevel="INFO"
logDirectory="${server.config.dir}/logs"
messageFileName="messages.log"
traceFileName="trace.log"
hideMessageIDs="true"/>
</server>
Java 認証・承認サービス(JAAS)の設定
The following settings in server.xml configure the JAAS and enable Arc to manage users dynamically in the Liberty application server. If you copied the server.xml sample file above, these elements are already present. Otherwise, follow these steps:
- Configure the Arc login module for JAAS authentication by adding the following elements to server.xml:
<jaasLoginModule id="arcLoginModule" className="arc.LoginModule" controlFlag="REQUIRED" classProviderRef="arc-app"> <options isWebSphere="true" /> </jaasLoginModule> <jaasLoginContextEntry id="system.WEB_INBOUND" name="system.WEB_INBOUND" loginModuleRef="arcLoginModule, hashtable, userNameAndPassword" /> - Configure user groups and role mappings in the
webApplicationelement of server.xml.<webApplication id="arc-app" contextRoot="/arc" location="arc.war"> <!-- Map role to group --> <application-bnd> <security-role name="cdata_admin"> <group name="cdata_admin" access-id="group:defaultWIMFileBasedRealm/cn=cdata_admin,o=defaultWIMFileBasedRealm" /> </security-role> <security-role name="cdata_standard"> <group name="cdata_standard" access-id="group:defaultWIMFileBasedRealm/cn=cdata_standard,o=defaultWIMFileBasedRealm" /> </security-role> <security-role name="cdata_support"> <group name="cdata_support" access-id="group:defaultWIMFileBasedRealm/cn=cdata_support,o=defaultWIMFileBasedRealm" /> </security-role> <security-role name="cdata_user"> <special-subject type="ALL_AUTHENTICATED_USERS" /> </security-role> </application-bnd> </webApplication>The
application-bndsection maps Arc’s security roles to user groups, controlling what permissions different users have in the application. Eachsecurity-roleelement defines one of Arc’s permission levels and associates it with a corresponding user group. Make sure you have asecurity-roleelement for cdata_admin, cdata_standard, cdata_support, and cdata_user. - Enable query parameters without equal signs (=) by adding the
AllowQueryParamWithNoEqualproperty to thewebContainerelement. This setting allows Arc to properly handle certain URL query parameters that don’t include an equal sign.<webContainer AllowQueryParamWithNoEqual="true" /> - Liberty を再起動します。
これでArc にアクセスでき、Arc ログインモジュールで使用できるようになりました。これにより、アプリケーションレベルでユーザーを確実に管理できます。LDAP を設定するには、次のセクションを参照してください。
LDAP を使用したユーザー認証
Liberty でLDAP を使用するようにArcを設定する前に、Java 認証・承認サービス(JAAS)の設定の手順に従って、ローカル管理者ユーザーを作成してください。LDAP ユーザーをArc に追加するには、管理者ユーザーが必要です。ログインモジュールを設定し、管理者ユーザーとしてArc に正常にログインできるようになったら、次の手順に従ってLDAP サポートを設定します。
-
Edit server.xml to add the LDAP repository to Liberty.
- In the
featureManagerelement, add a new feature:ldapRegistry-3.0.<!-- Enable features --> <featureManager> <feature>webProfile-8.0</feature> <feature>ldapRegistry-3.0</feature> </featureManager> - Add the details for your LDAP registry after the
webContainerelement.<!-- A LDAP registry sample connects to Microsoft Active Directory. The default activedFilters is used here. For more ldap types: https://www.openliberty.io/docs/latest/reference/config/ldapRegistry.html --> <ldapRegistry id="arcLdapRegistry" realm="testADRealm" host="192.168.0.122" port="389" ignoreCase="true" baseDN="CN=Users,DC=ka,DC=com" bindAuthMechanism="simple" bindDN="ka\nancyw" bindPassword ="xA123456" ldapType="Microsoft Active Directory"> </ldapRegistry> - Change the
arc.LoginModulecontrol flag toOPTIONAL.<jaasLoginModule id="arcLoginModule" className="arc.LoginModule" controlFlag="OPTIONAL" classProviderRef="arc-app"> <options isWebSphere="true" /> </jaasLoginModule>
- In the
-
ローカル監理者ユーザーとしてArc にログインします。Arc でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。Arc ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、Arc でも同じユーザー名を使用する必要があります。 -
変更を保存し、Liberty を再起動してプロセスを完了します。正常に構成されると、Arc にサインインするユーザーはLDAP 経由で認証されます。
デバッグ設定
The sample server.xml file includes a comprehensive logging configuration that captures detailed trace information for security, authentication, web container operations, and Arc-specific components. This can be useful if you are having configuration issues with LDAP or other settings.
<!-- logging is optional -->
<logging traceSpecification="com.ibm.ws.security.appbnd.*=all:com.ibm.ws.security.authorization.*=all:com.ibm.wsspi.security.authorization.*=all:com.ibm.ws.security.jaas.*=all:com.ibm.ws.security.auth.context.*=all:com.ibm.ws.webcontainer.*=all:arc.*=all:rssbus.*=all"
consoleLogLevel="INFO"
logDirectory="${server.config.dir}/logs"
messageFileName="messages.log"
traceFileName="trace.log"
hideMessageIDs="true"/>
The traceSpecification attribute is set to all for several key component groups including security bindings, authorization, JAAS authentication, web container operations, and all Arc and RSSBus modules. This configuration provides thorough diagnostic information useful for troubleshooting authentication issues, authorization problems, and application-specific errors. The logs are written to the ${server.config.dir}/logs directory with separate files for messages (messages.log) and trace data (trace.log).
For production environments, you might want to reduce the logging verbosity to improve performance and minimize log file growth. To do this, change specific trace specifications from all to info or remove components you do not need to monitor. For example, if you are not troubleshooting security issues, you could simplify the configuration to traceSpecification="arc.*=all:rssbus.*=all" to focus only on Arc-specific logging. Conversely, if you need even more detailed diagnostics during troubleshooting, you can temporarily set traceSpecification="*=all" to enable comprehensive logging across all Liberty components. Be aware this generates large log files quickly and should only be used for short-term debugging.
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、データディレクトリへの読み書きのアクセス権限を許可します:
-
Windows:
C:\ProgramData\CData\Arc\ -
Linux:
~/cdata/arc
Liberty サーバーを再起動して、変更を反映します。これでアプリケーションにログインすることができます。
Jetty での設定
Arc にはJetty Web サーバーが組み込まれていますが、アプリケーションを外部のJetty 設定で使用することもできます。
WAR ファイルとarc.xml の配布
arc.war を${JETTY_BASE} のwebapps フォルダにコピーします。また、arc.xml ファイルも同じ${JETTY_BASE} フォルダに配置します。arc.xml がない場合は、作成する必要があります。少なくとも、Jetty の標準構成では、arc.xml ファイルに次の内容が含まれている必要があります:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="arcServer" class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/</Set>
<Set name="war">/var/lib/jetty/webapps/arc.war</Set>
<Set name="securityHandler">
<New class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<!-- This name is the same as **login-config > realm-name** in web.xml. -->
<Set name="name">ArcRealm</Set>
<!-- LoginModuleName must match the name of your LoginModule, as declared in your login-module configuration file. -->
<Set name="loginModuleName">Arc</Set>
<!-- Set the principal class name for the custom role. -->
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>arc.GroupPrincipal</Item>
</Array>
</Set>
</New>
</Set>
</New>
</Set>
</Configure>
Java 認証・承認サービス(JAAS)の設定
JAAS を設定してArc がアプリケーションのユーザーを管理できるようにするには、次のセクションで説明する手順を実行する必要があります。
JAAS モジュールの追加
JAAS モジュールをインストールするには、次のコマンドを送信します:
java -jar start.jar --add-modules=deploy,jsp,http,jaas
Arc ログインモジュールの作成
login.config というログイン設定ファイルを作成し、次のパスに配置します:{JETTY_BASE}/etc/login.conf。login.config ファイルに以下の内容を記述します:
Arc {
arc.LoginModule required debug=true;
};
セキュリティハンドラの更新
セキュリティハンドラの設定は、arc.xml 設定ファイルにあります。If you created the arc.xml file using the content in WAR ファイルとArc.xml の配布, you can skip this step because this change is already present in that content.そうでない場合は、securityHandler ブロックを以下のように変更します:
<Set name="securityHandler">
<New class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.jaas.JAASLoginService">
<!-- This name is the same as **login-config > realm-name** in web.xml. -->
<Set name="name">ArcRealm</Set>
<!-- LoginModuleName must match the name of your LoginModule, as declared in your login-module configuration file. -->
<Set name="loginModuleName">Arc</Set>
<!-- Set the principal class name for the custom role. -->
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>arc.GroupPrincipal</Item>
</Array>
</Set>
</New>
</Set>
</New>
</Set>
Jetty でのLDAP
Jetty でArc を実行する際にLDAP を設定するには、標準のArc ログインモジュールを使用してJetty で実行されるようにArc を設定する必要があります。Arc がJetty でArc ログインモジュールを使用して起動したら、次の手順に従ってJetty がユーザー認証にLDAP を使用するように構成します。
- LDAP ユーザーをArc に追加します。
- Arc にLDAP ユーザーを追加するには、監理者ユーザーとしてログインします。Arc でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。Arc ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01やuser02である場合、Arc でも同じユーザー名を使用する必要があります。 - 完了したらArc を停止します。
- Arc にLDAP ユーザーを追加するには、監理者ユーザーとしてログインします。Arc でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。Arc ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
- ogin.conf で、Jetty LDAP ログインモジュールのJAAS 構成を作成します。
${JETTY_BASE}/etc/login.confにあるlogin.conf ファイルを開き、Jetty LDAP モジュール用のJAAS 設定を追加します。さまざまな構成設定が利用可能ですが、JAAS の構成は特定の要件とLDAP サーバーの構成によって異なります。利用可能なJAAS 構成のリストについては、Jetty ドキュメントおよび以下を参照してください:debug useLdaps contextFactory hostname port bindDn bindPassword authenticationMethod forceBindingLogin userBaseDn userRdnAttribute userIdAttribute userPasswordAttribute userObjectClass roleBaseDn roleNameAttribute roleMemberAttribute roleObjectClass- 以下は、LDAP サーバーで構成されたlogin.conf ファイルの例です。必要な設定と値は、特定の要件とLDAP サーバーの構成によって異なることに注意してください。セットアップに必要な設定と値を決定するには、LDAP 管理者に問い合わせるか、LDAP サーバーのドキュメントを参照してください。
Arc { arc.LoginModule optional debug=true; org.eclipse.jetty.jaas.spi.LdapLoginModule optional debug="true" contextFactory="com.sun.jndi.ldap.LdapCtxFactory" hostname="openldap" port="1389" bindDn="CN=ldapuser,DC=example,DC=org" bindPassword="Adminpassword1" authenticationMethod="simple" forceBindingLogin="true" userBaseDn="OU=users,DC=example,DC=org" userRdnAttribute="cn" userPasswordAttribute="userPassword" roleBaseDn="DC=example,DC=org" roleNameAttribute="cn" roleMemberAttribute="member" useLdaps="false"; };
arc.LoginModuleとorg.eclipse.jetty.jaas.spi.LdapLoginModuleは両方ともオプションに設定されていることに注意してください。これにより、ユーザー認証を行う際に両方のログインモジュールを使用できるようになります。1つのログインモジュールがユーザーの認証に失敗した場合、ログインは2つ目のモジュールにフォールバックします。両方のログインモジュールがユーザー認証に失敗した場合は、ログインは完全に失敗します。 - login.conf が必要なLDAP 設定で更新されたら、Arc を再起動します。正しく設定されていれば、LDAP ユーザーはArc にログインできるようになります。
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、データディレクトリへの読み / 書きのアクセス権限を許可します:
-
Windows:
C:\ProgramData\CData\Arc\ -
Linux:
~/cdata/arc
Jetty サーバーを再起動して、変更を反映します。これでアプリケーションにログインすることができます。
ユーザー管理
初めて起動する際、Arc はユーザー名とパスワードの資格情報を持つユーザーの作成を要求します。最初のユーザーを作成後、アプリケーションの設定ページのユーザータブで、ユーザーの追加、削除、および管理を行うことができます。
Arc を外部のJava サーブレットにデプロイする場合(つまり、アプリケーション付属の組み込みサーバーを使用しない場合)、Arc によるユーザーの管理を可能にするためJAAS の設定が必要です。前のセクションで、特定の外部サーブレットごとにJAAS を設定するプロセスを詳しく説明しています。
アプリケーションディレクトリの検索と設定
Arc ApplicationDirectory フォルダには、アプリケーションで使用されるすべてのデータ(設定データ、アプリケーションデータ、ログデータ、証明書など)が格納されます。ApplicationDirectory のデフォルトの場所は、Arc が組み込みWeb サーバー経由でホストされているか、外部のJava サーブレットコンテナ経由でホストされているかによって異なります。
組み込みWeb サーバーの場合、 ApplicationDirectory は InstallationDirectory と同じです。デフォルトの場所は次のとおりです:
/opt/arc
Arc が外部のJava サーブレットコンテナにホストされている場合、 ApplicationDirectory はサーバーを実行しているユーザーのホームディレクトリからの相対パスです:
~/arc
このパスでは、’~’ はアプリケーションをホストするサーバーを実行しているユーザーのホームディレクトリに解決します。
ApplicationDirectory フォルダを構成でき、これはさまざまなシナリオで役立ちます:
-
Arc の複数インスタンスのクラスタリング
-
アプリケーションデータ用の共有ネットワークドライブの使用
-
同じフォルダにアクセスする他のシステム内へのArc の組み込み
ApplicationDirectory を変更すると、アプリケーションのデータファイルが移動します。ただし、EXE ファイルやJAR ファイルなどの他のアプリケーションリソースは移動しません。これらのリソースは InstallationDirectory フォルダに格納されます。このフォルダは ApplicationDirectory と同じ場合がありますが、 ApplicationDirectory を変更しても、これらのリソースの場所は変わりません。
組み込みJava サーバー
クロスプラットフォーム版を組み込みJetty サーバーで使用する場合、デフォルトで ApplicationDirectory は InstallationDirectory となります。これを変更するには、arc.properties ファイルを生成します。テキストエディタでファイルを開き、cdata.app.directory 設定を、目的のディレクトリのパスに設定します。次の例は、マウントされたドライブ上の共有フォルダにデータディレクトリを設定した場合を示しています:
cdata.app.directory=/mnt/shared/arc
Arc がcdata.app.directory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリにデータフォルダを作成します。
外部Java サーバー
クロスプラットフォーム版を外部のJava サーブレット(アプリケーションに含まれるJetty サーバー以外のサーバー)で使用する場合、アプリケーションのデータディレクトリの設定の詳細は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用するAppDirectory 環境変数を必要なディレクトリのパスに設定する必要があります。
Arc がAppDirectory のパスを見つけることができ、そのパスで読み取りと書き込みができる適切なアクセス許可を持つ場合、指定したディレクトリにデータフォルダを作成します。
アプリケーションデータベースの設定
Arc のアプリケーションデータベースは、以下のようなアプリケーションデータの複数のテーブルを保存します:
- トランザクションログ:アプリケーションによって処理される各トランザクションのメタデータ
- アプリケーションログ:アプリケーションレベルのエラーとイベント
- アクセスログ:アプリケーションのWeb エンドポイントへのリクエスト
- 監査ログ:ユーザーによるArc の設定変更
デフォルトでArc は ApplicationDirectory に存在するDerby データベースをアプリケーションデータベースとして使用します。ただし、SQL Server、PostgreSQL、MySQL などのエンタープライズデータベースを使用するようにアプリケーションを設定できます。
組み込みJava サーバー
クロスプラットフォーム版を組み込みJetty サーバーで使用する場合、デフォルトのアプリケーションデータベースは ApplicationDirectory にあるDerby データベースです。これを変更するには、arc.properties ファイルを生成します。テキストエディタでファイルを開き、cdata.app.db の設定に、必要なデータベースの適切な接続パラメータを含むJava Database Connectivity (JDBC) 接続文字列を設定します。次の例は、この設定をMySQL、PostgreSQL、およびSQL データベースについて示しています:
MySQL
cdata.app.db=jdbc:cdata:mysql:server=localhost;port=3306;database=mysql;user=MyUserName;password=MyPassword
PostgreSQL
cdata.app.db=jdbc:cdata:postgresql:server=localhost;port=5432;database=postgresql;user=MyUserName;password=MyPassword
SQL Server
cdata.app.db=jdbc:cdata:sql:server=localhost;database=sqlserver;user=MyUserName;password=MyPassword
Arc がcdata.app.db 接続文字列で正常に接続を確立できる場合、そのデータベースをアプリケーションデータベースとして使用します。
Note:アプリケーションデータベースとしてSQL Server を使用する際のデッドロックの可能性を減らすため、CData ではREAD_COMMITTED_SNAPSHOT が有効化されていることの確認を推奨しています。
暗号化されたデータベース接続文字列の生成
Arc は、アプリケーションのデータベース接続用に暗号化された接続文字列を生成する機能を提供します。この暗号化された接続文字列を使用することで、Arc 設定ファイルにログイン認証情報をプレーンテキストで保存することなく、アプリケーションデータベースを指定することができます。暗号化された接続文字列を生成するには、arc.jar があるインストールディレクトリで、接続情報を引用符で囲んだ例の文字列に置き換えて、以下のコマンドを実行します:
java -jar arc.jar -EncryptConnectionString "jdbc:cdata:mysql:Server=serverName;Port=1234;Database=databaseName;User=userName;Password=passwordSample"
コマンドを発行すると、コマンドウィンドウに暗号化された文字列が出力されます。次に例を示します:
ENCRYPTEDA:5TWyjE0U4GBEVNkd51SqbMXaBwVGqj5uyMfTHt48y/F5l3sDPZynNnPMb/ppXzuFTzFPywA1/SSKUgLy9nAuvA7RAdZj7WsKI1xAgDMmEFNQ68/lHjFYZpS10sIaoUloyZVDkj4uLHTZ0SaMD5PPUA==
この暗号化された文字列を、上記のように cdata.app.db のプレーンテキスト値の代わりに使用することができます。
外部Java サーバー
クロスプラットフォーム版を外部のJava サーブレット(アプリケーションに含まれるJetty サーバー以外のサーバー)で使用する場合、アプリケーションのデータベースの設定の詳細は使用する特定のサーブレットに依存します。特定のサーブレットに適した構文を使用する、サーバーを設定する際のアプローチを次のいずれかから選択します:
-
ターゲットデータベースの接続プロパティを含むJNDI データソースを定義。
-
APP_DB環境変数をJDBC 接続文字列に設定。
Arc がJDNI データソースまたはAPP_DB 接続文字列を使用してデータベースに同期できる場合、そのデータベースをアプリケーションデータベースとして使用します。
ログインのロックアウト
Arc は、ブルートフォースアタックを防ぐために、不正なパスワードを何度も入力するユーザーを自動的にロックアウトします。デフォルトでは、5分以内に6回不正なパスワードを入力したユーザーは30分間ロックアウトされます。
Web サーバーの動作を規定するXML 設定ファイルを編集することで、ロックアウトの設定を変更できます。この3つの設定はロックアウトに関係します:
-
LockoutFailedAttempts:ロックアウトのトリガーとなる不正なパスワードの数。ロックアウトを無効にするには、LockoutFailedAttempts を0に設定します。
-
LockoutMinutes:ロックアウトする時間。デフォルトは30分です。
-
LockoutTimeCheckPeriod:失敗した試行回数を0にリセットするまでの時間。デフォルトは5分です。
組み込みJetty サーバー
ロックアウト設定を変更するには、arc.properties ファイルを生成し、以下のようにname:value ペアのカンマ区切りのリストをinitParameters に追加します:
cdata.initParameters=LockoutFailedAttempts:0
Tomcat
Tomcat arc.xml ファイルのロックアウト設定を編集するための構文は以下のとおりです:
<Context>
<Parameter name="LockoutFailedAttempts" value="0" />
</Context>
一般的な課題と解決方法
このセクションでは、Java 環境にArc をデプロイする際に遭遇する可能性がある一般的な課題をリストアップします。それぞれの課題について推奨ソリューションを記載します。その他のヘルプについては、CData テクニカルサポート:[email protected] にお問い合わせください。
課題
Arc が起動しない、または期待されるものとは異なるAppDirectory を使用して起動する
このエラーは、Arc が ApplicationDirectory にアクセスするために必要な権限を持っていない可能性があります( ApplicationDirectory は、ジョブ、接続、変換などの設定に関する重要な情報を保存するフォルダです)。このエラーの原因として考えられるのは、サービスをセットアップする前にローカルユーザーとしてArc を実行している場合です。この場合、アプリケーションで作成される特定のリソースが、ローカルユーザーの下に作成されている可能性があります。結果として、Arc をサービスとして実行する場合にこれらのリソースを利用できません。
推奨ソリューション
Linux オペレーティング環境で、サービスアカウント(またはArc を実行させるための他のアカウント)が ApplicationDirectory にアクセスできることを確認する最も簡単な方法は、chown コマンドを使用することです。例えば、 ApplicationDirectory がLinux のデフォルトの場所にあってArc がサービスアカウントで実行されるべき場合、以下のコマンドでエラーが解決されるはずです:
sudo chown -R cdataarc:cdataarc /opt/arc