Cosminexus V9 アプリケーションサーバ 機能解説 セキュリティ管理機能編

[目次][用語][索引][前へ][次へ]

14.3 ua.conf統合ユーザ管理のコンフィグレーションファイル

<この節の構成>
(1) 形式
(2) ファイルの格納先
(3) リポジトリアクセス用パラメタ

(1) 形式

JAAS対応ユーザ管理,およびシングルサインオンの機能を使用するための設定ファイルです。

(2) ファイルの格納先

(3) リポジトリアクセス用パラメタ

JAAS対応ユーザ管理のリポジトリ(LDAPディレクトリサーバまたはデータベース)アクセスに関係する情報を定義します。ここで定義する内容は,ログインモジュールや各種コマンドでリポジトリにアクセスする場合に使用されます。

項目は設定番号(LDAP設定番号またはJDBC設定番号)を付加して複数定義できます。設定番号は0から始まり,順番に1ずつ加算していきます。もし,数字が飛んだ場合は,定義がそこで切れます。例えば,次に示す例の場合,0と1が定義されたものとみなされます(3は2が指定されていないため無視されます)。

(例)
java.naming.provider.url.0=ldap://localhost:389
java.naming.provider.url.1=ldap://localhost:389
java.naming.provider.url.3=ldap://localhost:389
#java.naming.probider.url.3の指定は無視されます。
 

なお,JNDI用とJDBC用の定義は別なので,それぞれ「0」から始めます。

(a) JNDI用パラメタ

JNDIを使用してLDAPディレクトリサーバにアクセスする場合に定義する項目です。LDAPディレクトリサーバにアクセスするための設定は,LDAP設定番号を0から順に上げることで複数指定できます。

