SMTP
1.11 LDAP との連携
intra-martは、ディレクトリサービスへの標準的なアクセス手段であるプロトコルLDAP(Lightweight Directory Access Protocol)にも対応しています。intra-martは、認証モジュールによって、intra-mart 標準の認証システムをはじめ、LDAPサーバなどに接続して認証する形式となっています。この認証モ ジュールを変更することによって、各社の認証システムにも対応することができます。
<認証モジュールでLDAPと連携>
1.11.1 LDAP 連携の設定
LDAP連携の設定は、以下の設定ファイルで行います。画面からは行えません。
%Server Manager%/conf/access-security.xml
security-config/user-security/auto-certificationおよびcertificationタグ内で設定します。
<certification-class>jp.co.intra_mart.foundation.security.certification.LDAPUserCertif ication</certification-class>
<init-param>
<param-name>ログイングループID.provider-url</param-name>
<param-value>プロバイダURL</param-value>
</init-param>
<init-param>
<param-name>ログイングループID.dn</param-name>
<param-value>識別情報</param-value>
</init-param>
<init-param>
<param-name>ログイングループID.context-factory</param-name>
<param-value>コンテキストファクトリ</param-value>
</init-param>
1.11 LDAPとの連携
ログイングループ単位に3つのパラメータを指定します。
ログイングループID.provider-url プロバイダURLを設定します。
(例:ldap://localhost:389/)
ログイングループID.dn 識別情報を設定します。認証時には '?' にユーザIDが入ります。
(例:uid=?,ou=People, o=ldaps.intra-mart.jp)
ログイングループ ID.context-factory
コンテキストファクトリを設定します。
(例:com.sun.jndi.ldap.LdapCtxFactory)
設定後、サーバを再起動することで、パラメータに設定したLDAPサーバに認証を行うようになります。
1.11.2 LDAP 認証機能
1.11.2.1 他社認証システムとの連携
他社認証システムとの連携を行うには、認証モジュールインタフェースを実装した認証モジュールを作成 し、設定ファイルに定義することで、認証処理の連携が可能となります。
認証モジュールインタフェース定義
jp.co.intra_mart.foundadion.security.certification.UserCertification
初期化メソッド public void init(Map params) ;
。 ユーザログイン認証モジュールの初期化を行います
1 。
クラスが生成された時に 度だけ呼び出されます パラメータ
params 設定ファイルに定義されているパラメータののマップ
認証メソッド
public int certification(LoginInfo loginInfo, Account user,
HttpServletRequest request, HttpServletResponse response);
。 ユーザの認証を行います
。 ユーザ認証時に呼び出されます パラメータ
loginInfo ログイン時の認証用の情報 ユーザ パスワード ログイングループなど ( 、 、 ) user ログイン対象ユーザのアカウント情報
request HTTPサーブレットリクエスト response HTTPサーブレットレスポンス
。 戻り値 認証結果を返却します
。 以下のいずれかの定数を返却します 認証成功 SecurityConstraint.CR_OK 認証失敗 SecurityConstraint.CR_NG 認証処理エラー SecurityConstraint.CR_ERROR
1.11.2.2 実装例
1
認証モジュールを実装します。package test;
・・・・・
class TestCertification implements UserCertification { public void init(Map params){
// 初期化処理を記述します。
// このメソッドはこのクラスが生成されるとき、一度だけ呼び出されます。
// 引数の初期化パラメータなどを処理します。
}
public int certification(LoginInfo loginInfo,
Account user,
HttpServletRequest request, HttpServletResponse response){
// 引数に渡された情報を元に他社システムに接続して認証処理を行います。
// 認証結果を返却します。
return SecurityConstraint.CR_OK;
} };
2
実装認証モジュールを配置します。実装した認証モジュールをコンパイルし、以下の場所に配置します。
ApplicationRuntimeのdoc/imart/WEB-INF/classes
3
設定ファイルを記述します。認証モジュールを以下の設定ファイルに定義します。
ServerManagerのconf/access-security.xmlの以下のタグ内に記述します。
<access-security>/<security-config>/<user-security>
<auto-certification>
<certification-class>test.TestCertification</certification-class>
<init-param>
<param-name>初期化パラメータ名</param-name>
<param-value>初期化パラメータ値</param-value>
</init-param>
</auto-certification>
<certification>
<certification-class>test.TestCertification</certification-class>
<init-param>
<param-name>初期化パラメータ名</param-name>
<param-value>初期化パラメータ値</param-value>
</init-param>
</certification>
1.11 LDAPとの連携
<auto-certification>タグには、ログイン画面表示前のリクエストから認証処理を行ユーザログイン認証インタフェー ス実装クラスを設定します。
また、このタグは省略可能です。省略した場合は、自動ログインができなくなります(ログイン画面を出さずにログイ ン)。
<certification>タグには、ログイン画面からのリクエストから認証処理を行うユーザログイン認証インタフェース実装 クラスを設定します。
<init-param>タグは複数設定可能です。また、このタグは省略可能です。
このタグに設定された値は、クラス初期化時に、init関数の引数として渡されます。