パスワードの有効期限を設定し定期変更を強制したい

パスワードの有効期限を設定し定期変更を強制したい

- Tsuyoshi Tanaka の投稿
返信数: 2
現在、社内教育にMoodleを活用できないか、検証をしています。

弊社ではMicrosoftのActiveDirectoryを利用し、社員は社用PCからドメインに参加しているため、Moodleの認証でもLDAP認証を活用し、共通のIDとパスワードでログインできる環境を用意しています。

また、社外に勤務していたりと、一部ActiveDirectoryに存在しない社員もいるため、それらの社員はMoodleに手動で登録を行い、Moodle上で管理しています。


本題ですが、弊社のセキュリティポリシーにおいて、パスワードの有効期限を90日にするという項目がありますが、Moodleではパスワードの有効期限の設定はできないように見えます。

ActiveDirectoryに登録されているユーザは、ActiveDirectory側のグループポリシーで有効期限を90日に設定しているため、問題がありません。

しかしながら、手動登録のユーザには、有効期限を設定できないため、定期変更を強制できません。

Moodleを利用する全社員をActiveDirectoryに登録することも考えましたが、パスワードの変更を行なうためには、社用PCからドメインに参加する必要があり、社外に勤務している社員等90日以上社用PCを利用しない社員への対応が難しいです。

何か良い設定方法、運用方法はないでしょうか?

  • お使いの Moodle の入手場所 : moodle.org
  • バージョン : 3.1.2 (Build: 20160912)
  • 組み込んでいる非標準モジュール名および非標準ブロック名 : なし
  • 組み込んでいる言語 : なし
  • PHP のバージョン : 5.6.25
  • Apache (またはその他のウェブサーバ) のバージョン : Apache/2.4.6
  • OS の種類とバージョン : CentOS 7

Tsuyoshi Tanaka への返信

Re: パスワードの有効期限を設定し定期変更を強制したい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

今後のMoodleのバージョンアップに影響しないよう、プログラムを修正せずに、下記のようなシェルスクリプトを1月1日、4月1日、7月1日、10月1日にcronで自動実行されてはいかがでしょうか。

-----------------------------------------------------------------------------------------------------

#!/bin/sh

HOST=ホスト名
DB_NAME=データベース名
DB_USER=データベースユーザ名
DB_PASSWORD=データベースユーザパスワード
MDL_USER=mdl_user
MDL_USER_PREF=mdl_user_preferences

users=($(mysql -h ${HOST} --user ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} -Bse "SELECT id FROM ${MDL_USER} WHERE auth = 'manual';"))

cnt=${#users[@]}

for (( i=3; i<${cnt} ; i++ ))
do
mysql -h ${HOST} --user ${DB_USER} -p${DB_PASSWORD} ${DB_NAME} > /dev/null 2>&1<< EOF
   INSERT INTO ${MDL_USER_PREF}(userid, name, value) VALUES (${users[$i]}, 'auth_forcepasswordchange', 1);
EOF
done

評点平均: お役立ち度: ★★★★★★★ (2)
Mitsuhiro Yoshida への返信

Re: パスワードの有効期限を設定し定期変更を強制したい

- Tsuyoshi Tanaka の投稿

返信ありがとうございます。また、反応が遅くなってしまい申し訳ありません。

データベースのレコード自体を変更ということで、今後のアップデートへの影響を最小限に抑えられとても良い提案だと思います。最終的にどのような方法を取るか社内で検討したいと思います。


参考までに、他に検討た手法について以下に記載します。

1. ADとLDAPSで連携させ、パスワードをMoodle上から変更可能にする

 - 懸念点:AD側のパスワードを変更してしまうため、社内利用者がMoodleからパスワードを変更した際に混乱するのではないか

2. AD連携をあきらめ、OpenLDAPでユーザを管理し、Moodle上からパスワードを変更可能にする

 - 懸念点:ADとは別にユーザを管理するため、面倒