オプション 内容 デフォルト値
java.naming.provider.url リポジトリ(LDAPディレクトリサーバ)のURLを,文字列で指定します。詳細については,JavaのJNDIの説明を参照してください。 なし
java.naming.security.principal リポジトリ(LDAPディレクトリサーバ)にアクセスする際の認証者の識別子を,文字列で指定します。詳細については,JavaのJNDIの説明を参照してください。 なし
java.naming.security.credentials java.naming.security.principal.nに対応するパスワードを,文字列で指定します。詳細については,JavaのJNDIの説明を参照してください。 なし
com.cosminexus.admin.auth.ldap.basedn JAAS対応ユーザ管理でのリポジトリのベースDNを,文字列で指定します。 なし
com.cosminexus.admin.auth.ldap.attr.userid ユーザのログインIDを表す属性名を,文字列で指定します。 uid
com.cosminexus.admin.auth.ldap.search.userrdn JAAS対応ユーザ管理でのリポジトリのユーザエントリ(RDN)を検索する必要があるかどうかをtrueまたはfalseで指定します。ユーザのログインIDを表す属性名とユーザエントリ(RDN)が異なる場合は,trueを指定してください。大文字と小文字は区別されません。 false
com.cosminexus.admin.auth.ldap.search.scope JAAS対応ユーザ管理でのリポジトリのユーザエントリ(RDN)を検索する必要がある場合,検索のレベルをonelevel(1階層下だけ検索)またはsubtree(すべての下層の検索)で指定します。大文字と小文字は区別されません。 onelevel
com.cosminexus.admin.auth.ldap.attr.password ユーザのパスワードを表す属性名を,文字列で指定します。 userPassword
com.cosminexus.admin.auth.ldap.pool.enable LDAP接続プールを利用するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。 false
com.cosminexus.admin.auth.ldap.pool.max LDAP接続プールの最大数を指定します。最大数を超えて要求が来た場合は,プールが空くのを待ちます。0〜2147483647の整数で指定します。0以下を指定した場合は,100を仮定します。 100
com.cosminexus.admin.auth.ldap.pool.max_spare LDAP接続プールの空きプール数の最大値を指定します。一時的に,指定した最大値を超えることがありますが,com.cosminexus.admin.auth.ldap.pool.gc_intervalで指定した時間間隔で調整されます。0〜2147483647の整数で指定します。
ここに指定する値がcom.cosminexus.admin.auth.ldap.pool.maxよりも大きい値の場合,com.cosminexus.admin.auth.ldap.pool.maxで指定した値を仮定します。0以下の値を指定した場合は,com.cosminexus.admin.auth.ldap.pool.maxの1/2を仮定します。com.cosminexus.admin.auth.ldap.pool.maxに奇数値が指定されていた場合は切り捨てられ,1の場合は1とします。
50
com.cosminexus.admin.auth.ldap.pool.min_spare LDAP接続プールの空きプールの数が0になったとき(初期化時を含みます),新たに確立されるプール数を指定します。0〜2147483647の整数で指定します。
ここに指定する値がcom.cosminexus.admin.auth.ldap.pool.max_spareよりも大きい値の場合,com.cosminexus.admin.auth.ldap.pool.max_spareで指定した値を仮定します。0以下の値を指定した場合は,com.cosminexus.admin.auth.ldap.pool.max_spareの1/2を仮定します。com.cosminexus.admin.auth.ldap.pool.max_spareに奇数値が指定されていた場合は切り捨てられ,1の場合は1とします。
10
com.cosminexus.admin.auth.ldap.pool.gc_interval LDAP接続プールの空きプール数を調整する時間間隔を,0〜2147483647の整数(単位:秒)で指定します。com.cosminexus.admin.auth.ldap.pool.max_spareの説明を参照してください。なお,0以下の値を指定した場合は,この機能は実行されません(com.cosminexus.admin.auth.ldap.pool.maxまで増えて削除されません)。 60
com.cosminexus.admin.auth.ldap.conn.retry.count LDAP接続失敗時のリトライ回数を0〜2147483647の整数で指定します。 1
com.cosminexus.admin.auth.ldap.conn.retry.wait LDAP接続失敗時のリトライ間隔を0〜2147483647の整数(単位:ミリ秒)で指定します。 0
com.cosminexus.admin.auth.ldap.certificate.attr.userid 証明書に格納されているDNを分解したあと,ユーザIDとして使用する属性名を,文字列で指定します。大文字と小文字は区別されません。ユーザIDを取り出すときに,同じ属性名が複数あった場合は,最初に見つかった値を使用します。 cn
com.cosminexus.admin.auth.ldap.password.encrypt リポジトリに格納されているパスワードの形式を指定します。WebPasswordLoginModuleでは,ここで指定した形式でパスワードを比較します。
  • sha1:SHA-1形式
  • sha224:SHA-224 形式
  • sha256:SHA-256 形式
  • sha384:SHA-384 形式
  • sha512:SHA-512 形式
  • none:平文
  • md5:MD5形式
ここで指定する文字列は大文字と小文字は区別されません。また,上記以外の文字列を指定した場合はsha1を仮定します。com.cosminexus.admin.auth.ldap.password.encrypt.exを指定した場合,このパラメタは無視されます。
sha1
com.cosminexus.admin.auth.ldap.password.encrypt.ex パスワードのフォーマットが標準で用意されているもの以外の形式の場合に,パスワードを変換するためのクラスを完全限定名で指定します。
このパラメタを省略した場合,または指定したが見つからない場合,
com.cosminexus.admin.auth.ldap.password.encryptで指定した形式でパスワードを比較します。
なし
com.cosminexus.admin.auth.ldap.directory.kind 接続するLDAPディレクトリサーバの種類を指定します。

AD:
Active Directoryを使用する場合に指定します。

ETC:
Active Directory以外のLDAPディレクトリサーバを使用する場合に指定します。
上記以外の値を指定した場合は,ETCが設定されます。
ETC
com.cosminexus.admin.auth.ldap.conn.read_timeout LDAPディレクトリサーバとの読み込みタイムアウト時間を0〜3600までの整数(単位:秒)で指定します。0を指定した場合はタイムアウトしません。 3
com.sun.jndi.ldap.connect.timeout LDAPディレクトリサーバとの接続タイムアウトを0以上の整数(単位:ミリ秒)で指定します。0以下の整数を指定した場合は,TCPなどのネットワークプロトコルのタイムアウト値が使用されます。 LDAPプロバイダの仕様
(b) JDBC用パラメタ

