2008.09.24 Wednesday
Moodle (9) - アカウント管理 (3) 〜LDAP認証
LDAP サーバーにて Moodle のログイン認証を行うことができます。なお、LDAP ユーザーには、posixAccount が必要です。
LDAP エントリーの追加
- Moodle 用の ou(organization unit) を追加します。
[root]# vi oudn_moodle.ldif dn: ou=moodle,dc=examples,dc=com objectClass: organizationalUnit ou: moodle
[root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./oudn_moodle.ldif Enter LDAP Password: adding new entry "ou=moodle,dc=examples,dc=com"
- Moodle 用の group を追加します。
[root]# vi mgroup01.ldif dn: cn=moodle,ou=group,dc=examples,dc=com objectClass: posixGroup cn: moodle gidNumber: 1005
[root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./mgroup01.ldif Enter LDAP Password: adding new entry "cn=moodle,ou=group,dc=examples,dc=com"
- これから追加するユーザー用のパスワードを MD5ハッシュ で生成します。
[root]# slappasswd -h {MD5} New password: (パスワードを入力) Re-enter new password: (再入力) {MD5}STltdvRla003L8aMgb2TUQ==
- Moodle 用のユーザーを追加します。
[root]# vi muser01.ldif dn: cn=minami sakai,ou=moodle,dc=examples,dc=com objectClass: posixAccount objectClass: inetOrgPerson sn: sakai cn: minami sakai uid: minami uidNumber: 3001 gidNumber: 1005 userPassword: {MD5}STltdvRla003L8aMgb2TUQ== mail: minami@arinux.me homeDirectory: /home/minami loginShell: /sbin/nologin
[root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./muser01.ldif Enter LDAP Password: adding new entry "cn=minami sakai,ou=moodle,dc=examples,dc=com"
- 登録した内容を検索して確認します。
[root]# ldapsearch -x -h localhost -b "ou=moodle,dc=examples,dc=com" (一部省略) # moodle, examples.com dn: ou=moodle,dc=examples,dc=com objectClass: organizationalUnit ou: moodle # minami sakai, moodle, examples.com dn: cn=minami sakai,ou=moodle,dc=examples,dc=com objectClass: posixAccount objectClass: inetOrgPerson sn: sakai cn: minami sakai uid: minami uidNumber: 3001 gidNumber: 1005 mail: minami@arinux.me homeDirectory: /home/minami loginShell: /sbin/nologin
登録後のメール送信時のバグ修正
LDAP ユーザーを追加した際に、該当ユーザーに送信されるメールに URI が記述されないバグがありますので、関連ファイルを修正します。
※ この方法は、Eメールアドレスの変更時の確認メール より拝借しました。
- ここから Revision 1.70 の auth.php をダウンロードします。
- moodledata ディレクトリ下にある日本語パッケージのファイルを入れ替えます。
[root]# cd /data/moodledata/lang/ja_utf8 [root]# cp auth.php auth.php.org [root]# cp <保存したディレクトリ>/auth.php . [root]# chown daemon:daemon auth.php [root]# chmod 666 auth.php
- ここから Revision 1.4 の repository.php をダウンロードします。
- 同様に、ファイルを入れ替えます。
[root]# cd /data/moodledata/lang/ja_utf8 [root]# cp repository. repository.php.org [root]# cp <保存したディレクトリ>/repository.php . [root]# chown daemon:daemon repository.php [root]# chmod 666 repository.php
LDAP サーバの設定
- 管理者アカウントでログインします。
- サイト管理のメニューから、「ユーザ」 → 「認証」 → 「認証の管理」 をクリックします。
- 「LDAPサーバ」 の 「Yes」 の列のアイコンをクリックして、「開いた目」 のアイコンに変更します。
- LDAPサーバの行の 「設定」 をクリックします。
- 以下のように設定します。
LDAPサーバ設定 ホストURI ldap://127.0.0.1 バージョン 3 LDAPエンコーディング utf-8 Bind設定 パスワードを隠す No 識別名 cn=Manager,dc=examples,dc=com ユーザlookup設定 ユーザタイプ posixAccount(rfc2307) コンテクスト ou=moodle,dc=examples,dc=com サブコンテクストを検索する No エイリアスの修飾参照 No ユーザ属性 uid メンバー属性 uidNumber ユーザDNのメンバー属性 空白 オブジェクトクラス 空白 パスワード変更の強制 パスワード変更の強制 No 標準パスワード変更ページを使用する No パスワードフォーマット MD5暗号化 パスワード変更のURI 空白 LDAPパスワード有効期限設定 有効期限切れ No 有効期限切れを警告 10 有効期限切れ属性 空白 猶予ログイン No 猶予ログイン属性 空白 ユーザの作成 外部にユーザを作成する No 新しいユーザのコンテクスト 空白 コース作成者 コース作成者 空白 Cron同期化スクリプト 削除された外部ユーザ 内部に保持する NTLM SSO 有効 No サブネット 空白 データマッピング 全て Default
- 「変更を保存する」 を押します。
- ログアウトします。
LDAP ユーザの登録
- LDAP ユーザーでログインします。
- ログイン直後に以下のフォームが表示されます。必要事項を記入し、「プロファイルを更新する」 を押します。
(省略)
- 以下の画面が表示されますが、このまま置いておくか、閉じてかまいませんが、この時点では 「続ける」 は押しません。
- 以下のメールが、登録したメールアドレス宛に届きます。
件名: Moodle (arinux) のメール更新確認 さん あなたは、Moodle (arinux) のアカウントに関するメールアドレスの変更をリクエストしました。この変更を 確認するには、あなたのブラウザで以下のURIにアクセスしてください。 http://10.1.1.15/moodle/user/emailupdate.php?key=Hm4l0BgkExT4orDCH7LW&id=21
- メールに記述されている URL にアクセスすると、以下のように登録が完了します。
- この時点で、「続ける」 を押すと、再度 「プロファイルの編集」 の画面に移動します。
- この時点で、メール送信の画面で 「続ける」 を押しても同様に 「プロファイルの編集」 の画面に移動します。
- Moodel ユーザとして追加されているかを確認します。一度ログアウトして、管理者アカウントでログインします。
- サイト管理のメニューから、「ユーザ」 → 「アカウント」 → 「ユーザ一覧の表示」 をクリックして、LDAPユーザが表示されていることを確認します。
つづく