Cosminexus 機能解説

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

13.8.6 パスワード認証時の暗号拡張の実装

統合ユーザ管理フレームワークで標準提供されている,パスワードの暗号の形式(SHA-1/MD5/平文)以外でも,パスワード認証ができます。この暗号拡張の機能を利用するには,あらかじめ実装クラスを作成する必要があります。

ここでは,暗号拡張できるログインモジュールと,暗号拡張で使用するクラスの実装方法について説明します。暗号拡張の概要については,「13.2.9 パスワード認証時の暗号拡張」を参照してください。

<この項の構成>
(1) 暗号拡張を利用できるログインモジュール
(2) 暗号拡張で使用するクラスの実装方法

(1) 暗号拡張を利用できるログインモジュール

WebPasswordLoginModuleまたはWebPasswordJDBCLoginModuleを使用する場合に,暗号拡張を利用できます。

(2) 暗号拡張で使用するクラスの実装方法

暗号拡張を実装する場合,com.cosminexus.admin.auth.security.PasswordCryptographyクラスを継承して処理を実装します。作成したクラスは,次に示すディレクトリの下にクラスファイルで格納します。

<Cosminexusのインストールディレクトリ>\manager\modules

なお,格納先ディレクトリは,統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の,com.cosminexus.admin.auth.custom.modulesで変更できます。

SHA-1形式でbyte型の配列で比較する場合の実装例を次に示します。

package my;
 
import com.cosminexus.admin.auth.security.PasswordCryptography;
import java.security.*;
 
public class CustomCryptography implements PasswordCryptography
{
  public byte[]encrypt (byte[] plain) {
    byte[] encryptedPassword = null;
    try{
      MessageDigest md = MessageDigest.getInstance("SHA");
      md.update(plain);
      encryptedPassword = md.digest();
    } catch (NoSuchAlgorithmException e) {
      encryptedPassword = plain;
    }
    return encryptedPassword;
  }
}