JDBCを使用してデータベースにアクセスする場合に定義する項目です。データベースと接続するための設定は,JDBC設定番号の値を0から順に上げることで複数指定できます。

オプション 内容 デフォルト値
com.cosminexus.admin.auth.jdbc.driver 使用するデータベースに対応したJDBCドライバのクラス名を指定します。JDBCドライバの格納場所は,J2EEサーバのクラスパスに指定してください。 JP.co.Hitachi.soft.DBPSV_Driver.JdbcDbpsvDriver
com.cosminexus.admin.auth.jdbc.conn.url データベースと接続するためのURLを,文字列で指定します。URLは次の形式で指定します。
(指定例)
jdbc:<subprotocol>:<subname>
なし
com.cosminexus.admin.auth.jdbc.conn.user 代理で接続するデータベースユーザを,文字列で指定します。省略した場合は,接続するデータベースユーザなしで接続します。 代理者なし
com.cosminexus.admin.auth.jdbc.conn.password 代理で接続するデータベースユーザのパスワードを指定します。com.cosminexus.admin.auth.jdbc.conn.userを省略した場合は無視されます。com.cosminexus.admin.auth.jdbc.conn.userを指定してこのパラメタを省略した場合は,空文字を仮定します。 <空文字>
com.cosminexus.admin.auth.jdbc.pool.enable JDBC接続プールを利用するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。 false
com.cosminexus.admin.auth.jdbc.pool.max JDBC接続プールの最大数を指定します。最大数を超えて要求が来た場合はプールが空くのを待ちます。0〜2147483647の整数で指定します。0以下を指定した場合は100を仮定します。 100
com.cosminexus.admin.auth.jdbc.pool.max_spare JDBC接続プールの空きプール数の最大値を指定します。一時的に,指定した最大値を超えることがありますが,com.cosminexus.admin.auth.jdbc.pool.gc_intervalで指定した時間間隔で調整されます。0〜2147483647の整数で指定します。
ここで指定した値がcom.cosminexus.admin.auth.jdbc.pool.maxよりも大きい値の場合,com.cosminexus.admin.auth.jdbc.pool.maxで指定した値を仮定します。0以下を指定した場合はcom.cosminexus.admin.auth.jdbc.pool.maxの1/2を仮定します。com.cosminexus.admin.auth.jdbc.pool.maxに奇数値が指定されていた場合は切り捨てられ,1の場合は1とします。
50
com.cosminexus.admin.auth.jdbc.pool.min_spare JDBC接続プールの空きプール数が0になったとき(初期化時も含みます),新たに確立されるプール数を指定します。0〜2147483647の整数で指定します。ここで指定した値がcom.cosminexus.admin.auth.jdbc.pool.max_spareよりも大きい値の場合,com.cosminexus.admin.auth.jdbc.pool.max_spareで指定した値を仮定します。0以下を指定した場合はcom.cosminexus.admin.auth.jdbc.pool.max_spareの1/2を仮定します。com.cosminexus.admin.auth.jdbc.pool.max_spareに奇数値が指定されていた場合は切り捨てられ,1の場合は1とします。 10
com.cosminexus.admin.auth.jdbc.pool.gc_interval JDBC接続プールの空きプール数を調整する時間間隔を0〜2147483647の整数(単位:秒)で指定します。com.cosminexus.admin.auth.jdbc.pool.max_spareの説明を参照してください。0以下を指定した場合はこの機能は実行されません。com.cosminexus.admin.auth.jdbc.pool.maxの指定値まで増えて削除されません。 60
com.cosminexus.admin.auth.jdbc.conn.retry.count JDBC接続失敗時のリトライ回数を,0〜2147483647の整数で指定します。 1
com.cosminexus.admin.auth.jdbc.conn.retry.wait JDBC接続失敗時のリトライ間隔を,0〜2147483647の整数(単位:ミリ秒)で指定します。 0
com.cosminexus.admin.auth.jdbc.sql パスワードを検索するためのSQLのSELECT文を指定します。SELECT文は次の形式で指定してください。
(指定形式)
SELECT 列名 FROM 表名 WHERE 検索条件
なお,検索条件には一つだけ’?’INパラメタプレースホルダーを含められます。この値は,認証時に指定されたユーザIDに置換されます。
なし
com.cosminexus.admin.auth.jdbc.password.type パスワードが格納されている列の値の型を指定します。Java言語で扱う場合の型を,次に示す値で指定します。
  • string:
    データベースからString型でパスワードの値を取り出します。SQLのデータ型はCHAR/VARCHAR/LONGVARCHARです。
  • byte:
    データベースからbyte[]型でパスワードの値を取り出します。SQLのデータ型はVARBINARY/LONGVARBINARYです。
