クロスプラットフォーム版
Version 24.3.9159
Version 24.3.9159
クロスプラットフォーム版
CData Arc のクロスプラットフォーム版には組み込みEclipse Jetty Web サーバーが含まれ、外部サーバー構成なしでArc を実行できます。さらに、インストールにはApache Tomcat、Eclipse Jetty、またはIBM WebSphere などのJava サーブレットコンテナにデプロイ可能なWAR ファイルが含まれています。
組み込みJetty サーバーの使用には、JDK 11 またはそれ以上のバージョンがマシンにインストールされている必要があります。外部Java サーブレットコンテナへのデプロイにはサーブレット3.0(Jetty 8+、Tomcat 7+、WebSphere 8+、など)が必要です。
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 ファイルの生成
組み込み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) をホストするために使用されるサービスアカウントに変更してください。
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 での設定
Websphere でArc を設定するには、次の手順に従います。
WebSphere でArc アプリケーションを作成
Note:このガイドでは、WebSphere でのArc の基本的なインストールについて説明します。よりカスタマイズされたWebsphere インストールが必要な場合は、社内で追加の設定やオプションが必要かどうかを確認してください。
-
WebSphere で、アプリケーション > 新規アプリケーション > WebSphere エンタープライズ・アプリケーションに移動します。
- Arc.war をアップロードします。
- ファスト・パスを選択して次へをクリックします。
-
新規アプリケーションのインストールページが開き、左側に6つのステップが表示されます。
- インストール・オプションの選択:必要に応じて、アプリケーション名を
arc_war
から任意の名前に変更します。 - モジュールをサーバーにマップ:Arc モジュールを希望するサーバーにマップします。
- Web モジュール用の仮想ホストをマップ:Arc モジュールに使用する仮想ホストを設定します。
- Web モジュールのコンテキスト・ルートをマップ:必要に応じて、サーバー上でアプリケーションがアクセス可能なパスを定義します。デフォルトは
/
です。 - モジュールのメタデータ:必要に応じて、metadata-complete 属性を有効にするかどうかを選択します。
- 要約:設定内容を確認します。問題がなければ、終了をクリックします。
- インストール・オプションの選択:必要に応じて、アプリケーション名を
WebSphere クラスローダーの設定
WebSphere がアプリケーションリソースを正しくロードするためには、以下の手順に従ってください:
- WebSphere で、アプリケーション > アプリケーションタイプ > WebSphere エンタープライズ・アプリケーションに移動します。
- Arc 用に作成したアプリケーションを選択します。
- Detail Properties セクション下で、Class loading and update detection を選択します。
- 最初にローカル・クラス・ローダーをロードしたクラス(親が最後)を選択します。
- アプリケーションの単一クラス・ローダーを選択します。
- OK をクリックします。その後保存をクリックします。
Java 認証・承認サービス(JAAS)の設定
次の手順でJAAS を設定し、Arc がWebSphere Application Server 内で動的にユーザーを管理できるようにします:
-
セキュリティー > グローバル・セキュリティー > アプリケーション・セキュリティーの使用可能化に移動して、アプリケーション・セキュリティーの使用可能化チェックボックスをON にします。これにより、次の手順で作成するArc ログインモジュールを使用する際に必要なアプリケーション(Arc) レベルのセキュリティーが有効になります。
- 次のように、システムログインにarc.LoginModule を追加します:
- 以下に移動します:セキュリティー > グローバル・セキュリティー > Java 認証・承認サービス > システム・ログイン > WEB_INBOUND。
- 新規をクリックして
arc.LoginModule
という名前の新しいエントリを追加します。 - ログイン・モジュール・プロキシーの使用チェックボックスを選択します。
- 認証ストラテジーのオプションを選択します。
- カスタム・プロパティーのisWebSphere を追加してtrue に設定します。
- OK をクリックします。その後保存をクリックします。
- WEB_INBOUND ページの順序の設定ボタンを使用して、arc.LoginModule のモジュール順序が1になるようにモジュールの処理順序を変更します。
-
グループを作成します:
- ユーザーおよびグループ > グループの管理 > 作成に移動します。
- cdata_admin、cdata_standard、およびcdata_support グループを作成します。
-
グループをロールにマップします:
- アプリケーション > アプリケーション・タイプ > WebSphere エンタープライズ・アプリケーション > YourArcApplicationName_war > ユーザー / グループへのセキュリティー・ロールのマッピングに移動します。
- cdata_admin グループをcdata_admin ロールにマップします。
- cdata_standard グループをcdata_standard ロールにマップします。
- cdata_support グループをcdata_support ロールにマップします。
- アプリケーションのレルム内で認証済みすべてをcdata_user ロールにマップします。
-
com.ibm.ws.webcontainer.AllowQueryParamWithNoEqual
プロパティをtrue に設定します:- サーバー > サーバー・タイプ > Web Sphere Application Server に移動し、Arc がホストされているサーバーを選択します。
- コンテナー設定 > Web コンテナー設定 > Web コンテナーを選択します。
- 追加プロパティー > カスタム・プロパティーを選択します。
- 新規プロパティ:
com.ibm.ws.webcontainer.AllowQueryParamWithNoEqual
を追加します。 - 値をtrue に設定します。
- WebSphere を再起動します。
これでArc にアクセスでき、Arc ログインモジュールで使用できるようになりました。これにより、アプリケーションレベルでユーザーを確実に管理できます。LDAP を設定するには、次のセクションを参照してください。
LDAP を使用したユーザー認証
WebSphere でLDAP を使用するようにArcを設定する前に、Java 認証・承認サービス(JAAS)の設定の手順に従って、ローカル管理者ユーザーを作成してください。LDAP ユーザーをArc に追加するには、管理者ユーザーが必要です。ログインモジュールを設定し、管理者ユーザーとしてArc に正常にログインできるようになったら、次の手順に従ってLDAP サポートを設定します。
-
ローカル監理者ユーザーとしてArc にログインします。Arc でLDAP ユーザーを作成するには、ナビゲーションバーの設定歯車アイコンをクリックして、ユーザーを選択します。Arc ユーザーはLDAP サーバーのユーザーと同一でなければなりません。例えば、LDAP ユーザーが
user01
やuser02
である場合、Arc でも同じユーザー名を使用する必要があります。 -
LDAP リポジトリをWebSphere に追加します。
- WebSphere でセキュリティー > グローバル・セキュリティーに移動します。ユーザーアカウントリポジトリセクションで、利用可能なレルム定義でフェデレーテッドリポジトリが選択されていることを確認してください。設定をクリックします。
- これにより、フェデレーテッドリポジトリページが開きます。レルム内のリポジトリテーブルに移動してリポジトリの追加をクリックします。
- 次のページで、新規リポジトリをクリックしてLDAP リポジトリを選択します。
- 設定画面が表示されたら、LDAP サーバーの詳細を入力します。必須フィールドにはアスタリスクが付いていますが、入力が必要なその他の必要な設定については、LDAP サーバーのドキュメントを参照してください。基本的な必須設定は以下のとおりです:
- ディレクトリタイプ
- プライマリホスト名
- ポート
- バインド識別名(DN)
- バインドパスワード
- 設定値を入力したら、OK をクリックします。
- リポジトリ参照画面が表示されたら、LDAP サーバーの識別ベース名を入力し、OK をクリックします。例:
- テーブル内のLDAP リポジトリ識別子をクリックしてLDAP 構成をテストします。次の例では、LDAP1 です:
- 新しいLDAP リポジトリの一般的なプロパティが表示されます。関連項目の下部付近にあるLDAP テストクエリボタンを見つけます。
- 認証の詳細を入力し、必要に応じて検索フィルタを追加して、テストクエリをクリックします。クエリが成功すると、検索結果がLDAP サーバーから返されます。エラーが発生した場合は、WebSphere のドキュメントまたはお使いのLDAP サーバーのドキュメントを参照してください。
- 変更を保存し、WebSphere を再起動してプロセスを完了します。正常に構成されると、Arc にサインインするユーザーはLDAP 経由で認証されます。
- WebSphere でセキュリティー > グローバル・セキュリティーに移動します。ユーザーアカウントリポジトリセクションで、利用可能なレルム定義でフェデレーテッドリポジトリが選択されていることを確認してください。設定をクリックします。
デバッグ設定
LDAP またはarc.LoginModule の構成に問題がある場合は、以下の手順に従ってWebSphere ログのデバッグログを有効にしてください。
arc.LoginModule
-
セキュリティー > グローバル・セキュリティー > Java 認証に移動し、承認サービス > システム・ログイン > WEB_INBOUND > arc.LoginModule に移動します。
- カスタム・プロパティーのdebugを追加して、値をtrue に設定します。
-
トラブルシューティング> ログおよびトレース > YourArcServer > ログ詳細レベルの変更 > ランタイムに移動します。
- テキストボックスに次の内容を入力します:
Arc.*=all: arc.LoginModule=all
- Save runtime changes to configuration as well チェックボックスをON にします。
- OK をクリックして変更を保存します。WebSphere を再起動します。
- テキストボックスに次の内容を入力します:
ltpaLoginModule and wsMapDefaultInboundLoginModule
-
セキュリティー > グローバル・セキュリティー > Java 認証・承認サービス > システム・ログイン > WEB_INBOUND に移動し、各モジュールにdebug カスタムプロパティを追加して、値をtrue に設定します。
-
トラブルシューティング> ログおよびトレース > YourArcServer > ログ詳細レベルの変更 > ランタイムに移動し、
com.ibm.ws.security.server.lm.ltpaLoginModule=all: com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule=all
を追加します。- Save runtime changes to configuration as well チェックボックスをON にします。
- OK をクリックして変更を保存します。WebSphere を再起動します。
データディレクトリ権限の設定
Java サーブレットコンテナを実行するプロセスのユーザーに、データディレクトリへの読み / 書きのアクセス権限を許可します:
-
Windows:
C:\ProgramData\CData\Arc\
-
Linux:
~/cdata/arc
WebSphere サーバーを再起動して、変更を反映します。これでアプリケーションにログインすることができます。
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