公開コンテンツだれでも自由に閲覧できるコンテンツです。コンテンツの公開区分が指定されていない場合は、すべて公開コンテンツです。サポーターズコンテンツJPiereサポーターになると閲覧できるコンテンツです。JPiereのサポーターになって、オープンソースのERPのエコシステムを支援して下さい。トレーニングコンテンツ有料トレーニングで同様の内容を提供しているコンテンツです。有料トレーニングを受講する事でiDempiereを効率よく学ぶ事ができます。非公開コンテンツ公開していないコンテンツです。Distributionのパスワードの初期保存状態について業務アプリケーションレベルでのセキュリティー管理で重要な事の1つはユーザーのIDとログイン時に認証に使用するパスワードの管理だと思います。通常、業務アプリケーションではIDとパスワードは個人毎に付与され、その管理は個人に委ねられます。そのため個人が不注意に他人にIDとパスワードを教えてしまう事は、システム的には防ぎようがありません。IDとパスワードを他の人に教えてはいけないよ、というのはどのシステムでも言える事で、例えシステム管理者であってもユーザーのパスワードは知らない方が(知ることのできない方が)セキュリティー的に好ましいと言えると思います。Distributionでは初期状態ではパスワードは平文で保存されています。これは、セキュリティー的に無頓着というわけではなく、オープンソースの特性上、デモ環境に用意されているユーザーのIDやパスワードは公開して誰でも試せるようにしておきたいという意図からだと私は理解しています。その証拠に、暗号化する処理がちゃんと用意されています。Distributionは、初期状態ではパスワードは平文で保存されています。Distributionでは初期状態ではパスワードは平文で保存されている。AD_userテーブルnameカラムに入力されているデータがIDで、passwordカラムに入力されているデータがパスワードになります。IDがSuperUserのパスワードはSystemだというのが、簡単に判別できます。ちなみに、上記画像で紹介している4つのユーザーIDとそのパスワードはシステム管理者とサンプルユーザーのIDと初期パスワードであり、Compiereの時代から公表されていますので、本番導入の際には、少なくともパスワードは変更しておく事を強く推奨致します。Encryption)を実行する方法を紹介したいと思います。Encryption)を実行する方法Systemクライアントにログインし、アプリケーション辞書のテーブルとカラムウィンドウを開きます。テーブルとカラムウィンドウで、暗号化したいカラムの設定画面に行きます。ここでは、例としてAD_UserテーブルのPasswordカラムを暗号化してみたいと思います。テーブルとカラムウィンドウのカラムタブカラム暗号化ボタンを押します。すると、カラム暗号化ポップアップウィンドウが表示されますので、暗号化フラグと現在設定の変更フラグをONにします。カラム暗号化ポップアップウィンドウ暗号化処理が終了すると、下記のようなメッセージが表示されます。メッセージは、「org.compiere.util.Secureクラスを呼び出して、18件のデータを暗号化し、暗号化するフラグをONにしたよ。」という内容だと思います。実行ログAD_Userテーブル確認するとpasswordカラムに保存されているデータが先ほどの平文から暗号化されているのがわかります。この暗号化の処理はiDempiereではorg.compiere.process.ColumnEncryptionクラスがプロセスエンジンから呼び出され、実際の暗号化処理はorg.comoiere.utile.Secureクラスに処理を引き継いでいます。Standard)という暗号処理が施されるようです。下記のようなパラメータ指定で、いったん暗号化(Encryption)したデータも、復号化(Decryption)してもとの平文に戻す事もできます。ここではパスワードを例にして暗号化の処理を説明しましたが、この機能はパスワード以外も暗号化する事ができます。パスワードをハッシュ化する方法iDempiereでは、DESの暗号化処理の他にも、パスワードについては、ハッシュ化する方法が実装されています。ハッシュ方法としては、MUserクラスを確認してみるとSHA512を採用しているようです。hashシステムコンフィグ設定で、USER_PASSWORD_HASHのValue(検索キー)をYに変更します。初期設定値はNになっています。これだけの設定で、新規に追加されたパスワード及び更新があったパスワードについてはハッシュ化されてデータベースに保存されます。hashes)するプロセスを実行します。hashes)プロセスを実行する際には、先に紹介した、システムコンフィグ設定のValue(検索キー)の設定をNにしておく必要があります。パスワードをハッシュ化すると、次のように既に登録されているパスワードもハッシュ化されます。2012※このサイトは、iDempiereを中心としたOSSのERPに関する調査及び研究の成果を記録しておく事を目的とした個人のサイトです。