ここで指定するキーワードは大文字と小文字が区別されません。また,上記のキーワード以外を指定した場合はstringを仮定します。
string
com.cosminexus.admin.auth.jdbc.password.encrypt リポジトリに格納されているパスワードの形式を指定します。WebPasswordLoginModuleでは,ここで指定した形式でパスワードを比較します。
  • sha1:SHA-1形式
  • sha224:SHA-224 形式
  • sha256:SHA-256 形式
  • sha384:SHA-384 形式
  • sha512:SHA-512 形式
  • none:平文
  • md5:MD5形式
ここで指定するキーワードは大文字と小文字が区別されません。また,上記のキーワード以外を指定した場合はnoneを仮定します。
com.cosminexus.admin.auth.jdbc.password.encrypt.exを指定した場合,このパラメタは無視されます。
このパラメタにsha1またはmd5を指定した場合は,com.cosminexus.admin.auth.jdbc.password.typeパラメタにbyteを指定してください。
none
com.cosminexus.admin.auth.jdbc.password.encrypt.ex パスワードのフォーマットが標準で用意されているもの以外の形式の場合に,パスワードを変換するためのクラスを完全限定名で指定します。
このパラメタを省略した場合,または指定したが見つからない場合はcom.cosminexus.admin.auth.jdbc.password.encryptで指定した暗号化形式でパスワードを比較します。
なし
 
(c) API用パラメタ

LDAPディレクトリサーバ上のユーザ情報リポジトリを参照または更新するAPIで使用する情報を定義する項目です。

項目には「.<name>」を付加します。「.<name>」はユーザ情報リポジトリを参照または更新するAPIを利用するときの識別子として定義します。ここで指定したnameはLdapUserDataManagerのコンストラクタで指定します。

nameの形式
<アプリケーションのJavaパッケージ名>.<内部名>
内部名:英数字(A〜Z,a〜z,0〜9)またはピリオド(.)で構成される文字列
(例)
com.cosminexus.admin.auth.api.repository.ldap.config.<com.cosminexus.admin.auth.Example>=1
 

nameは値を変えることで複数定義できます。複数定義する場合,それぞれのnameはこのコンフィグレーションファイル内で一意になるようにしてください。また,nameは英数字列(A〜Z,a〜z,0〜9)またはピリオド(.)で指定してください。これ以外の文字を使用した場合,誤認識されることがあります。

オプション 内容 デフォルト値
com.cosminexus.admin.auth.api.repository.ldap.config APIで使用するLDAPディレクトリサーバの定義の識別子(JNDI用パラメタで指定したLDAP設定番号)を指定します。 なし
(d) シングルサインオン用パラメタ

シングルサインオン機能を利用する場合に必要な情報です。WebSSOLoginModuleが使用する項目と,カスタムログインモジュールを呼び出すための定義項目の,2種類の情報を指定する必要があります。このうち,カスタムログインモジュールを呼び出すための定義項目(com.cosminexus.admin.auth.sso.lm以後)には,.nameを付加します。nameはWebSSOLoginModuleから呼び出すログインモジュールの識別子です。

この「.name」を変えることで複数の値が指定できます。ここで指定した「.name」は,JAASのコンフィグレーションで使用されます。

