(参考)http://d.palmtb.net/2011/08/15/150308.html
| 項目 | 内容 | |
|---|---|---|
| URL | http://server1.hoge.local/phpldapadmin_org | http://server1.hoge.local/pwmgr |
| 用途 | OpenLDAPの管理全般 | エンドユーザ向けパスワード変更 |
| コンテンツ | オリジナルのまま | パスワード変更に必要なものに絞込み |
| コンテンツパス | /usr/share/phpldapadmin | /usr/share/phpldapadmin_pwmgr |
| 設定用ディレクトリ | /etc/phpldapadmin | /etc/phpldapadmin_pwmgr |
# yum search phpldapadmin : 警告: 一致するものが見つかりません: phpldapadmin # yum install epel-release : インストール: epel-release.norach 0:7-9 完了しました!
# yum install phpldapadmin : インストール: phpldapadmin.norarch 0:1.2.3-10.el7 依存性関連をインストールしました: : 完了しました!
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 :
# cp -rp /etc/phpldapadmin /etc/phpldapadmin_pwmgr
# cp -rp /usr/share/phpldapadmin /usr/share/phpldapadmin_pwmgr
# rm /usr/share/phpldapadmin_pwmgr/config # ln -s /etc/phpldapadmin_pwmgr /usr/share/phpldapadmin_pwmgr/config
#
# Web-based tool for managing LDAP servers
#
Alias /phpldapadmin_org /usr/share/phpldapadmin/htdocs
Alias /ldapadmin_org /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
#Require local
Require ip 192.168.200.0/24
Require ip (administrator's office lan)/24
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
Alias /pwmgr /usr/share/phpldapadmin_pwmgr/htdocs
<Directory /usr/share/phpldapadmin_pwmgr/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
#Require local
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
# systemctl restart httpdブラウザからhttp://server1.hoge.local/phpldapadmin, http://server1.hoge.local/pwmgrにアクセスするとphpLDAPadminの画面応答があるはず。
$config->custom->commands['cmd'] = array( : ); $config->custom->command['script'] = array( : );
例えば、インポート(フロッピーのアイコン)のリンク先は次のとおり。
http://server1.hoge.local/pwmgr/cmd.php?cmd=import_form&server_id=1
上記から、cmdのarray、scriptのarrayそれぞれで、「'import_form' => false」と設定することで無効化できる。設定→画面リロード、の繰り返しで絞り込みが進められる。設定例は以下。
$config->custom->commands['cmd'] = array(
'add_attr_form' => false,
'add_oclass_form' => false,
'add_value_form' => false,
'compare' => false,
'compare_form' => false,
'create' => false,
'create_form' => false,
'delete' => false,
'delete_attr' => false,
'delete_form' => false,
'entry_internal_attributes_show' => true,
'entry_refresh' => true,
'export' => false,
'export_form' => false,
'import' => false,
'import_form' => false,
'login' => true,
'login_form' => true,
'logout' => true,
'mass_delete' => false,
'mass_edit' => false,
'mass_update' => false,
'modify_member_form' => false,
'monitor' => false,
'purge_cache' => true,
'query_engine' => false,
'rename' => false,
'rename_form' => false,
'oslinks' => false,
'schema' => false,
'server_info' => false,
'show_cache' => false,
'show_internal_attrs' => false,
'switch_template' => false,
'template_engine' => true
);
$config->custom->commands['script'] = array(
'add_attr_form' => false,
'add_oclass_form' => false,
'add_value_form' => false,
'collapse' => true,
'compare' => false,
'compare_form' => false,
'copy' => false,
'copy_form' => false,
'create' => false,
'create_confirm' => false,
'delete' => false,
'delete_attr' => false,
'delete_form' => false,
'draw_tree_node' => true,
'expand' => true,
'export' => false,
'export_form' => false,
'import' => false,
'import_form' => false,
'login' => true,
'logout' => true,
'login_form' => true,
'mass_delete' => false,
'mass_edit' => false,
'mass_update' => false,
'modify_member_form' => false,
'monitor' => false,
'purge_cache' => true,
'query_engine' => false,
'rename' => false,
'rename_form' => false,
'oslinks' => false,
'rdelete' => true,
'refresh' => true,
'schema' => false,
'server_info' => false,
'show_cache' => false,
'show_internal_attrs' => false,
'template_engine' => true,
'update_confirm' => true,
'update' => true
);
$config->custom->appearance['hide_template_warning'] = true;
$config->custom->appearance['tree_filter'] = '(&(ou=People)(objectClass=inetOrgPerson));
$config->custom->appearance['hide_attrs'] = array('uid','uidNumber','gidNumber','homeDirectory','loginShell','objectClass','sshPublicKey','gecos','cn','sn','givenName','mail','o');
$servers->setValue('server', 'name', 'hoge.local');
$servers->setValue('server', 'anon_bind', false);
cd /usr/share/phpldapadmin_pwmgr/locale/ja_JP/LC_MESSAGES cp -p messages.mo messages.mo.org msgunfmt messages.mo -o /tmp/messages.po次のように修正
# vi /tmp/messages.po サーバに認証 → サーバ認証 左へのメニューを使用して操作します → 左のメニューを使用して操作します 飛ばす → skip オブジェクト更新 → 更新 これらの変更しますか? → 変更しますか?
msgfmt /tmp/messages.po -o ./messages.mo
# diff /usr/share/phpldapadmin_pwmgr/lib/PageRender.php /usr/share/phpldapadmin/lib/PageRender.php
261,293d260
< # ----- パスワード強度チェック 開始 ------------------
< # 現ハッシュ値の控え
< $oval = array();
< $oval = $attribute->getOldValues();
< // userPassword 属性はハッシュ値一つだけ
< // printf('%s', count($oval));
< // printf('%s', $oval[0]);
<
< # パスワードの適切さ(強度など)フラグ
< $suitablePasswd = true;
<
< # 最小文字数
< $passwdMinLen = 6;
<
< # NG パスワードリスト
< $ngPasswds = ["password", "123456", "000000", "redmine"];
<
< if (strlen($passwordvalue) < $passwdMinLen) {
< system_message(array(
< 'title'=>_('最小文字数未満'),
< 'body'=>sprintf('最小文字数 %s 文字未満です。',$passwdMinLen),
< 'type'=>'warn'));
< $suitablePasswd = false;
< } elseif (in_array($passwordvalue, $ngPasswds)) {
< system_message(array(
< 'title'=>_('不適切なパスワード'),
< 'body'=>sprintf('%s は不適切なパスワードです。', $passwordvalue),
< 'type'=>'warn'));
< $suitablePasswd = false;
< }
<
< # ----- パスワード強度チェック 終了 ------------------
<
323,332c290
< # 不適切なパスワードのときは、便宜的に入力値に
< # 現ハッシュ値をセットし、 update_confirm.php の
< # if (count($request['template']->getLDAPmodify(true))) {
< # が false になるようにし
< # 本来変更なし時の画面遷移処理ブロックを間借りして
< # 戻る画面に移る
< if ($suitablePasswd !== true)
< $vals[$i] = $oval[0];
< else
< $vals[$i] = pla_password_hash($passwordvalue,$enc);
---
> $vals[$i] = pla_password_hash($passwordvalue,$enc);
352d309
<
# diff /usr/share/phpldapadmin_pwmgr/htdocs/update_confirm.php /usr/share/phpldapadmin/htdocs/update_confirm.php
233,236d222
<
< // 最初のフォームで更新を押したものの、現行の値から変化がないときに、
< // 変更無いよ、と表示しつつ、前のフォームに戻るリンクを表示、が本来。
<
241,242c227
< // echo _('You made no changes');
< echo _('変更が無いか、パスワードが不適切です。');
---
> echo _('You made no changes');