形式
WebSSOLoginModuleが使用する項目=値
カスタムログインモジュールを呼び出すための定義項目.name=値

(例)
com.cosminexus.admin.auth.sso.keyfile=d:/tmp/DES3key.key
com.cosminexus.admin.auth.sso.lm.krb5=com.sun.security.module.Krb5LoginModule
com.cosminexus.admin.auth.sso.param.userid.Krb5=javax.security.auth.login.name
…
オプション 内容 デフォルト値
com.cosminexus.admin.auth.sso.keyfile シングルサインオン用の情報を登録する際に暗号化するための鍵情報が格納されているファイル名を絶対パスで指定します。このファイルが指定されていない場合,シングルサインオン機能を利用してログインするときや,パスワードの変更機能(PasswordUtilクラス)で,LoginException例外が発生します。なお,com.cosminexus.admin.auth.sso.encrypt=noneの場合,ここで指定した値は無視されます。 なし
com.cosminexus.admin.auth.sso.encrypt シングルサインオン用の認証情報(SecretData)を暗号化するために使用する製品を指定します。
  • KEYMATECRYPTO:05-00との互換性を保つための値です。この値を指定した場合,JCEが使用されます。
  • JCE:JCEを使用します。
  • NONE:暗号化機能を使用しません。
ここで指定するキーワードは大文字と小文字を区別しません。
NONE
com.cosminexus.admin.auth.sso.ldap.r この項の先頭で定義したLDAP設定番号を指定します。指定する値は,シングルサインオン情報リポジトリを参照可能な設定を,識別する番号です。ここで指定された値は,WebSSOLoginModuleを利用したシングルサインオンをする場合などの,リポジトリの参照が必要な機能で使用されます。 0
com.cosminexus.admin.auth.sso.ldap.w この項の先頭で定義したLDAP設定番号を指定します。指定する値は,シングルサインオン情報リポジトリを更新可能な設定を,識別する番号です。ここで指定された値は,パスワードの変更機能や,SSOExport/SSOImportコマンドなどのリポジトリの内容を管理するための機能で使用します。 0
com.cosminexus.admin.auth.sso.lm WebSSOLoginModuleが呼び出す各アプリケーションのログインモジュール名(クラス名)を指定します。記述する場合は,フルパッケージで記述してください。 なし
com.cosminexus.admin.auth.sso.param.userid シングルサインオン情報リポジトリに登録されているユーザIDを渡すためのパラメタ名を指定します。なお,ここで指定された値は,すでに認証済みの場合だけlogin()メソッドを呼び出す前にWebSSOLoginModuleが設定します。 com.cosminexus.admin.auth.sso.userid
com.cosminexus.admin.auth.sso.param.secdat シングルサインオン情報リポジトリに登録されている暗号化された情報を渡すためのパラメタ名を指定します。ここで指定したパラメタ名のキー,およびキーに対する値は,login()メソッドを呼び出す前に,WebSSOLoginModuleによって設定されます。ただし,キーおよび値が設定されるのは,認証済みの場合だけです。また,値には,復号化されたデータが設定されます。 com.cosminexus.admin.auth.sso.secdat
com.cosminexus.admin.auth.sso.param.pubdat シングルサインオン情報リポジトリに登録されている暗号化していない情報を渡すためのパラメタ名を指定します。なお,ここで指定された値は,認証済みの場合だけlogin()メソッドを呼び出す前にWebSSOLoginModuleが設定します。
com.cosminexus.admin.auth.sso.param.userid,com.cosminexus.admin.auth.sso.param.secdat,およびcom.cosminexus.admin.auth.sso.param.pubdatを指定する場合は,パラメタ名が重ならないように指定してください。もし,重なったパラメタを指定した場合,内容の保証はできません。
com.cosminexus.admin.auth.sso.pubdat
(e) カスタムログインモジュールのパラメタ

DelegationLoginModuleまたはWebSSOLoginModuleからカスタムログインモジュールを呼び出すために必要な情報です。

オプション 内容 デフォルト値
com.cosminexus.admin.auth.custom.modules カスタムログインモジュールおよびカスタムログインモジュールに関連するクラス(PrincipalやCredintialクラスなど)を格納したディレクトリを絶対パスで指定します。 なし
(f) 標準ログインモジュールのパラメタ

標準ログインモジュール全体に関係する定義情報です。

オプション 内容 デフォルト値
com.cosminexus.admin.auth.keep_password 該当レルムにログインしたユーザのパスワードを統合ユーザ管理のセッションに保持するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。trueを指定した場合は保持します。falseを指定した場合は保持しません。なお,trueを指定しても,該当レルムですでにログインしている場合,すでに保持しているパスワードを上書きすることはありません。パスワードを保持しない場合,同一セッションの同一レルムに2回目以降WebPasswordLDAPLoginModuleを使用してログインするとき,ユーザIDとパスワードの入力が必要になります。 false
com.cosminexus.admin.auth.keep_password.encrypt com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合,パスワードを保持するときに暗号化するかどうかをtrueまたはfalseで指定します。大文字と小文字は区別されません。
trueを指定した場合はパスワードを暗号化します。
falseを指定した場合は暗号化しません。
true
com.cosminexus.admin.auth.param_check.enable com.cosminexus.admin.auth.param_check.enableにtrueを指定した場合,次の標準ログインモジュールを使用してログインユーザ名の前後に空白を入れてログインすると例外が発生します。
  • WebPasswordLoginModule
  • WebPasswordJDBCLoginModule
  • WebCertificateLoginModule
  • WebPasswordLDAPLoginModule
true
com.cosminexus.admin.auth.gsession.keep_password 統合ユーザ管理のセッションフェイルオーバ機能が有効な場合,かつ,com.cosminexus.admin.auth.keep_passwordにtrueを指定した場合に,統合ユーザ管理のセッションに保持したパスワードをセッションフェイルオーバの対象にするかどうかを指定します。

trueを指定した場合:
パスワードをグローバルセッションに保持します。

falseを指定した場合:
パスワードをグローバルセッションに保持しません。
セッションフェイルオーバをした場合,同一セッションの同一レルムにWebPasswordLDAPLoginModuleを使用してログインするとき,2回目以降はユーザIDとパスワードの入力が必要になります。
(指定例)
com.cosminexus.admin.auth.gsession.keep_password=true
false
(g) そのほかのパラメタ

標準ログインモジュールによるユーザ管理全体に関係する定義情報としてトレースファイルがあります。

オプション 内容 デフォルト値
com.cosminexus.admin.auth.trace.prefix フルパスを含んだトレースファイル名を指定します(拡張子は付けません)。ここに指定した値に”.n.log”という拡張子を付加して出力します(nは1〜面数(最大16))。この指定がない場合は,トレースログは出力しません。 なし
com.cosminexus.admin.auth.trace.level トレースレベルを数字で指定します。指定したレベル以内でトレース情報を出力します。

0:
ログインおよびログアウトで失敗した場合,トレースログを出力します。

5:
ログインおよびログアウトで成功した場合とタイムアウトした場合,トレースログを出力します。
0
com.cosminexus.admin.auth.trace.rotate トレースファイル面数を,"1"から"16"までの数字で指定します。 4
com.cosminexus.admin.auth.trace.size 1トレースファイル当たりの最大サイズを,"4096"から"2147483647"の数字で指定します。
一つのログファイルのサイズがここで指定したサイズを超えた場合,ログは次の面番号の付いたログファイルに記録されます。最後のログファイル(面数の番号が付いたログファイル)のサイズが1ファイル当たりの最大サイズに達すると,面の番号1のログファイルへ上書きします。
65536
com.cosminexus.admin.auth.sfo.disable セッションフェイルオーバ用フィルタが設定されていた場合,統合ユーザ管理のセッションフェイルオーバ対応機能を無効にします。

trueを指定した場合:
セッションフェイルオーバ対応機能を無効にします。

falseを指定した場合:
セッションフェイルオーバ対応機能を有効にします。
false